# NVLink

NVLink est un protocole de communication série multi-voies filaire à courte portée développé par Nvidia. Contrairement à PCI Express, un périphérique peut être constitué de plusieurs NVLinks, et les périphériques utilisent un réseau maillé pour communiquer au lieu d’un hub central. Le protocole a été annoncé pour la première fois en mars 2014 et utilise une interconnexion de signalisation à haut débit (NVHS) propriétaire.

## Principe

NVLink est un protocole de communication filaire pour les communications à courte portée entre composants semi-conducteurs développé par Nvidia qui peut être utilisé pour les transferts de données et de code de contrôle dans les systèmes de processeur entre CPU et GPU ou entre GPU uniquement. NVLink spécifie une connexion point à point avec des débits de données de 20, 25 et 50 Gbit/s (v1.0/v2.0/v3.0+ respectivement) par paire différentielle. Pour NVLink 1.0 et 2.0, huit paires différentielles forment une « sous-liaison » et deux « sous-liaisons » - une pour chaque direction - forment une « liaison ». À partir de NVlink 3.0, seules quatre paires différentielles forment une « sous-liaison ». Pour NVLink 2.0 et versions ultérieures, le débit de données total d’une sous-liaison est de 25 Go/s et le débit de données total d’une liaison est de 50 Go/s. Chaque GPU V100 prend en charge jusqu’à six liaisons. Ainsi, chaque GPU V100 est capable de prendre en charge jusqu’à 300 Go/s de bande passante bidirectionnelle totale$^,$. Les produits NVLink introduits à ce jour se concentrent sur le domaine des applications hautes performances. Annoncé le 14 mai 2020, NVLink 3.0 augmente le débit de données par paire différentielle de 25 Gbit/s à 50 Gbit/s tout en réduisant de moitié le nombre de paires par NVLink, passant de 8 à 4. Avec 12 liaisons pour un GPU A100 basé sur Ampere, cela porte la bande passante totale à 600 Go/s. Hopper dispose de 18 liaisons NVLink 4.0 permettant une bande passante totale de 900 Go/s. Ainsi, NVLink 2.0, 3.0 et 4.0 ont tous une liaison bidirectionnelle à 50 Go/s, et ont respectivement 6, 12 et 18 liaisons.

## Performances

Le tableau suivant présente une comparaison des performances sur la base des spécifications des normes :
| Année | Interconnexion | Taux de transfert tota l | Taux de transfert par ligne | Codage en ligne | Débit effectif par ligne et par direction | Longueur totale max de ligne (PCIe : comprenant 5" pour les PCB) | Exemple d'utilisation |
| 2003 | PCIe 1.x | 4 Go/s | 2.5 GT/s | 8b/10b | ~0,25 Go/s | 20" = ~50 cm | Curie (en), AMD K8 |
| 2007 | PCIe 2.x | 8 Go/s | 5 GT/s | 8b/10b | ~0,5 Go/s | 20" = ~50 cm | Kepler, Maxwell, AMD K10 |
| 2010 | PCIe 3.x | 15,754 Go/s | 8 GT/s | 128b/130b | ~1 Go/s | 20" = ~50 cm | Pascal, Volta, Turing, Bulldozer, Zen + |
| 2014 | NVLink 1.0 | 160 Gbit/s | 20 Gbit/s | | ~2,5 Go/s | | Pascal, POWER8+ |
| 2017 | PCIe 4.0 | 31,508 Go/s | 16 GT/s | 128b/130b | ~2 Go/s | 8−12" = ~20−30 cm | Volta sur Xavier (8x, 4x, 1x), Ampere, POWER9, Zen 2 et 3 |
| 2017 | NVLink 2.0 | 300 Gbit/s | 25 Gbit/s | | ~3,125 Go/s | | Volta, NVSwitch pour Volta POWER9 |
| 2019 | PCIe 5.0 | 63,015 Go/s | 32 GT/s | 128b/130b | ~4 Go/s | | Hopper, Alder Lake, Zen 4 et 5 |
| 2020 | NVLink 3.0 | 600 Gbit/s | 25 Gbit/s | | ~6,25 Go/s | | Ampere, NVSwitch pour Ampere |
| 2021 | PCIe 6.0 | 121 Go/s | 64 GT/s | 242b/256b | ~8 Go/s | | Blackwell |
| 2022 | NVLink 4.0 (également C2C, chip-to-chip) | 900 Gbit/s | 25 Gbit/s | | ~6,25 Go/s | | Hopper, CPU Nvidia Grace pour centre de données/serveur NVSwitch pour Hopper |
| 2024 | NVLink 5.0 (également C2C, chip-to-chip) | 1.8 Tbit/s | 50 Gbit/s | | ~12,50 Go/s | | Blackwell, CPU Nvidia Grace pour centre de données/serveur NVSwitch pour Blackwell |
| 2025 (prévu) | PCIe 7.0 | 242 Go/s | 128 GT/s | 242b/256b | ~16 Go/s | | |