Medir el ancho de banda efectivo
Compare el rendimiento obtenido con el máximo teórico.
Medir el ancho de banda efectivo 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.
De la teoría a los números
La combinación de accesos ayuda, pero debe demostrar su efecto. La métrica que refleja la realidad es el ancho de banda efectivo de su kernel, expresado en gigabytes por segundo.
Qué significa efectivo
El ancho de banda efectivo cuenta los bytes que su kernel necesitaba realmente y los divide entre el tiempo empleado. Refleja el trabajo útil, no las líneas desperdiciadas.
La fórmula sencilla
Sume los bytes leídos y los bytes escritos, y divida el resultado entre los segundos transcurridos. Esa proporción es el rendimiento alcanzado.
double gbps = (bytesRead + bytesWritten) / seconds / 1e9;Mida el tiempo con eventos
Utilice eventos de CUDA para delimitar el kernel. Miden el trabajo de la GPU con precisión, sin el ruido de los relojes del lado de la CPU.
cudaEventRecord(start);
myKernel<<<g, b>>>(...);
cudaEventRecord(stop);Lea el tiempo transcurrido
Después de sincronizar con el evento de parada, pida a CUDA el intervalo. Devuelve milisegundos, así que divida entre mil antes de sustituirlo en la fórmula.
float ms;
cudaEventElapsedTime(&ms, start, stop);Conozca su cantidad de bytes
Para C = A + B sobre n valores float, lee 2n y escribe n, por lo que se mueven 3n valores float. Multiplique por cuatro para obtener los bytes movidos.
size_t bytes = 3 * n * sizeof(float);Encuentre su máximo
Cada GPU indica un ancho de banda máximo teórico. Su valor efectivo solo tiene sentido como una fracción de ese límite.
La proporción de eficiencia
Divida el valor efectivo entre el máximo para obtener un porcentaje. Los kernels limitados por memoria y con accesos combinados suelen alcanzar entre el 70 y el 90 % del valor máximo; los que usan strides quedan muy por debajo.
Caliente primero
El primer lanzamiento asume costes de configuración puntuales. Ejecute el kernel una vez para calentarlo y después haga la media de varias ejecuciones cronometradas para obtener un valor estable.
Confírmelo con los perfiladores
Nsight Compute informa directamente del rendimiento de memoria, para que pueda comprobar sus cálculos. También señala los bytes desperdiciados por una mala combinación de accesos. 🔧
Úselo para decidir
Una proporción baja significa que la memoria es su cuello de botella, así que debe mejorar la combinación de accesos y la disposición. Una proporción alta indica que debe buscar el problema en otro lugar para aumentar la velocidad.
Comprobación rápida
Calcule un ancho de banda efectivo.
Resumen
Ahora puede medir el ancho de banda efectivo con eventos, compararlo con el máximo y usar la proporción para decidir si la memoria es su cuello de botella. 🎉
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 el ancho de banda efectivo» es gratis?
Sí — el texto completo de «Medir el ancho de banda efectivo» 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 el ancho de banda efectivo»?
Compare el rendimiento obtenido con el máximo teórico. 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 el ancho de banda efectivo»?
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
- Qué es una transacción de memoria
- Lecturas fusionadas frente a estriadas
- Estructura de arrays frente a array de estructuras
- Medir el ancho de banda efectivo