Suchen

Definition Was ist cuDNN?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

cuDNN ist eine von Nvidia bereitgestellte Bibliothek für das Deep Learning mit neuronalen Netzwerken. Die Bibliothek ermöglicht hohe Verarbeitungsgeschwindigkeiten durch die Nutzung von Grafikprozessoren (GPUs) und unterstützt zahlreiche Deep Learning Frameworks.

Firmen zum Thema

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

Die Abkürzung cuDNN steht für Nvidia CUDA Deep Neural Network Library. Es handelt sich um eine Bibliothek für neuronale Netzwerke des Unternehmens Nvidia, die die Rechenleistung moderner Grafikprozessoren für das Deep Learning nutzt. Die Bibliothek stellt für diese Prozessoren optimierte Standardprozeduren bereit. Sie ist ein Teil des Nvidia Deep Learning SDKs und basiert auf CUDA. CUDA bedeutet Compute Unified Device Architecture und wurde von Nvidia entwickelt. Mit der CUDA-Programmiertechnik lassen sich einzelne Programmteile durch Grafikprozessoren bearbeiten.

Aufgrund der hochgradig parallelisierbaren Abläufe in einer GPU erzielt die Technik eine große Rechenleistung. Im Vergleich zu einer CPU arbeitet eine GPU bei Deep-Learning-Vorgängen wesentlich schneller. Weltweit nutzen viele Framework-Entwickler und KI-Wissenschaftler cuDNN. Die Bibliothek bietet den Vorteil, dass Wissenschaftler und Programmierer sich auf die Entwicklung von Anwendungen und das Training neuronaler Netze konzentrieren können, ohne die Rechenleistung der CPUs oder GPUs optimieren zu müssen.

Für zahlreiche Deep Learning Frameworks wie Caffee, Keras, TensorFlow oder PyTorch kommt cuDNN zum Einsatz und sorgt in Kombination mit grafischen Prozessoren für deren hohe Performance. Betriebssysteme wie Linux, Windows oder macOS unterstützen die cuDNN-Bibliothek. Die Nutzung der Software ist frei. Sie ist für akademische und kommerzielle Zwecke oder für die Forschung einsetzbar.

Die wichtigsten Funktionen von cuDNN

cuDNN bietet zahlreiche Funktionen und ermöglicht eine einfache Integration verschiedener Implementierungen neuronaler Netzwerke. Unter anderem werden anpassbare Datenlayouts, gruppierte und erweiterte Faltungen, Korrelationsfunktionen und die Vorwärts- oder Rückwärts-Neuronenaktivierung unterstützt. Darüber hinaus bietet cuDNN eine kontextbasierte API, die Multi-Threading und Interoperabilität mit CUDA-Streams bereitstellt. Zu den weiteren Funktionen zählen die Batch-Normalisierung und Tensor-Transformationsfunktionen.

Die aktuellste cuDNN-Version

cuDNN wird kontinuierlich weiterentwickelt und ist in verschiedenen Versionen verfügbar. Die aktuell Version ist cuDNN 7.4.1 (Stand Ende 2018). Anwender des Deep Learning Frameworks, die cuDNN ab Version 7.4 verwenden, profitieren von zahlreichen neuen Funktionen und einer gesteigerten Performance der Volta- and Turing-Architekturen. Im Vergleich zur Version 6 gestattet cuDNN 7.4 unter Nutzung aktueller GPUs das bis zu dreimal schnellere Training neuronaler Netze.

cuDNN im Nvidia Deep Learning SDK

Die Bibliothek cuDNN ist nur eine Komponente des Deep Learning Software Development Kits (SDK) von Nvidia. Das Nvidia Deep Learning SDK stellt zahlreiche leistungsfähige Tools bereit, um GPU-beschleunigte Deep-Learning-Anwendungen zu entwerfen und zu implementieren. Dazu zählen Tools und Bibliotheken für die Inferenz der Künstlichen Intelligenz (KI), für die Videoanalyse oder für die Multi-GPU-Kommunikation. Den Entwicklern stehen die Tools und Bibliotheken für Deep Learning Frameworks wie Caffe2, MXNet, PyTorch, TensorFlow, Cognitive Toolkit und weitere zur Verfügung. Für diese Frameworks liefert die cuDNN-Bibliothek die benötigten Funktionen für ein Multi-GPU-beschleunigtes Training der neuronalen Netze. Das Deep Learning SDK setzt das CUDA-Toolkit voraus.

Wichtige Bestandteile des NVIDIA Deep Learning SDKs sind:

  • die cuDNN-Bibliothek
  • die Multi-GPU-Kommunikation (Multi-GPU Communication – NCCL)
  • die Deep Learning Inference Engine (TensorRT)
  • die Deep Learning Videoanalyse (DeepStream SDK)
  • das Deep Learning GPU Trainings-System (DIGITS)
  • die cuBLAS lineare Algebra
  • die cuSPARSE Matrix-Operationen

(ID:45631593)

Über den Autor