NVLink - NVLink

NVLink
NVidia NVLink zwei Textzeilen.png
Hersteller Nvidia
Typ Multi - GPU und CPU - Technologie
Vorgänger Skalierbare Link-Schnittstelle

NVLink ist ein drahtgebundene serielle mehrspurige Nahbereichskommunikation von ausgeprägten Bindung Nvidia . Im Gegensatz zu PCI Express kann ein Gerät aus mehreren NVLinks bestehen, und Geräte verwenden zur Kommunikation Mesh-Networking anstelle eines zentralen Hubs . Das Protokoll wurde erstmals im März 2014 angekündigt und verwendet eine proprietäre High-Speed ​​Signaling Interconnect (NVHS).

Prinzip

NVLink ist ein von Nvidia entwickeltes drahtgebundenes Kommunikationsprotokoll für die Nahbereichs-Halbleiterkommunikation , das für Daten- und Steuercodeübertragungen in Prozessorsystemen zwischen CPUs und GPUs und ausschließlich zwischen GPUs verwendet werden kann. NVLink spezifiziert eine Punkt-zu-Punkt- Verbindung mit Datenraten von 20, 25 und 50 Gbit/s (bzw. v1.0/v2.0/v3.0) pro differentiellem Paar. Acht differentielle Paare bilden einen "Sub-Link" und zwei "Sub-Links", einen für jede Richtung, bilden einen "Link". Die Gesamtdatenrate für einen Sublink beträgt 25 GByte/s und die Gesamtdatenrate für einen Link beträgt 50 GByte/s. Jede V100-GPU unterstützt bis zu sechs Links. Somit ist jede GPU in der Lage, bis zu 300 GByte/s bidirektionale Gesamtbandbreite zu unterstützen. Bisher eingeführte NVLink-Produkte konzentrieren sich auf den Hochleistungsanwendungsbereich. Angekündigt am 14. Mai 2020, NVLink 3.0 erhöht die Datenrate pro differentiellem Paar von 25 Gbit/s auf 50 Gbit/s, während die Anzahl der Paare pro NVLink von 8 auf 4 halbiert wird. Mit 12 Links für eine Ampere- basierte A100-GPU bringt dies die Gesamtbandbreite auf 600 GB/sek.

Leistung

Die folgende Tabelle zeigt einen grundlegenden Metrikvergleich basierend auf Standardspezifikationen:

