CUDA Academy · Lección

Medir su primera aceleración

Mida la GPU frente a la CPU en la misma tarea.

Lección 4 de 413 pasos

Medir su primera aceleración 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.

Ahora mida la ganancia

Ya tiene un kernel correcto; ahora la pregunta interesante es cuánto más rápido es que la CPU. Medir convierte una suposición en una cifra real. ⏱️

Mida la línea base de la CPU

Empiece con una línea base justa: mida la misma suma ejecutada en un bucle normal de CPU. Necesita algo con lo que comparar la GPU.

No mida el tiempo de forma incorrecta

Evite medir atravesando un cudaMemcpy que olvidó esperar. El lanzamiento es asíncrono, por lo que los temporizadores ingenuos pueden dar resultados absurdos.

Use eventos de CUDA

La herramienta adecuada es un par de objetos cudaEvent. Registran marcas de tiempo de la GPU directamente en el dispositivo para medir el kernel con precisión.

cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);

Delimite el kernel

Registre start justo antes del lanzamiento y stop justo después. Los eventos se ponen en cola en el stream junto con el kernel.

cudaEventRecord(start);
vecAdd<<<blocks, threads>>>(d_A, d_B, d_C, n);
cudaEventRecord(stop);

Espere y después lea

Llame a cudaEventSynchronize sobre stop para que la CPU espere a la GPU. Solo entonces estará listo para leer el tiempo transcurrido.

cudaEventSynchronize(stop);
float ms = 0;
cudaEventElapsedTime(&ms, start, stop);

Caliente primero

El primer lanzamiento asume costes de configuración que solo se pagan una vez. Ejecute un lanzamiento de calentamiento desechable antes de medir para que esos costes no distorsionen la cifra.

Promedie varias ejecuciones

Una sola muestra es ruidosa, así que mida el kernel varias veces y calcule el promedio. Unas cifras estables hacen que las afirmaciones sobre la aceleración sean fiables.

Cuente las copias

Sea honesto sobre lo que mide. El tiempo exclusivo del kernel parece impresionante, pero la aceleración real también debe incluir las transferencias PCIe.

Calcule la aceleración

La aceleración es simplemente el tiempo de CPU dividido por el tiempo de GPU. Un array pequeño incluso puede ser más lento en la GPU cuando se cuentan las copias.

float speedup = cpu_ms / gpu_ms;

Los arrays grandes ganan más

La GPU brilla cuando hay suficiente trabajo para ocultar el coste de transferencia. Aumente n y observe cómo crece la aceleración a medida que domina el paralelismo. 📈

Comprobación rápida

¿Qué herramienta proporciona una medición precisa del tiempo de ejecución de un kernel en la GPU?

Repaso

Ha medido su primera aceleración con eventos de CUDA: caliente el dispositivo, delimite el kernel, sincronice y divida el tiempo de CPU entre el de GPU. Problemas más grandes, mayores ganancias. 🎉

Gratis para empezar

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 «Medir su primera aceleración» es gratis?

Sí — el texto completo de «Medir su primera aceleración» 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 «Medir su primera aceleración»?

Mida la GPU frente a la CPU en la misma tarea. 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 «Medir su primera aceleración»?

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

  1. El kernel de suma de vectores
  2. Preparar el lado del host
  3. Verificar el resultado en la CPU
  4. Medir su primera aceleración
← Volver a CUDA Academy