0Pricing
CUDA Academy · Aula

Ponteiros para a memória da GPU

Os ponteiros do dispositivo ficam em variáveis do hospedeiro.

Ponteiros para a memória da GPU é uma aula grátis de CUDA Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CUDA Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CUDA Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

A Pointer That Lives on the CPU

cudaMalloc hands you a normal C++ pointer variable. It sits in host memory, but the address inside it points into GPU memory. 🔗

The Address Means the Device

A device pointer holds a number that is only valid in the GPU's address space. To the CPU it is just an integer, not real RAM.

float* d_data;  // host variable, device address

The d_ Naming Habit

Programmers prefix device pointers with d_ and host pointers with h_. The name alone reminds you which side each one belongs to.

float* h_data;
float* d_data;

Do Not Dereference on the Host

Writing *d_data in CPU code is a trap. The host cannot touch GPU memory directly, so this crashes or reads nonsense.

Kernels Dereference It Freely

Inside a kernel the same device pointer is perfectly valid. There, d_data[i] reads and writes real GPU memory as you expect.

__global__ void k(float* d) {
    d[0] = 1.0f;
}

Pass It Into the Kernel

You hand the device pointer to a kernel as an argument. The GPU then uses that address to find your data.

myKernel<<<grid, block>>>(d_data);

Two Pointers, Two Spaces

Keep host and device pointers strictly apart. A host pointer is meaningless on the GPU, and a device pointer is meaningless on the CPU.

cudaMemcpy Bridges the Gap

To get data between the two, you copy it. cudaMemcpy takes both pointers and moves bytes across the divide for you.

Pointer Arithmetic Still Works

You may offset a device pointer on the host, like d_data + n, to point at a slice. You just must not read through it there.

float* d_tail = d_data + 100;

Mixing Them Up Is Subtle

The compiler will not stop you from confusing the two. Many CUDA bugs are simply a host pointer handed where a device pointer belonged.

Discipline Beats Debugging

Clear naming and a fixed convention save hours. Decide your d_ and h_ scheme early and never break it. 🧹

Quick Check

Let us test where a device pointer can safely be dereferenced.

Recap

You learned a device pointer lives in a host variable but addresses GPU memory: usable inside kernels, off-limits to direct host access. 🎉

Perguntas Frequentes

A aula “Ponteiros para a memória da GPU” é grátis?

Sim — o texto completo de “Ponteiros para a memória da GPU” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CUDA Academy, atualize para CoddyKit PRO. O curso de CUDA Academy inclui 4 aulas no total.

O que vou aprender em “Ponteiros para a memória da GPU”?

Os ponteiros do dispositivo ficam em variáveis do hospedeiro. Você pratica CUDA Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar CUDA Academy?

Nenhuma experiência prévia é necessária. CUDA Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Ponteiros para a memória da GPU”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de CUDA Academy?

Sim. Cada aula de CUDA Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. cudaMalloc e cudaFree
  2. Ponteiros para a memória da GPU
  3. cudaMemset para inicialização
  4. Evite vazamentos e liberações duplicadas
← Voltar para CUDA Academy