Nvidia stimmt CUDA 11 auf die Ampere-GPU-Architektur ab

Die neue Hauptversion von Nvidias Programmierplattform bietet zahlreiche neue Funktion für GPU-beschleunigte Anwendungen auf Basis der Ampere-GPUs.

In Pocket speichern vorlesen Druckansicht
CUDA 10.1 enthält neue GEMM-Bibliothek
Lesezeit: 4 Min.
Von
  • Matthias Parbel
Inhaltsverzeichnis

Im Zuge der Vorstellung seiner neuen GPU-Generation Ampere zeigt Nvidia auf, was das nächste Major Release der Programmierplattform CUDA bringen wird. Entwickler sollen mit CUDA 11 vollen Zugriff auf die erweiterten Funktionen und die Leistungsfähigkeit der neuen GPU-Generation A100 erhalten, um Anwendungen in Bereichen wie High-Performance Computing, Deep Learning, Data Science, Rendering und Robotik optimieren zu können. Darüber hinaus sind Überarbeitungen in die CUDA-Bibliotheken sowie die Nsight-Tools zum Debugging, Tracing und Profiling von CUDA-Applikationen eingeflossen.

Um die von den Ampere-GPUs bereitgestellten Tensor Cores der dritten Generation, die beschleunigte MMA-Operationen (matrix-multiply-accumulate) für die Datatypen Binary, INT4, INT8, FP16, Bfloat16, TF32 und FP64 bieten, direkt ansprechen zu können, finden Entwickler in CUDA 11 zahlreiche Anpassungen. Über die WMMA-API (Warp-level Matrix) verschafft CUDA C++-Anwendungen Zugriff auf die Tensor Cores, um darauf MMA-, Matrix-Load- und Matrix-Store-Operationen auszuführen. Sämtliche Funktionen und Datentypen für WMMA finden Entwickler im nvcuda::wmma-Namespace. Alternativ lassen sich die Tensor Cores auch über mma_sync-PTX-Instruktionen ansprechen.

Neu ist die Unterstützung der hinzugekommenen Datentypen Bfloat16, TF32 und FP64. Als Alternative zu FP16 kommt __nv_bfloat16 mit geringerer Präzision aus und benötigt daher weniger Bandbreite und Speicher. Anstelle von FP32 ist TF32 speziell auf Tensor Cores ausgelegt und soll helfen, das Training von Deep-Learning-Modellen zu beschleunigen, ohne an den Modellen Änderungen vornehmen zu müssen. Mit FP64 schließlich soll sich die von den A100-GPUs zur Verfügung gestellte doppelte Präzision für MMA-Operationen über die WMMA-API nutzen lassen. Die mit den neuen Datentypen und der wohl erweiterten Leistungsfähigkeit der Ampere-GPUs verbundene Vorteile sollen sich dann mit der gesamten Palette der CUDA-Librarys ausschöpfen lassen. Das schließe – so Nvidia – unter anderen BLAS3-Operationen in cuBLAS und Tensorkontraktionen in cuTENSOR ebenso ein wie Faktorisierungen und Dense Linear Solvers in cuSOLVER.

Übersicht der unterstützten Datentypen, Konfigurationen und Leistung für Matrix-Operationen

(Bild: Nvidia)

Die Developer-Tools aus der Nsight-Serie hat Nvidia nicht nur an die eigene neue GPU-Plattform angepasst, Nsight Compute und Nsight Systems bieten nun auch Support für sämtliche x86-, POWER- und Arm64-Systeme. Die für Entwickler vermutlich wichtigste Neuerung in Nsight Compute dürfte aber die Integration des Roofline Performance Model sein. Es gewährt visuellen Einblick in wichtige Kernel-Charakteristika, indem es Fließkommaleistung, arithmetische Intensität und Speicherbandbreite in einem zweidimensionalen Diagramm präsentiert. Entwickler können damit feststellen, ob der Kernel rechen- oder speichergebunden ist, um entsprechende Optimierungsmaßnahmen einzuleiten.

Einen vollständigen Überblick aller Verbesserungen in CUDA 11 bietet der Nvidia-Blogbeitrag zur Ankündigung. Das neue Major Release soll in Kürze offiziell zum Download bereitgestellt werden.

Von den neuen Ampere-GPUs und den Anpassungen in CUDA 11 sollen auch Data Scientists bei der Arbeit mit Apache Spark profitieren. Die seit Ende vergangenen Jahres zur Verfügung stehende Preview von Spark 3.0 soll bereits nativen Zugriff auf die A100-GPUs erhalten, sodass Datenverarbeitungsprozesse direkt auf solche Prozessoren verteilt werden können – in reinen Spark-Clustern ebenso wie in YARN und Kubernetes.

Nvidia hat darüber hinaus die quelloffenen, auf Machine Learning und Data Science zugeschnittenen RAPIDS-Bibliotheken überarbeitet. Ein an Spark 3.0 angepasster RAPIDS Accelerator soll die Performance von Spark SQL und DataFrame-Operationen verbessern, um beispielsweise ETL-Pipelines zu beschleunigen. Um dazu einen Anknüpfungspunkt für den Accelerator zu schaffen, musste der Catalyst Query Optimizer in Spark 3.0 um Support für spaltenweise Verarbeitung erweitert werden. Weitergehende Informationen dazu finden sich bei Nvidia – Interessenten können sich dort auch für vorzeitigen Zugriff auf den RAPIDS Accelerator anmelden. (map)