Verbinden
Übertragungsrate
Leitungscode Effektive Nutzlastrate
pro Spur
pro Richtung
Max.
Lane-Gesamtlänge
(PCIe: inkl. 5" für PCBs)
Realisiert im Design
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 Pascal ,
Volta ,
Turing
PCIe 4.0 16 BRZ/s 128b/130b ~2 GB/s 8-12" = ~20-30 cm Volta auf Xavier
(8x, 4x, 1x),
Ampere ,
Leistung 9
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 Pascal ,
Leistung 8+
NVLink 2.0 25 Gbit/s ~3.125 GB/s Volta ,
NVSwitch für Volta
Power 9
NVLink 3.0 50 Gbit/s ~6,25 GB/s Ampere ,
NVSwitch für Ampere
NVLink 4.0 ?? Gbit/s ~?.??? GB/s Nvidia Grace Rechenzentrum/Server-CPU,
Nvidia-GPU-Mikroarchitektur der nächsten Generation

Die folgende Tabelle zeigt einen Vergleich relevanter Busparameter für reale Halbleiter, die alle NVLink als eine ihrer Optionen anbieten:

Halbleiter Board / Bus
Liefervariante
Verbinden
Übertragungstechnik
Rate (pro Spur)
Spuren pro
Sublink
(out + in)
Sublink-Datenrate
(pro Datenrichtung)
Teilverbindung
oder -einheit
Zählung
Gesamtdatenrate
(out + in)
Insgesamt
Fahrspuren
(out + in)

Gesamtdatenrate
(out + in)
Nvidia GP100 P100 SXM,
P100 PCI-E
PCIe 3.0 08 GT/s 16 + 16 128 Gbit/s = 16 GByte/s 1 016 + 016 GByte/s 32 032 GByte/s
Nvidia GV100 V100 SXM2,
V100 PCI-E
PCIe 3.0 08 GT/s 16 + 16 128 Gbit/s = 16 GByte/s 1 016 + 016 GByte/s 32 032 GByte/s
Nvidia TU104 GeForce RTX 2080 ,
Quadro RTX 5000
PCIe 3.0 08 GT/s 16 + 16 128 Gbit/s = 16 GByte/s 1 016 + 016 GByte/s 32 032 GByte/s
Nvidia TU102 GeForce RTX 2080 Ti,
Quadro RTX 6000/8000
PCIe 3.0 08 GT/s 16 + 16 128 Gbit/s = 16 GByte/s 1 016 + 016 GByte/s 32 032 GByte/s
Nvidia Xavier (generisch) PCIe 4.0
2 Einheiten: x8 (dual)
1 Einheit: x4 (dual)
3 Einheiten: x1
16 BRZ/s
08 + 08
0 4 + 04
1 + 010

128 Gbit/s = 16 GByte/s
64 Gbit/s = 08 GByte/s
16 Gbit/s = 02 GByte/s

2
1
3

032 + 032 GByte/s 8 + 8 GByte/s 6 + 6 GByte/s
0000
0000
40 80 GByte/s
IBM Power9 (generisch) PCIe 4.0 16 BRZ/s 16 + 16 256 Gbit/s = 32 GByte/s 3 096 + 096 GByte/s 96 192 GByte/s
Nvidia GA100

Nvidia GA102

Ampere A100 PCIe 4.0 016 BRZ/s 16 + 16 256 Gbit/s = 32 GByte/s 1 032 + 032 GByte/s 32 064 GByte/s
Nvidia GP100 P100 SXM,
(nicht verfügbar mit P100 PCI-E)
NVLink 1.0 20 BRZ/s 08 + 08 160 Gbit/s = 20 GByte/s 4 080 + 080 GByte/s 64 160 GByte/s
Nvidia Xavier (generisch) NVLink 1.0 20 BRZ/s 08 + 08 160 Gbit/s = 20 GByte/s
IBM Power8+ (generisch) NVLink 1.0 20 BRZ/s 08 + 08 160 Gbit/s = 20 GByte/s 4 080 + 080 GByte/s 64 160 GByte/s
Nvidia GV100 V100 SXM2
(nicht verfügbar mit V100 PCI-E)
NVLink 2.0 25 BRZ/s 08 + 08 200 Gbit/s = 25 GByte/s 6 150 + 150 GByte/s 96 300 GByte/s
IBM Power9 (generisch) NVLink 2.0
(BlueLink-Ports)
25 BRZ/s 08 + 08 200 Gbit/s = 25 GByte/s 6 150 + 150 GByte/s 96 300 GByte/s
NVSwitch
für Volta
(generisch)
(vollständig verbundener 18x18-Switch)
NVLink 2.0 25 BRZ/s 08 + 08 200 Gbit/s = 25 GByte/s 2 * 8 + 2
= 18
450 + 450 GByte/s 288 900 GByte/s
Nvidia TU104 GeForce RTX 2080 ,
Quadro RTX 5000
NVLink 2.0 25 BRZ/s 08 + 08 200 Gbit/s = 25 GByte/s 1 025 + 025 GByte/s 16 050 GByte/s
Nvidia TU102 GeForce RTX 2080 Ti,
Quadro RTX 6000/8000
NVLink 2.0 25 BRZ/s 08 + 08 200 Gbit/s = 25 GByte/s 2 050 + 050 GByte/s 32 100 GByte/s
Nvidia GA100 Ampere A100 NVLink 3.0 50 BRZ/s 04 + 04 200 Gbit/s = 25 GByte/s 12 300 + 300 GByte/s 96 600 GByte/s
Nvidia GA102 GeForce RTX 3090
Quadro RTX A6000
NVLink 3.0 28,125 BRZ/s 04 + 04 112,5 Gbit/s = 14,0625 GByte/s 4 56,25 + 56,25 GByte/s 16 112,5 GByte/s
NVSwitch
für Ampere
(generisch)
(vollständig verbundener 18x18-Switch)
NVLink 3.0 50 BRZ/s 08 + 08 400 Gbit/s = 50 GByte/s 2 * 8 + 2
= 18
900 + 900 GByte/s 288 1800 GByte/s

Hinweis : Datenratenspalten wurden gerundet, indem sie durch die Übertragungsrate angenähert wurden, siehe Abschnitt zur realen Leistung

: Abtastwert; NVLink-Sublink-Bündelung sollte möglich sein
: Abtastwert; andere Fraktionen für die PCIe-Lane-Nutzung sollten möglich sein
: eine einzelne (Nr. 16) PCIe-Lane überträgt Daten über ein differentielles Paar
: Aufgrund von Chip-Pin-Muxing und Platinendesign können verschiedene Einschränkungen der letztendlich möglichen Kombinationen gelten
dual : Schnittstelleneinheit kann entweder als Root-Hub oder als Endpunkt konfiguriert werden
generisch : nackter Halbleiter ohne spezifische Einschränkungen für das Boarddesign

Die Leistung in der realen Welt könnte durch die Anwendung verschiedener Kapselungssteuern sowie der Nutzungsrate bestimmt werden. Diese stammen aus verschiedenen Quellen:

  • 128b/130b Leitungscode (siehe zB PCI Express Datenübertragung für Version 3.0 und höher)
  • Steuerzeichen verknüpfen
  • Transaktionsheader
  • Pufferfähigkeiten (je nach Gerät)
  • DMA- Nutzung auf Computerseite (abhängig von anderer Software, in der Regel vernachlässigbar bei Benchmarks)

Diese physikalischen Einschränkungen reduzieren in der Regel die Datenrate auf zwischen 90 und 95 % der Übertragungsrate. NVLink-Benchmarks zeigen eine erreichbare Übertragungsrate von etwa 35,3 Gbit/s (Host-to-Device) für eine 40 Gbit/s (2 Sub-Lanes-Uplink) NVLink-Verbindung zu einer P100-GPU in einem System, das von einer Reihe von IBM Power8-CPUs angetrieben wird .

Verwendung mit Steckkarten

Für die verschiedenen Versionen von Plug-in-Boards (es gibt noch eine kleine Anzahl von High-End-Gaming- und professionellen Grafik-GPU-Boards mit dieser Funktion), die zusätzliche Anschlüsse zum Zusammenfügen zu einer NVLink-Gruppe freigeben, eine ähnliche Anzahl von leicht variierenden, relativ kompakten , es gibt Verbindungsstecker auf Leiterplattenbasis. In der Regel passen nur Platinen desselben Typs aufgrund ihres physikalischen und logischen Designs zusammen. Bei einigen Setups müssen zwei identische Stecker verwendet werden, um die volle Datenrate zu erreichen. Ab sofort ist der typische Stecker U-förmig mit einem feinen Gitterrandverbinder an jedem der vom Betrachter abgewandten Endstriche der Form. Die Breite des Steckers bestimmt, wie weit die Steckkarten auf der Hauptplatine des Host-Computersystems sitzen müssen - ein Abstand für die Platzierung der Karte wird üblicherweise durch den passenden Stecker bestimmt (bekannte verfügbare Steckerbreiten sind 3 bis 5 Slots und auch abhängig vom Boardtyp). Das Interconnect wird wegen seines strukturellen Designs und Aussehens oft als Scalable Link Interface (SLI) aus dem Jahr 2004 bezeichnet, auch wenn das moderne NVLink-basierte Design von ganz anderer technischer Natur mit anderen Funktionen in seinen Grundstufen als das vorherige Design ist. Gemeldete reale Geräte sind:

  • Quadro GP100 (ein Kartenpaar verwendet bis zu 2 Bridges; das Setup realisiert entweder 2 oder 4 NVLink-Verbindungen mit bis zu 160 GB/s - dies könnte NVLink 1.0 mit 20 GT/s ähneln)
  • Quadro GV100 (ein Kartenpaar benötigt bis zu 2 Bridges und realisiert bis zu 200 GB/s - dies könnte NVLink 2.0 mit 25 GT/s und 4 Links ähneln)
  • GeForce RTX 2080 basierend auf TU104 (mit Single Bridge "GeForce RTX NVLink-Bridge")
  • GeForce RTX 2080 Ti basierend auf TU102 (mit Single Bridge "GeForce RTX NVLink-Bridge")
  • Quadro RTX 5000 basierend auf TU104 (mit Single Bridge "NVLink" bis 50 GB/s - das könnte NVLink 2.0 mit 25 GT/s und 1 Link ähneln)
  • Quadro RTX 6000 basierend auf TU102 (mit Single Bridge "NVLink HB" bis 100 GB/s - das könnte NVLink 2.0 mit 25 GT/s und 2 Links ähneln)
  • Quadro RTX 8000 basierend auf TU102 (mit Single Bridge "NVLink HB" bis 100 GB/s - dies könnte NVLink 2.0 mit 25 GT/s und 2 Links ähneln)

Servicesoftware und Programmierung

Für die Tesla-, Quadro- und Grid-Produktlinien bietet die NVML-API (Nvidia Management Library API) eine Reihe von Funktionen zur programmatischen Steuerung einiger Aspekte von NVLink-Verbindungen auf Windows- und Linux-Systemen, wie z Abfragen und Leistungsüberwachung. Darüber hinaus sollen mit der Bereitstellung der NCCL-Bibliothek (Nvidia Collective Communications Library) Entwickler im öffentlichen Raum in die Lage versetzt werden, zB leistungsfähige Implementierungen für künstliche Intelligenz und ähnliche rechenintensive Themen auf NVLink zu realisieren. Die Seite "3D-Einstellungen" » "SLI, Surround, PhysX konfigurieren" in der Nvidia-Systemsteuerung und die CUDA- Beispielanwendung "simpleP2P" verwenden solche APIs, um ihre Dienste in Bezug auf ihre NVLink-Funktionen zu realisieren. Auf der Linux-Plattform bietet die Befehlszeilenanwendung mit dem Unterbefehl "nvidia-smi nvlink" einen ähnlichen Satz erweiterter Informationen und Steuerungsmöglichkeiten.

Geschichte

Am 5. April 2016 gab Nvidia bekannt, dass NVLink in der auf Pascal-Mikroarchitektur basierenden GP100-GPU implementiert wird, wie sie beispielsweise in Nvidia Tesla P100-Produkten verwendet wird. Mit der Einführung des Hochleistungsrechners DGX-1 war es möglich, bis zu acht P100-Module in einem einzigen Racksystem mit bis zu zwei Host-CPUs zu verbinden. Das Trägerboard (...) ermöglicht ein dediziertes Board zum Routing der NVLink-Verbindungen – jedes P100 benötigt 800 Pins, 400 für PCIe + Power und weitere 400 für die NVLinks, was zusammen fast 1600 Board-Traces allein für NVLinks (. ..). Jede CPU hat eine direkte Verbindung zu 4 P100-Einheiten über PCIe und jede P100 hat jeweils einen NVLink zu den 3 anderen P100s in derselben CPU-Gruppe sowie einen weiteren NVLink zu einem P100 in der anderen CPU-Gruppe. Jeder NVLink (Link Interface) bietet eine bidirektionale 20 GB/Sek. Aufwärts 20 GB/Sek. Abwärts, mit 4 Links pro GP100 GPU, für eine Gesamtbandbreite von 80 GB/Sek. Aufwärts und weiteren 80 GB/Sek. Abwärts. NVLink unterstützt Routing, sodass im DGX-1-Design für jeden P100 insgesamt 4 der anderen 7 P100 direkt erreichbar sind und die restlichen 3 mit nur einem Hop erreichbar sind. Laut Darstellungen in Nvidias Blog-basierten Veröffentlichungen ermöglicht NVLink ab 2014 die Bündelung einzelner Links für eine erhöhte Punkt-zu-Punkt-Performance, so dass beispielsweise ein Design mit zwei P100 und allen zwischen den beiden Geräten aufgebauten Links die volle NVLink-Bandbreite von 80 GB ermöglichen würde /s zwischen ihnen.

Auf der GTC2017 präsentierte Nvidia seine Volta-GPU-Generation und kündigte die Integration einer überarbeiteten Version 2.0 von NVLink an, die Gesamt-I/O-Datenraten von 300 GB/s für einen einzelnen Chip für dieses Design ermöglichen würde, und kündigte weiterhin die Option für Pre an -Bestellungen mit Lieferzusage für Q3/2017 der Hochleistungsrechner DGX-1 und DGX-Station, die mit GPU-Modulen vom Typ V100 ausgestattet werden und über NVLink 2.0 realisiert werden, entweder in einem vernetzten (zwei Gruppen zu je vier V100-Modulen mit Inter -Gruppenkonnektivität) oder eine vollständig miteinander verbundene Form einer Gruppe von vier V100-Modulen.

In den Jahren 2017-2018 lieferten IBM und Nvidia die Supercomputer Summit und Sierra für das US-Energieministerium, die die CPUs der POWER9- Familie von IBM und die Volta- Architektur von Nvidia unter Verwendung von NVLink 2.0 für die CPU-GPU- und GPU-GPU-Verbindungen und InfiniBand EDR für die Systemverbindungen.

Im Jahr 2020 gab Nvidia bekannt, dass ab dem 1. Januar 2021 keine neuen SLI-Treiberprofile mehr für die RTX 2000-Serie und älter hinzugefügt werden.

Siehe auch

Verweise