Definition

Was ist die Nvidia Collective Communications Library (NCCL)?

| Autor / Redakteur: Stefan Luber / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

Die Nvidia Collective Communications Library (NCCL) ist eine Bibliothek für die Multi-GPU-Kommunikation. Sie ist im Deep-Learning-Umfeld einsetzbar und stellt für Nvidia-Grafikprozessoren optimierte Standardroutinen zur Kommunikation zur Verfügung. NCCL arbeitet mit zahlreichen Deep Learning Frameworks zusammen.

Bei der Nvidia Collective Communications Library (NCCL) handelt es sich um eine von Nvidia bereitgestellte Bibliothek, die für das Deep Learning einsetzbar ist. Sie stellt Standardroutinen zur Verfügung, die für die Kommunikation von Nvidia-Grafikprozessoren (GPUs) optimiert sind. Die Routinen lassen sich einfach in Applikationen integrieren und sorgen für eine hohe Performance von Berechnungen im Multi-GPU-Umfeld.

Die Bibliothek unterstützt verschiedene Topologien und Kommunikationsschnittstellen wie PCIe oder NVLink. NCCL beschleunigt Trainingsprozesse von neuronalen Netzwerken, indem viele GPUs gemeinsam an der Aufgabe arbeiten und sich untereinander austauschen. Die Nvidia Collective Communications Library ist mit vielen gängigen Deep-Learning-Frameworks kompatibel. Unter anderem kann sie mit Frameworks wie TensorFlow, Caffe, Caffe2, MxNet, Chainer oder PyTorch eingesetzt werden. NCCL ist mit dem MPI (Message Passing Interface) kompatibel, berücksichtigt diverse GPU-Topologien und nutzt die Rechenleistung der Grafikprozessoren verschiedener Nodes effizient. Unterstützt werden Funktionen wie:

  • Reduce
  • AllReduce
  • ReduceScatter
  • Broadcast
  • AllGather

Der Source Code der Nvidia Collective Communications Library ist auf GitHub frei verfügbar. Die NCCL-Binaries können zudem von der NVIDIA Developer Zone heruntergeladen werden. Die aktuellste Version der Library ist NCCL 2.4 /Stand März 2019).

Designziele der Nvidia Collective Communications Library

In der Entwicklung der Nvidia Collective Communications Library stehen folgende Designziele im Vordergrund. Wichtigstes Ziel ist es, eine hohe Performance für das Training neuronaler Netzwerke durch die optimale Nutzung der Rechenleistung von Multi-GPU- und Multi-Node-Umgebungen bereitzustellen. Darüber hinaus soll NCCL einfach zu programmieren und zu verwenden sein. Hierfür basiert die Nvidia Collective Communications Library auf C++ und den CUDA-Bibliotheken. NCCL soll durch eine transparente Interprozess-Kommunikation sowohl für Single-Prozess- als auch für Multi-Prozess-Applikationen nutzbar sein. Durch die Bereitstellung einer einfachen API, die über verschiedene Programmiersprachen ansteuerbar ist, ist der Einstieg für Programmierer erleichtert. Jeder, der mit dem Message Passing Interface (MPI) vertraut ist, ist schnell in die NVIDIA Collective Communications Library eingearbeitet. Schließlich soll NCCL mit verschiedensten Multi-GPU-Architekturen und -Modellen wie Single-Threaded-, Multi-Threaded- oder Multi-Prozess-Modellen zusammenarbeiten.

Vorteile durch den Einsatz der NVIDIA Collective Communications Library

Der Einsatz der NVIDIA Collective Communications Library im Multi-GPU-Umfeld bietet für das Deep Learning zahlreiche Vorteile. Das Training neuronaler Netze wird durch die effiziente Zusammenarbeit mehrerer GPUs stark beschleunigt. Hierfür stellt NCCL die Multi-GPU- und Multi-Node-Kommunikationsroutinen zur Verfügung. Die Architektur ist einfach zu skalieren und lässt sich den Anforderungen an die Rechenleistung flexibel anpassen. Die beteiligten Prozessoren erreichen große Kommunikationsbandbreiten und synchronisieren sich mit hoher Geschwindigkeit.

Für Entwickler bietet sich der Vorteil, dass Applikationen nicht mehr für spezifische Maschinen und Prozessoren optimiert werden müssen. NCCL ist für unterschiedlichste Multi-GPU-Architekturen und Grafikprozessoren bereits optimiert. Es werden zahlreiche Verbindungstechnologien wie PCIe, NVLink, IP-Sockets oder InfiniBand Verbs unterstützt. Durch die Zusammenarbeit mit den gängigen Frameworks aus dem Deep-Learning-Umfeld erschließt sich ein breites Anwendungsfeld.

Neuheiten und Verbesserungen in NCCL 2.4

Die aktuellste Version der NVIDIA Collective Communications Library ist NCCL 2.4. Gegenüber den Vorgängerversionen sind zahlreiche Verbesserungen und neue Funktionen enthalten. Zu diesen zählen:

  • performanteres Training durch optimierte Inter-GPU-Operationen
  • Unterstützung verschiedener Ring-Architekturen für eine hohe Auslastung des Kommunikationsbusses
  • Implementierung des Baum-Algorithmus für das Training mit geringer Latenz auf großen Multi-GPU- und Multi-Node-Umgebungen
  • Unterstützung von InfiniBand Verbs, libfabric, RoCE und IP-Socket Internode-Kommunikation
  • Unterstützung von Multi-Threaded- und Multi-Prozess-Anwendungen

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

So schnell ist das Deep Learning Framework Caffe

Künstliche Intelligenz

So schnell ist das Deep Learning Framework Caffe

Das Deep Learning Framework Caffe ist auf Modularität, Skalierbarkeit und Schnelligkeit ausgelegt. Dadurch lassen sich unter anderem Modelle für Künstliche Intelligenz innerhalb nur weniger Stunden anstatt mehrerer Tage trainieren. lesen

Nvidia und Facebook starten KI-Deep-Learning-Framework

Caffe2 auf Open-Source-Basis

Nvidia und Facebook starten KI-Deep-Learning-Framework

Mit dem KI-Deep-Learning-Framework Caffe2 haben Nvidia und Facebook das erste Ergebnis ihrer Zusammenarbeit im Bereich Künstliche Intelligenz präsentiert. Es soll vor allem durch hohe Performance punkten. lesen

So spürt Deep Learning Datenmuster auf

Big Data und Deep Learning

So spürt Deep Learning Datenmuster auf

Die Zunahme an unstrukturierten Daten wie etwa Bildern, Blogs und Sprachbotschaften macht es ratsam, diese Massendaten automatisch erkennen zu lassen. Deep Learning, ein Unterbereich des Machine Learning, hilft bei der Erkennung dieser Daten und findet Muster in natürlicher Sprache, in Bildern und vielem mehr. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45781873 / Definitionen)