Si recientemente has estado solucionando problemas del rendimiento de la interconexión entre múltiples NVIDIA GPUs, o si deseas verificar el ancho de banda real entre PCIe, NVLink, la memoria host y la VRAM, NVIDIA/nvbandwidth es una herramienta pequeña que vale la pena conocer.
No es una utilidad de benchmark general, ni es un comando oculto dentro de un framework de modelo grande. Es una herramienta de código abierto de NVIDIA diseñada específicamente para medir el ancho de banda y la latencia para copias de memoria relacionadas con la GPU. En lugar de solo mirar el ancho de banda teórico, nvbandwidth es mejor para responder a una pregunta práctica: ¿cuánto ancho de banda puede entregar esta máquina y sus interconexiones GPU actuales en este momento?
false
1. ¿Qué hace nvbandwidth
Según el README oficial, nvbandwidth es una herramienta de línea de comandos para medir el ancho de banda en las NVIDIA GPU.
Se enfoca principalmente en el rendimiento de transferencia a través de diferentes patrones de memcpy, tales como:
GPU -> GPUCPU -> GPUGPU -> CPU- Transferencias entre GPUs a través de múltiples nodos
Estas pruebas son especialmente útiles en escenarios como:
- Solucionar problemas de cuellos de botella de interconexión en el entrenamiento o la inferencia multi-GPU
- Verificar el comportamiento real de enlaces como
NVLink,PCIeyC2C - Comparar diferencias de transferencia entre servidores, topologías, drivers o versiones de CUDA
- Realizar validación de hardware de referencia antes del despliegue del clúster
En resumen, nvbandwidth no se trata del rendimiento del modelo (model throughput). Se trata de la capacidad de bajo nivel para mover datos.
false
2. No produce solo una puntuación simple
Mucha gente considera una prueba de ancho de banda como algo que termina con un solo número, pero nvbandwidth proporciona una salida más detallada que eso.
Informa los resultados como matrices para cada tipo de prueba. Por ejemplo, en una prueba como device_to_device_memcpy_write_ce, muestra el ancho de banda entre cada par de GPUs por fila y columna. Eso significa que puedes ver más que solo una estimación aproximada de la velocidad a nivel de todo el sistema. También puedes detectar:
- Qué pares de GPUs son especialmente rápidos
- Qué rutas están claramente limitadas por
PCIe - Si ciertos pares de GPUs muestran un ancho de banda anormalmente bajo
- Si la topología multi-GPU coincide con tus expectativas
Si estás trabajando con un servidor de 8 GPUs, una plataforma dual-socket o un sistema multinodo, esta salida de estilo matriz suele ser más útil que un único número promedio.
false
3. Cómo entender las copias CE y SM
La documentación oficial divide las pruebas en dos categorías:
CE: transferencias del motor de copia basadas en las APIsmemcpySM: transferencias basadas en el kernel
Estos dos tipos de resultados no están garantizados a coincidir exactamente, porque representan diferentes rutas de copia. Si principalmente quieres entender el comportamiento regular de transferencia de dispositivo a dispositivo, generalmente mirarás CE primero. Si quieres estudiar los detalles de ejecución más de cerca, entonces SM también vale la pena revisar.
El README también explica que los resultados de ancho de banda utilizan la mediana a través de múltiples ejecuciones de prueba por defecto. Las versiones más nuevas incluyen además estadísticas de variabilidad, lo que facilita juzgar cuán estables son los números.
false
4. ¿Qué entorno requiere
nvbandwidth no es una utilidad binaria pura que simplemente descargues y ejecutes. Espera un entorno de desarrollo CUDA estándar.
El README actual enumera estos requisitos básicos:
CUDA Toolkit 11.xo más reciente- Un compilador con soporte para
C++17 CMake 3.20+, siendo3.24+recomendadoBoost program_options- Un dispositivo
CUDAutilizable y un controlador compatible
Los requisitos son más altos si deseas la versión multinode. El README actual indica explícitamente:
- Las compilaciones multinode requieren
CUDA Toolkit 12.3 - El controlador debe ser
550o más reciente - Se requiere
MPI - El servicio
nvidia-imexdebe estar configurado
Por lo tanto, esta es mucho más una herramienta de ingeniería para servidores y clusters de GPU en Linux que algo destinado a un uso de escritorio casual.
false
5. Cómo construir y ejecutar la versión de nodo único
El proceso de construcción de nodo único es sencillo:
|
|
En Ubuntu / Debian, el proyecto también proporciona un script debian_install.sh que instala dependencias comunes y construye el proyecto.
Después de construir, puedes verificar primero la salida de ayuda:
|
|
Algunas opciones comúnmente utilizadas incluyen:
-l: listar pruebas disponibles-t: ejecutar una prueba específica por nombre o índice-p: ejecutar pruebas por prefijo-b: establecer el tamaño del búfer de memcpy, predeterminado512 MiB-i: establecer el número de iteraciones de benchmark-j: salidaJSON-H: habilitar huge pages para la asignación de memoria del host
Si solo deseas ejecutar la suite de pruebas predeterminada una vez, usa:
|
|
Si solo quieres probar un elemento específico, como una copia de dispositivo a dispositivo:
|
|
false
6. El soporte multinodo es una de sus características más destacadas
nvbandwidth no es solo para pruebas multi-GPU en un solo nodo. También admite escenarios multinodo.
Según el README, la compilación multinodo se realiza de esta manera:
|
|
En tiempo de ejecución, normalmente se utiliza junto con mpirun, con un proceso lanzado por GPU. La documentación también requiere que todos los ranks participantes pertenezcan al mismo clúster multinodo, y recomienda ejecutar las pruebas principalmente con el prefijo multinode bajo MPI.
Esto acerca su posicionamiento a la informática de alto rendimiento (high-performance computing) y a los sistemas GPU grandes que a las comprobaciones básicas de una estación de trabajo.
Si estás trabajando con implementaciones multinodo de NVLink o plataformas más complejas como GB200 / Grace Hopper, el valor de nvbandwidth es mucho mayor de lo que sería en una configuración típica de GPU de consumo.
false
7. Qué cambió en v0.9
A partir del 24 de abril de 2026, la página de GitHub Releases muestra que la última versión de nvbandwidth es v0.9, lanzada el 8 de abril de 2026.
Las actualizaciones más destacadas en este lanzamiento incluyen:
- Se agregaron estadísticas de variabilidad a la salida de ancho de banda
- Se agregó soporte para páginas grandes (huge page) para la memoria anfitriona (excluyendo Windows)
- Se agregó muestreo de pares (pair sampling) para pruebas de dispositivo a dispositivo
- Se agregó una guía de solución de problemas
- Se unificaron los caminos de ejecución de nodo único y multinodo
También vale la pena señalar dos cambios orientados a la ingeniería:
- Mejora en la detección de la arquitectura CUDA sin depender tanto del acceso directo a la GPU
- Se eliminó el soporte para Volta (
sm_70/sm_72) en entornos de CUDA Toolkit 13.0+
Por lo tanto, si solo mirabas las versiones anteriores, v0.9 ya no es solo un probador básico de ancho de banda. Claramente se está moviendo hacia una mejor automatización, solución de problemas y validación de sistemas a gran escala.
false
8. ¿Cuándo es una buena opción?
``nvbandwidth` es especialmente adecuado cuando:
- Quieres verificar el ancho de banda de interconexión real entre múltiples
NVIDIA GPUs - Sospechas que una GPU está instalada en una ranura
PCIecon ancho de banda limitado - Quieres comparar rutas
NVLinkfrente a rutas noNVLink - Estás desplegando un clúster de GPU multinode y necesitas validar los enlaces
- Quieres los resultados de las pruebas en
JSONpara pipelines de automatización
Pero si tu objetivo es solo responder preguntas como “¿qué tan rápido es el entrenamiento?” o “¿cuántos tokens por segundo puede alcanzar la inferencia?”, esta herramienta no es la respuesta completa. En ese caso, todavía necesitas pruebas a nivel de carga de trabajo (workload-level testing) con tu framework de entrenamiento, motor de inferencia o aplicación real.
false
9. Cómo pensar sobre su valor
Muchos problemas de rendimiento de GPU no son causados realmente por una capacidad de cómputo insuficiente. Ocurren porque la ruta de datos no está funcionando como se espera.
Por ejemplo:
- Las GPUs no están utilizando la ruta de interconexión prevista
- El acceso Cross-NUMA está reduciendo la velocidad
- Ciertos pares de GPU tienen un ancho de banda anormal
- La comunicación multinode está solo parcialmente configurada
Estos problemas a menudo son difíciles de diagnosticar si solo se observa nvidia-smi o el rendimiento del modelo. Una herramienta de nivel más bajo y orientada a matrices, como nvbandwidth, es útil precisamente porque expone lo que está sucediendo en la capa de interconexión.
Así que una forma sencilla de pensarlo es: nvbandwidth es una herramienta de verificación de salud en línea de comandos para el ancho de banda en sistemas NVIDIA GPU.
Enlaces relacionados
- Proyecto GitHub: https://github.com/NVIDIA/nvbandwidth
- Lanzamientos: https://github.com/NVIDIA/nvbandwidth/releases false