# NVLink

NVLink és un enllaç de comunicacions de rang proper de múltiples carrils basat en cable desenvolupat per Nvidia. A diferència de PCI Express, un dispositiu pot constar de diversos NVLinks i els dispositius utilitzen xarxes de malla per comunicar-se en lloc d'un concentrador central. El protocol es va anunciar per primera vegada el març de 2014 i utilitza una interconnexió de senyalització d'alta velocitat (NVHS) propietària.

## Principi

NVLink és un protocol de comunicacions basat en cables per a comunicacions de semiconductors de rang proper desenvolupat per Nvidia que es pot utilitzar per a la transferència de dades i codi de control en sistemes de processadors entre CPU i GPU i únicament entre GPU. NVLink especifica una connexió punt a punt amb velocitats de dades de 20, 25 i 50 Gbit/s (v1.0/v2.0/v3.0 resp.) per parell diferencial. Vuit parells diferencials formen un "subenllaç" i dos "subenllaços", un per a cada direcció, formen un "enllaç". La velocitat total de dades d'un subenllaç és de 25 GB/s i la velocitat total de dades d'un enllaç és de 50 GB/s. Cada GPU V100 admet fins a sis enllaços. Així, cada GPU és capaç de suportar fins a 300 GB/s d'ample de banda bidireccional total. Els productes NVLink introduïts fins ara se centren en l'espai d'aplicacions d'alt rendiment. Anunciat el 14 de maig de 2020, NVLink 3.0 augmenta la velocitat de dades per parell diferencial de 25 Gbit/s a 50 Gbit/s alhora que redueix a la meitat el nombre de parells per NVLink de 8 a 4. Amb 12 enllaços per a una GPU A100 basada en Ampere, això porta l'amplada de banda total a 600 GB/s. Hopper té 18 enllaços NVLink 4.0 que permeten un total de 900 Ample de banda GB/s.

## Rendiment

La taula següent mostra una comparació de mètriques bàsiques basada en especificacions estàndard:
| Interconnexió | Transferència taxa | Codi de línia | Taxa de càrrega útil efectiva per carril per direcció | Total màxim longitud del carril (PCIe: incl. 5" per a PCB) |
| 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 |
| PCIe 4.0 | 16 GT/s | 128b/130b | ~2 GB/s | 8−12" = ~20−30 cm |
| PCIe 5.0 | 32 GT/s | 128b/130b | ~4 GB/s | |
| PCIe 6.0 | 64 GT/s | 128b/130b | ~8 GB/s | |
| NVLink 1.0 | 20 Gbit/s | | ~2,5 GB/s | |
| NVLink 2.0 | 25 Gbit/s | | ~3,125 GB/s | |
| NVLink 3.0 | 50 Gbit/s | | ~6,25 GB/s | |
| NVLink 4.0 | 100 Gbit/s | | ~6,25 GB/s | |
El rendiment del món real es pot determinar aplicant diferents taxes d'encapsulació i una taxa d'ús. Aquests provenen de diverses fonts:
* Codi de línia 128b/130b (vegeu p. ex Transmissió de dades PCI Express per a les versions 3.0 i superiors)
* Enllaça els caràcters de control
* Capçalera de la transacció
* Capacitats de memòria intermèdia (depèn del dispositiu)
* Ús de DMA al costat de l'ordinador (depèn d'un altre programari, normalment insignificant en els punts de referència)

## Programari de servei i programació

Per a les línies de productes Tesla, Quadro i Grid, la NVML-API (Nvidia Management Library API) ofereix un conjunt de funcions per controlar programadament alguns aspectes de les interconnexions NVLink en sistemes Windows i Linux, com ara l'avaluació de components i les versions juntament amb l'estat/error. consultes i seguiment del rendiment. A més, amb la provisió de la biblioteca NCCL (Biblioteca de comunicacions col·lectives de Nvidia), els desenvolupadors de l'espai públic estaran habilitats per realitzar, per exemple, implementacions potents per a la intel·ligència artificial i temes de computació similars a NVLink. La pàgina "Configuració 3D" » "Configura SLI, Surround, PhysX" al tauler de control de Nvidia i l'aplicació de mostra CUDA "simpleP2P" utilitzen aquestes API per realitzar els seus serveis pel que fa a les seves funcions NVLink. A la plataforma Linux, l'aplicació de línia d'ordres amb subordre "nvidia-smi nvlink" proporciona un conjunt similar d'informació i control avançats.

## Referències

* ↑ «NVIDIA DGX-1 With Tesla V100 System Architecture» (en anglès).
* ↑ «What Is NVLink?» (en anglès). Nvidia, 14-11-2014.
* ↑ Jacobs, Blair. «Nvidia reveals next-gen Hopper GPU architecture» (en anglès britànic). Club386, 23-03-2022. [Consulta: 4 maig 2022].
* 1 2 «PCIe - PCI Express (1.1 / 2.0 / 3.0 / 4.0 / 5.0)» (en anglès). www.elektronik-kompendium.de.
* ↑ January 2019, Paul Alcorn 17. «PCIe 5.0 Is Ready For Prime Time» (en anglès). Tom's Hardware, 17-01-2019.
* ↑ «NVLink-Network Switch - NVIDIA's Switch Chip for High Communication-Bandwidth SuperPODs» (en anglès). HotChips 34, 23-08-2022.
* ↑ «NvLink Methods» (en anglès). docs.nvidia.com.
* ↑ «NVIDIA Collective Communications Library (NCCL)» (en anglès). NVIDIA Developer, 10-05-2017.
* ↑ «NVLink on NVIDIA GeForce RTX 2080 & 2080 Ti in Windows 10» (en anglès). Puget Systems, 05-10-2018.