NVLink Bandbreite demystified

Posted on 31 March 2018

Vor wenigen Tagen stellte NVIDIA auf der diesjährigen GTC 2018 ihr neues AI-Flagschiff DGX-2 vor. Das System kommt im Vollausbau mit 16 NVIDIA V100 GPUs daher. Damit GPUs untereinander schnell kommunizieren können, hat NVIDIA bereits Anfang 2016 mit der Vorgänger-Architektur Pascal eine Hochgeschwindigkeitsverbindung namens NVLink auf den Markt gebracht. Die Praxis zeigt, dass es immer wieder Verwirrung gibt über die Geschwindigkeit dieser Verbindung. Dieser Blogartikel versucht, Licht ins Dunkel zu bringen und die Verwirrung endgültig auszuräumen.

Grundlage für eine NVLink-Verbindung ist der sog. Nvidia Highspeed Signaling Interconnect, kurz NVHS. Für die Nachrichtentechniker: Die Übertragung erfolgt auf Basis einer symmetrischen Signalübertragung (engl.: differential signaling) in einem Adernpaar. Ein solches Adernpaar kann Signale immer nur in eine Richtung übertragen. Jeweils 8 solcher Adernpaare formen innerhalb NVHS einen Sublink. Weil eine Kommunikation immer bidirektional abläuft, also in beide Richtungen, braucht es mindestens zwei Sublinks, um eine vollwertige Kommunikation zwischen zwei Kommunikationspartnern bereit zu stellen.

NVLink 1.0

In der ersten Inkarnation NVLink 1.0 kann ein Sublink maximal 20 GByte/s übertragen, ein kompletter NVLink damit also 40 GByte/s bidirektional. Einzelne Komponenten für NVLink 1.0 stellen üblicherweise 4 einzelne NVLinks zur Verfügung. Eine Tesla P100 GPU ist deshalb in Datenblättern auch immer mit 160 GByte/s NVLink-Durchsatz angegeben: das entspricht 4x 40 GByte/s, also 4 einzelnen NVLinks. Das nachstehende Bild zeigt den Zusammenhang graphisch.

NVLink 1.0 Bandbreite

 

 

 

 

 

 

 

NVLink 2.0

Ende 2017 führte NVIDIA dann GPUs auf Basis der Volta Mikroarchitektur am Markt ein, zusammen mit Version 2.0 des NVLink. Das Grundprinzip bleibt identisch: symmetrische Signalübertragung, jeweils 8 Adernpaare je Sublink, je ein Sublink pro Richtung in einem NVLink. Es ändert sich aber die mögliche Übertragungsgeschwindigkeit innerhalb eines Adernpaares, und damit die insgesamt mögliche Bandbreite. Ein einzelner NVLink 2.0 kann jetzt 50 Gbyte/s bidirektional übertragen. Gleichzeitig bekamen die GPUs insgesamt sechs NVLink-Kanäle, anstatt wie bisher  nur vier.

Für eine einzelne GPU mit Volta-Architektur sind damit 6x 50 GByte/s = 300 GByte/s bidirektionaler Datentransfer möglich. Die Hälfte davon in Richtung GPU, die andere Hälfte von der GPU weg. Das nachstehende Bild zeigt den Zusammenhang für NVLink 2.0 graphisch.

NVLink 2.0 Bandbreite

 

 

 

 

 

 

 

 

 

Auch IBM hat in ihrer POWER9-CPU nachgezogen, und stellt sechs NVLink 2.0 Ports zur Verfügung (POWER8: 4x NVLink 1.0). Im einfachsten Fall wäre damit die Anbindung einer einzelnen GPU an eine POWER9 CPU mit allen sechs NVLinks denkbar. Am Markt erhältliche Systeme arbeiten z. B. mit einer POWER9 CPU je zwei NVIDIA V100 GPUs. Die Verschaltung innerhalb eines solchen Systems zeigt das nachstehende Bild schematisch.

NVLink mit POWER9

 

 

 

 

 

 

 

Für die 16-GPU-Variante DGX-2, die NVIDIA vor wenigen Tagen vorstellte, kommt dann zusätzlich noch ein sog. NVSwitch zum Einsatz, ein von NVIDIA entwickelter Switch für NVLink. Damit ist keine direkte Verschaltung per NVLink zwischen den GPUs mehr erforderlich, was die Anzahl der innerhalb eines Systems nutzbaren GPUs deutlich erhöht.

Die spezifizierten und in diesem Artikel genannten Bandbreiten sind theoretischer Natur. Wie bei jedem Protokoll werden nicht ausschließlich Nutzdaten übertragen. Die Datenübertragung muss synchronisiert werden, und es gibt Steuernachrichten, u. a. zur Synchronisation. Es gibt Fehlerkorrektur, wofür zusätzliche Bits mit übertragen werden müssen (128b/130b Kodierung). Nachrichten, die kein ganzes Paket brauchen, werden mit Nullen aufgefüllt (Padding). Zudem spielen Pufferfähigkeiten der beteiligten Kommunikationspartner eine Rolle. In der Praxis werden Transferraten von 90%-95% des theoretischen Maximums erreicht.

 

Zum Weiterlesen

 

SaveSave

RSS Feed

Sign up to our RSS feed and get the latest news delivered as it happens.

click here

Test out any of our solutions at Boston Labs

To help our clients make informed decisions about new technologies, we have opened up our research & development facilities and actively encourage customers to try the latest platforms using their own tools and if necessary together with their existing hardware. Remote access is also available

Contact us

ISC High Performance 2018

Latest Event

ISC High Performance 2018 | 25th - 28th June 2018, Frankfurt Messe, Germany

The event for high performance computing, networking and storage.

more info