Medir la aceleración
Compare el rendimiento ingenuo con el segmentado en teselas.
Medir la 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.
Demostrar la mejora
Ha creado un kernel con tiling, pero ¿cuánto más rápido es realmente? Medir convierte una suposición en un número en el que puede confiar. 📊
Medir con el reloj de la GPU
Use CUDA events para cronometrar los kernels. Se sitúan en el stream de la GPU y miden exactamente cuándo comienza y termina el trabajo.
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);Delimitar el kernel
Registre un evento antes del lanzamiento y otro después; luego sincronice para que la medición espere realmente a que la GPU termine.
cudaEventRecord(start);
matmul<<<g,b>>>(...);
cudaEventRecord(stop);
cudaEventSynchronize(stop);Leer el tiempo transcurrido
Solicite la diferencia entre los eventos en milisegundos. Ese único número es el tiempo de ejecución medido de su kernel.
float ms;
cudaEventElapsedTime(&ms, start, stop);Calentar primero
El primer lanzamiento asume costes de configuración que solo se pagan una vez. Ejecute un kernel de calentamiento antes de medir para obtener la velocidad estable, no el tiempo de inicio.
Promediar varias ejecuciones
Una sola muestra es ruidosa. Cronometre el kernel varias veces y calcule el promedio para obtener un resultado estable y fiable.
Calcular la aceleración
La aceleración es simplemente el tiempo del kernel ingenuo dividido por el tiempo del kernel con tiling. Un valor de 4x significa que el kernel con tiling se ejecutó cuatro veces más rápido.
float speedup = naive_ms / tiled_ms;Pensar en GFLOPS
Matmul realiza aproximadamente 2 * N^3 operaciones de coma flotante. Divida esa cantidad por el tiempo para expresar el rendimiento en GFLOPS, la medida estándar.
double gflops = (2.0*N*N*N) / (ms * 1e6);Por qué gana el tiling
La aceleración se debe a la drástica reducción del tráfico de la memoria global. La reutilización de la memoria compartida mantiene ocupados los núcleos en lugar de hacerlos esperar a cargas lentas.
Verificar siempre la corrección
Una respuesta incorrecta, por rápida que sea, no sirve. Compare el resultado de la GPU con una referencia de la CPU antes de celebrar la aceleración. ✅
Conocer el límite
Incluso el matmul con tiling queda por detrás de cuBLAS optimizado manualmente. Conocer la diferencia le indica cuándo seguir optimizando y cuándo recurrir a una biblioteca.
Comprobación rápida
Recuerde cuál es la herramienta adecuada para cronometrar kernels de GPU.
Resumen
Cronometró con CUDA events, calentó la GPU, calculó promedios, obtuvo la aceleración y los GFLOPS, y verificó la corrección. Ahora puede demostrar sus optimizaciones. 🏁
Preguntas frecuentes
¿La lección «Medir la aceleración» es gratis?
Sí — el texto completo de «Medir la 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 la aceleración»?
Compare el rendimiento ingenuo con el segmentado en teselas. 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 la 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
- El kernel matmul ingenuo
- Dividir en teselas el producto interno
- Recorrer las fases de las teselas
- Medir la aceleración