cudaMalloc y cudaFree
Reserve y libere memoria global.
cudaMalloc y cudaFree es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 1 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.
La GPU tiene su propia RAM
Su GPU no toma prestada la memoria principal del equipo. Tiene un espacio independiente llamado memoria global, que los kernels leen y escriben. 🧠
Debe solicitarla
Antes de que un kernel pueda usar la memoria del dispositivo, debe reservar usted mismo un bloque. La función que realiza esta reserva es cudaMalloc.
La firma de cudaMalloc
cudaMalloc recibe la dirección de un puntero y una cantidad de bytes. Rellena ese puntero con una nueva dirección del dispositivo.
float* d_data;
cudaMalloc(&d_data, n * sizeof(float));Por qué se usa un puntero a un puntero
Pasa &d_data para que cudaMalloc pueda escribir la nueva dirección en su variable. El valor devuelto está reservado para un código de error.
Cuente siempre en bytes
cudaMalloc trabaja con bytes sin procesar, no con elementos. Multiplique la cantidad de elementos por sizeof(type) para que el búfer tenga el tamaño correcto.
cudaMalloc(&d_arr, count * sizeof(int));Devuélvala con cudaFree
Cuando termine de usar un búfer, devuélvalo a la GPU mediante cudaFree. Esto libera la memoria global para otros trabajos.
cudaFree(d_data);Van en pareja, como llave y cerradura
Trate cudaMalloc y cudaFree como una pareja. Cada reserva que realice debe tener exactamente una liberación correspondiente.
La memoria no está inicializada
La memoria nueva obtenida con cudaMalloc contiene valores basura. Leerla antes de escribir o copiar datos produce resultados impredecibles.
La reserva puede fallar
Si la GPU se queda sin memoria, cudaMalloc devuelve un error en lugar de bloquearse. En código real, compruebe siempre ese código de retorno.
La memoria global es abundante, pero lenta
Los búferes obtenidos con cudaMalloc viven en la memoria global: ofrece gigabytes de espacio, pero es el nivel más lento del chip. Úsela con generosidad, pero tenga en cuenta los patrones de acceso.
El ritmo de todo programa
Casi todos los programas CUDA siguen el mismo ritmo: cudaMalloc, copiar los datos de entrada, lanzar un kernel, copiar los resultados y, después, cudaFree.
Comprobación rápida
Confirmemos cómo recibe cudaMalloc el puntero de destino.
Resumen
Ha aprendido a reservar memoria de la GPU con cudaMalloc, dimensionada en bytes, y a liberarla con cudaFree en parejas correspondientes. 🎉
Preguntas frecuentes
¿La lección «cudaMalloc y cudaFree» es gratis?
Sí — el texto completo de «cudaMalloc y cudaFree» 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 «cudaMalloc y cudaFree»?
Reserve y libere memoria global. 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 1 de 4.
¿Cuánto tiempo toma la lección «cudaMalloc y cudaFree»?
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