Punteros a memoria de la GPU
Los punteros del dispositivo viven en variables del host.
Punteros a memoria de la GPU es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CUDA Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CUDA Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en 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 addressThe 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. 🎉
Preguntas frecuentes
¿La lección «Punteros a memoria de la GPU» es gratis?
Sí — el texto completo de «Punteros a memoria de la GPU» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CUDA Academy, actualiza a CoddyKit PRO. El curso de CUDA Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Punteros a memoria de la GPU»?
Los punteros del dispositivo viven en variables del host. Practicas CUDA Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar CUDA Academy?
No se requiere experiencia previa. CUDA Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Punteros a memoria de la GPU»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de CUDA Academy?
Sí. Cada lección de CUDA Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- cudaMalloc y cudaFree
- Punteros a memoria de la GPU
- cudaMemset para inicializar
- Evitar fugas y dobles liberaciones