Fabricante | Nvidia |
---|---|
Tipo | Tecnología multi- GPU y CPU |
Predecesor | Interfaz de enlace escalable |
NVLink es un enlace de comunicaciones de corto alcance de múltiples carriles en serie basado en cables desarrollado por Nvidia . A diferencia de PCI Express , un dispositivo puede constar de varios NVLinks y los dispositivos utilizan redes en malla para comunicarse en lugar de un concentrador central . El protocolo se anunció por primera vez en marzo de 2014 y utiliza una interconexión de señalización de alta velocidad (NVHS) patentada. [1]
NVLink es un protocolo de comunicaciones basado en cables para comunicaciones de semiconductores de corto alcance desarrollado por Nvidia que se puede utilizar para transferencias de datos y códigos de control en sistemas de procesadores entre CPU y GPU y únicamente entre GPU. NVLink especifica una conexión punto a punto con velocidades de datos de 20, 25 y 50 Gbit/s (v1.0/v2.0/v3.0+ resp.) por par diferencial. Para NVLink 1.0 y 2.0, ocho pares diferenciales forman un "subenlace" y dos "subenlaces", uno para cada dirección, forman un "enlace". A partir de NVlink 3.0, solo cuatro pares diferenciales forman un "subenlace". Para NVLink 2.0 y versiones posteriores, la velocidad total de datos para un subenlace es de 25 GB/s y la velocidad total de datos para un enlace es de 50 GB/s. Cada GPU V100 admite hasta seis enlaces. Por lo tanto, cada GPU es capaz de admitir hasta 300 GB/s de ancho de banda bidireccional total. [2] [3] Los productos NVLink presentados hasta la fecha se centran en el espacio de aplicaciones de alto rendimiento. Anunciado el 14 de mayo de 2020, NVLink 3.0 aumenta la velocidad de datos por par diferencial de 25 Gbit/s a 50 Gbit/s mientras reduce a la mitad el número de pares por NVLink de 8 a 4. Con 12 enlaces para una GPU A100 basada en Ampere, esto lleva el ancho de banda total a 600 GB/s. [4] Hopper tiene 18 enlaces NVLink 4.0 que permiten un ancho de banda total de 900 GB/s. [5] Por lo tanto, NVLink 2.0, 3.0 y 4.0 tienen 50 GB/s por enlace bidireccional y tienen 6, 12 y 18 enlaces correspondientemente.
La siguiente tabla muestra una comparación de métricas básicas según especificaciones estándar:
Interconectar | Tasa de transferencia | Código de línea | Tasa de carga útil efectiva por carril y dirección | Longitud máxima total de carril (PCIe: incl. 5" para PCB) | Realizado en diseño |
---|---|---|---|---|---|
PCIe 1.x | 2,5 GT/s | 8b/10b | ≈0,25 GB/s | 20" = ≈51 cm | |
PCIe 2.x | 5 GT/s | 8b/10b | ≈0,5 GB/s | 20" = ≈51 cm | |
PCIe 3.x | 8 GT/s | 128b/130b | ≈1 GB/s | 20" = ≈51 cm [6] | Pascal , Volta , Turing |
PCIe 4.0 | 16 GT/s | 128b/130b | ≈2 GB/s | 8−12" = ≈20−30 cm [6] | Volta sobre Xavier (8x, 4x, 1x), Amperio , Potencia 9 |
PCIe 5.0 | 32 GT/s [7] | 128b/130b | ≈4 GB/s | Tolva | |
PCIe 6.0 | 64 GT/s | 1b/1b | ≈8 GB/s | Pozo negro | |
Enlace NV 1.0 | 20 Gbps | ≈2,5 GB/s | Pascal , potencia 8+ | ||
Enlace NV 2.0 | 25 Gbps | ≈3,125 GB/s | Volta , NVSwitch para Volta Power 9 | ||
Enlace NV 3.0 | 50 Gbps | ≈6,25 GB/s | Ampere , NVSwitch para Ampere | ||
NVLink 4.0 (también conocido como C2C, chip a chip) | 100 Gbps [8] | ≈12,5 GB/s | Hopper , CPU de servidor/centro de datos Nvidia Grace NVSwitch para Hopper | ||
NVLink 5.0 (también conocido como C2C, chip a chip) | 200 Gbps | ~25 GB/s | Blackwell , conmutador NVSwitch para CPU de servidor/centro de datos Nvidia Grace para Blackwell |
La siguiente tabla muestra una comparación de los parámetros de bus relevantes para semiconductores del mundo real que ofrecen NVLink como una de sus opciones:
Semiconductor | Variante de entrega en autobús o a bordo | Interconectar | Tarifa de tecnología de transmisión (por carril) | Carriles por subenlace (salida + entrada) | Velocidad de datos del subenlace (por dirección de datos) | Subenlace o recuento de unidades | Tasa total de datos (salida + entrada) | Total de carriles (salida + entrada) | Tasa total de datos (salida + entrada) |
---|---|---|---|---|---|---|---|---|---|
Nvidia GP100 | P100 SXM, [9] P100 PCI-E [10] | PCIe 3.0 | 0,8 GT / s | 16 + 16 Ⓑ | 128 Gbit/s = 16 GB/s | 1 | 0 16 + 0 16 GB/s [11] | 32 Ⓒ | 0 32 GB/s |
Nvidia GV100 | V100 SXM2, [12] V100 PCI-E [13] | PCIe 3.0 | 0,8 GT / s | 16 + 16 Ⓑ | 128 Gbit/s = 16 GB/s | 1 | 0 16 + 0 16 GB/s | 32 Ⓒ | 0 32 GB/s |
Nvidia TU104 | GeForce RTX 2080 , Quadro RTX 5000 | PCIe 3.0 | 0,8 GT / s | 16 + 16 Ⓑ | 128 Gbit/s = 16 GB/s | 1 | 0 16 + 0 16 GB/s | 32 Ⓒ | 0 32 GB/s |
Nvidia TU102 | GeForce RTX 2080 Ti, Quadro RTX 6000/8000 | PCIe 3.0 | 0,8 GT / s | 16 + 16 Ⓑ | 128 Gbit/s = 16 GB/s | 1 | 0 16 + 0 16 GB/s | 32 Ⓒ | 0 32 GB/s |
Nvidia Xavier [14] | (genérico) | PCIe 4.0 Ⓓ 2 unidades: x8 (doble) 1 unidad: x4 (doble) 3 unidades: x1 [15] [16] | 16 GT/s | 0 8 + 0 8 Ⓑ 0 4 + 0 4 Ⓑ 1 + 0 1 0 | 128 Gbit/s = 16 GB/s 64 Gbit/s = 0,8 GB/s 16 Gbit/s = 0,2 GB/s | Ⓓ 2 1 3 | Ⓓ 0 32 + 0 32 GB/s 0 0 8 + 0 0 8 GB/s 0 0 6 + 0 0 6 GB/s | 46 Ⓑ | 92 GB/s |
IBM Power9 [17] | (genérico) | PCIe 4.0 | 16 GT/s | 16 + 16 Ⓑ | 256 Gbit/s = 32 GB/s | 3 | 0,96 + 0,96 GB/s | 96 | 192 GB/s |
Nvidia GA100 [18] [19] Nvidia GA102 [20] | Ampere A100 (SXM4 y PCIe) [21] | PCIe 4.0 | 0,16 GT/s | 16 + 16 Ⓑ | 256 Gbit/s = 32 GB/s | 1 | 0 32 + 0 32 GB/s | 32 Ⓒ | 0 64 GB/s |
Nvidia GP100 | P100 SXM, (no disponible con P100 PCI-E) [22] | Enlace NV 1.0 | 20 GT/s | 0 8 + 0 8 Ⓐ | 160 Gbit/s = 20 GB/s | 4 | 0 80 + 0 80 GB/s | 64 | 160 GB/s |
Nvidia Xavier | (genérico) | Enlace NV 1.0 [14] | 20 GT/s [14] | 0 8 + 0 8 Ⓐ | 160 Gbit/s = 20 GB/s [23] | ||||
IBM Power8+ | (genérico) | Enlace NV 1.0 | 20 GT/s | 0 8 + 0 8 Ⓐ | 160 Gbit/s = 20 GB/s | 4 | 0 80 + 0 80 GB/s | 64 | 160 GB/s |
Nvidia GV100 | V100 SXM2 [24] (no disponible con V100 PCI-E) | Enlace NV 2.0 | 25 GT/s | 0 8 + 0 8 Ⓐ | 200 Gbit/s = 25 GB/s | 6 [25] | 150 + 150 GB/s | 96 | 300 GB/s |
IBM Power9 [26] | (genérico) | NVLink 2.0 (puertos BlueLink) | 25 GT/s | 0 8 + 0 8 Ⓐ | 200 Gbit/s = 25 GB/s | 6 | 150 + 150 GB/s | 96 | 300 GB/s |
Interruptor NVSwitch para Volta [27] | (genérico) (conmutador 18x18 completamente conectado) | Enlace NV 2.0 | 25 GT/s | 0 8 + 0 8 Ⓐ | 200 Gbit/s = 25 GB/s | 2 * 8 + 2 = 18 | 450 + 450 GB/s | 288 | 900 GB/s |
Nvidia TU104 | GeForce RTX 2080 , Quadro RTX 5000 [28] | Enlace NV 2.0 | 25 GT/s | 0 8 + 0 8 Ⓐ | 200 Gbit/s = 25 GB/s | 1 | 0 25 + 0 25 GB/s | 16 | 0 50 GB/s |
Nvidia TU102 | GeForce RTX 2080 Ti, Quadro RTX 6000/8000 [28] | Enlace NV 2.0 | 25 GT/s | 0 8 + 0 8 Ⓐ | 200 Gbit/s = 25 GB/s | 2 | 0 50 + 0 50 GB/s | 32 | 100 GB/s |
Nvidia GA100 [18] [19] | Ampere A100 (SXM4 y PCIe [21] ) | Enlace NV 3.0 | 50 GT/s | 0 4 + 0 4 Ⓐ | 200 Gbit/s = 25 GB/s | 12 [29] | 300 + 300 GB/s | 96 | 600 GB/s |
Nvidia GA102 [20] | GeForce RTX 3090 Quadro RTX A6000 | Enlace NV 3.0 | 28,125 GT/s | 0 4 + 0 4 Ⓐ | 112,5 Gbit/s = 14,0625 GB/s | 4 | 56,25 + 56,25 GB/s | 16 | 112,5 GB/s |
Interruptor NVSwitch para Ampere [30] | (genérico) (conmutador 18x18 completamente conectado) | Enlace NV 3.0 | 50 GT/s | 0 8 + 0 8 Ⓐ | 400 Gbit/s = 50 GB/s | 2 * 8 + 2 = 18 | 900 + 900 GB/s | 288 | 1800 GB/s |
Interruptor NVSwitch para Hopper [30] | (conmutador de 64 puertos completamente conectado) | Enlace NV 4.0 | 106,25 GT/s | 0 9 + 0 9 Ⓐ | 450 Gbps | 18 | 3600 + 3600 GB/s | 128 | 7200 GB/s |
Procesador Nvidia Grace [31] | Superchip Nvidia GH200 | PCIe-5 (4x, 16x) a 512 GB/s | |||||||
Procesador Nvidia Grace [31] | Superchip Nvidia GH200 | NVLink-C2C a 900 GB/s | |||||||
GPU Nvidia Hopper [31] | Superchip Nvidia GH200 | NVLink-C2C a 900 GB/s | |||||||
GPU Nvidia Hopper [31] | Superchip Nvidia GH200 | NVLink 4 (18x) a 900 GB/s |
Nota : Las columnas de velocidad de datos se redondearon al aproximarse por la velocidad de transmisión; consulte el párrafo sobre rendimiento en el mundo real.
El rendimiento en el mundo real se puede determinar aplicando diferentes impuestos de encapsulación y tasas de uso. Estos provienen de varias fuentes:
Esas limitaciones físicas suelen reducir la velocidad de datos a entre el 90 y el 95 % de la velocidad de transferencia. Los puntos de referencia de NVLink muestran una velocidad de transferencia alcanzable de aproximadamente 35,3 Gbit/s (de host a dispositivo) para una conexión NVLink de 40 Gbit/s (enlace ascendente de 2 sublíneas) hacia una GPU P100 en un sistema que funciona con un conjunto de CPU IBM Power8. [32]
Para las distintas versiones de placas enchufables (existen todavía un pequeño número de placas GPU para juegos y gráficos profesionales de alta gama con esta característica) que exponen conectores adicionales para unirlas en un grupo NVLink, existe un número similar de conectores de interconexión basados en PCB, relativamente compactos y ligeramente variables. Por lo general, solo las placas del mismo tipo se acoplarán entre sí debido a su diseño físico y lógico. Para algunas configuraciones, se deben aplicar dos conectores idénticos para lograr la velocidad de datos completa. A partir de ahora, el conector típico tiene forma de U con un conector de borde de rejilla fina en cada uno de los trazos finales de la forma que mira hacia afuera del espectador. El ancho del conector determina a qué distancia deben colocarse las tarjetas enchufables de la placa principal del sistema informático anfitrión; la distancia para la colocación de la tarjeta generalmente está determinada por el conector correspondiente (los anchos de conector disponibles conocidos son de 3 a 5 ranuras y también dependen del tipo de placa). [33] [34] La interconexión se conoce a menudo como Interfaz de Enlace Escalable (SLI) desde 2004 por su diseño estructural y apariencia, aunque el diseño moderno basado en NVLink es de una naturaleza técnica bastante diferente con diferentes características en sus niveles básicos en comparación con el diseño anterior. Los dispositivos del mundo real reportados son: [35]
Para las líneas de productos Tesla, Quadro y Grid, la NVML-API (Nvidia Management Library API) ofrece un conjunto de funciones para controlar programáticamente algunos aspectos de las interconexiones NVLink en sistemas Windows y Linux, como la evaluación de componentes y versiones junto con la consulta de estado/error y el monitoreo del rendimiento. [43] Además, con la provisión de la biblioteca NCCL (Nvidia Collective Communications Library) los desarrolladores en el espacio público estarán habilitados para realizar, por ejemplo, implementaciones poderosas para inteligencia artificial y temas computacionales similares sobre NVLink. [44] La página "3D Settings" » "Configure SLI, Surround, PhysX" en el panel de control de Nvidia y la aplicación de muestra CUDA "simpleP2P" usan dichas API para realizar sus servicios con respecto a sus características NVLink. En la plataforma Linux, la aplicación de línea de comandos con el subcomando "nvidia-smi nvlink" proporciona un conjunto similar de información y control avanzados. [35]
El 5 de abril de 2016, Nvidia anunció que NVLink se implementaría en la GPU GP100 basada en la microarquitectura Pascal , como se usa, por ejemplo, en los productos Nvidia Tesla P100. [45] Con la introducción de la base de computadora de alto rendimiento DGX-1, fue posible tener hasta ocho módulos P100 en un solo sistema de bastidor conectado a hasta dos CPU host. La placa portadora (...) permite una placa dedicada para enrutar las conexiones NVLink: cada P100 requiere 800 pines, 400 para PCIe + energía y otros 400 para los NVLinks, lo que suma casi 1600 trazas de placa solo para NVLinks (...). [46] Cada CPU tiene conexión directa a 4 unidades de P100 a través de PCIe y cada P100 tiene un NVLink cada uno a los otros 3 P100 en el mismo grupo de CPU más un NVLink más a un P100 en el otro grupo de CPU. Cada NVLink (interfaz de enlace) ofrece una velocidad bidireccional de 20 GB/seg de subida y 20 GB/seg de bajada, con 4 enlaces por GPU GP100, para un ancho de banda agregado de 80 GB/seg de subida y otros 80 GB/seg de bajada. [47] NVLink admite el enrutamiento de modo que en el diseño DGX-1 para cada P100 un total de 4 de los otros 7 P100 son directamente accesibles y los 3 restantes son accesibles con un solo salto. Según las descripciones en las publicaciones basadas en blogs de Nvidia, a partir de 2014 NVLink permite la agrupación de enlaces individuales para un mayor rendimiento punto a punto de modo que, por ejemplo, un diseño con dos P100 y todos los enlaces establecidos entre las dos unidades permitiría el ancho de banda completo de NVLink de 80 GB/seg entre ellos. [48]
En GTC2017, Nvidia presentó su generación Volta de GPU e indicó la integración de una versión revisada 2.0 de NVLink que permitiría velocidades de datos de E/S totales de 300 GB/s para un solo chip para este diseño, y anunció además la opción de pedidos anticipados con promesa de entrega para el tercer trimestre de 2017 de las computadoras de alto rendimiento DGX-1 y DGX-Station que estarán equipadas con módulos GPU de tipo V100 y tendrán NVLink 2.0 realizado en red (dos grupos de cuatro módulos V100 con conectividad entre grupos) o en forma totalmente interconectada de un grupo de cuatro módulos V100.
En 2017-2018, IBM y Nvidia entregaron las supercomputadoras Summit y Sierra para el Departamento de Energía de EE. UU. [49] , que combinan la familia de CPU POWER9 de IBM y la arquitectura Volta de Nvidia , utilizando NVLink 2.0 para las interconexiones CPU-GPU y GPU-GPU e InfiniBand EDR para las interconexiones del sistema. [50]
En 2020, Nvidia anunció que ya no agregaría nuevos perfiles de controladores SLI en las series RTX 2000 y anteriores a partir del 1 de enero de 2021. [51]
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace )TU102 y TU104 son las primeras GPU de escritorio de Nvidia que incorporan la interconexión NVLink en lugar de una interfaz de entrada/salida múltiple (MIO) para compatibilidad con SLI. La primera ofrece dos enlaces x8, mientras que la segunda está limitada a uno. Cada enlace facilita hasta 50 GB/s de ancho de banda bidireccional. Por lo tanto, la GeForce RTX 2080 Ti es capaz de alcanzar hasta 100 GB/s entre tarjetas y la RTX 2080 puede hacer la mitad de eso.