El ciclo de vida de un programa CUDA
Reserve, copie, lance, copie de vuelta y libere.
El ciclo de vida de un programa CUDA es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 4 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.
Un ritmo repetitivo
Casi todos los programas CUDA siguen el mismo baile de cinco pasos. Aprenda el ritmo una vez y podrá leer cualquier código para GPU. 🕺
Paso 1: Asignar
Primero reserve memoria del dispositivo para las entradas y salidas con cudaMalloc, ya que la GPU no puede usar directamente los búferes del host.
cudaMalloc(&d_a, bytes);
cudaMalloc(&d_b, bytes);Paso 2: Copiar a la GPU
A continuación, suba los datos de entrada del host al dispositivo con cudaMemcpy. Ahora la GPU tiene su propia copia para trabajar con ella.
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);Paso 3: Lanzar
Ahora lance el kernel en muchos hilos. Aquí es donde realmente se realiza el trabajo paralelo en el dispositivo. 🚀
myKernel<<<blocks, threads>>>(d_a, d_b, n);Paso 4: Copiar de vuelta
Cuando termine el cálculo, descargue los resultados del dispositivo al host para que la CPU pueda leerlos y utilizarlos.
cudaMemcpy(h_b, d_b, bytes, cudaMemcpyDeviceToHost);Paso 5: Liberar
Por último, libere todos los búferes del dispositivo con cudaFree. Omitir este paso provoca una fuga de memoria de la GPU que otros trabajos podrían utilizar.
cudaFree(d_a);
cudaFree(d_b);No olvide sincronizar
Como los lanzamientos son asíncronos, llame a cudaDeviceSynchronize antes de leer los resultados para asegurarse de que la GPU ha terminado realmente.
cudaDeviceSynchronize();Las copias requieren tiempo
Los pasos de copia atraviesan el bus PCIe, que es lento, por lo que la transferencia de datos suele ser el verdadero cuello de botella, no el kernel.
Reutilice los búferes
Asignar memoria una vez y reutilizar los búferes en muchos lanzamientos es mejor que asignar memoria nueva en cada iteración de un bucle.
Simetría del patrón
Observe la simetría: cada cudaMalloc se corresponde con un cudaFree, y cada copia de entrada termina correspondiéndose con una copia de salida.
El ciclo de vida en una frase
Repítalo como un mantra: asignar, copiar, lanzar, copiar de vuelta, liberar. Esa única línea es el esqueleto de casi todos los programas con kernels.
Comprobación rápida
Comprobemos el ciclo de vida estándar de un programa CUDA.
Resumen
Ha aprendido el ciclo de vida de CUDA en cinco pasos: asignar, copiar a la GPU, lanzar, copiar de vuelta, liberar, además de sincronizar antes de leer los resultados. 🎉
Aprende C++ con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «El ciclo de vida de un programa CUDA» es gratis?
Sí — el texto completo de «El ciclo de vida de un programa CUDA» 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 «El ciclo de vida de un programa CUDA»?
Reserve, copie, lance, copie de vuelta y libere. 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 4 de 4.
¿Cuánto tiempo toma la lección «El ciclo de vida de un programa CUDA»?
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
- El calificador de función __global__
- Funciones __device__ y __host__
- Espacios de direcciones separados
- El ciclo de vida de un programa CUDA