Menü
Developer

Nvidia veröffentlicht das CUDA-8-Toolkit

Die wichtigste Neuerung von Nvidias Plattform für parallele Programmabläufe ist der Support für die Pascal-GPU-Plattform. Dazu gehört auch die erweiterte Möglichkeit der Speicheradressierung bei der gemeinsamen Nutzung von GPU und CPU.

Von
vorlesen Drucken Kommentare lesen 9 Beiträge
Nvidia veröffentlicht das CUDA-8-Toolkit

Nvidia hatte bereits kurz nach der Vorstellung der Pascal-Architektur die jüngste Version der CUDA-Plattform (Compute Unified Device Architecture) angekündigt und dabei die zentralen Features beschrieben. Nun hat der Grafikkartenhersteller einen Monat später als ursprünglich geplant die generelle Verfügbarkeit des Entwicklertoolkits für CUDA 8 bekanntgegeben. Neben der im Frühjahr bekannten Pascal-Karte Tesla P 100 ist es auch für die Mitte September vorgestellten Beschleuniger Tesla P4 und Tesla P40 ausgerichtet, die für den Einsatz in Deep-Learning-Szenarien konzipiert sind.

Die Pascal-Architektur erweitert im Vergleich zum Vorgänger Maxwell die Möglichkeiten der Speicheradressierung. Konsequenterweise baut CUDA 8 das in Version 6 der Plattform eingeführte Unified-Memory-Modell aus, bei dem sich GPU und CPU einen Speicherbereich teilen. Auf den Kepler- beziehungsweise Maxwell-GPUs war die Größe des gemeinsamen Speichers auf den physisch vorhandenen GPU-Speicher beschränkt, und der gleichzeitige Zugriff durch CPU und GPU war nicht möglich. Die Pascal-Architektur ermöglicht den vollen Zugriff auf den CPU- und GPU-Speicher als einheitlichen virtuellen Speicherraum. Auch entfällt die Notwendigkeit der Synchronisierung vor bestimmten Zugriffen. Zudem kommen jetzt auch Entwickler auf OS X in den Genuss des Unified Memory.

Der Unified Memory ist in CUDA 8 nicht auf den physischen GPU-Speicher begrenzt.

(Bild: Nvidia)

CUDA 8 nutzt die sogenannten "Mixed Precision"-Berechnungen der Pascal-Architektur. Damit packt das System mehrere Operationen in einen 32-bit-Datenpfad. Dabei können sowohl 16-bit Fließkommazahlen (FP16) als auch 8- oder 16-bit-Integerwerte (Int8, Int16) kombiniert werden. Im Bereich künstlicher neuronaler Netze kommen beispielsweise häufig FP16-Werte statt 32-bit-Werten zum Einsatz, um die maximale Größe der Netze zu erhöhen.

Ebenfalls neu ist die Bibliothek zur Graphenanalyse namens nvGRAPH. Sie bietet GPU-beschleunigte Graphenalgorithmen, durch die die Untersuchung komplexer Verknüpfungen beispielsweise in sozialen Netzen oder bei Genomen deutlich performanter werden soll. Eine weitere Neuerung ist, dass Entwickler über __host__ __device__ heterogene Lambdas definieren können. Die Lambda-Ausdrücke aus C++11 hatten in CUDA 7 ihren Einzug gehalten und wurden in Version 7.5 auf GPU-Lambdas erweitert.

Als Werkzeuge können Entwickler nun unter anderem Visual Studio 2015 (Update 2 oder 3) und GCC 5.4 verwenden. Weitere Details und Benchmarks stehen im Blogbeitrag zur Veröffentlichung. Das Developer Toolkit steht auf Nvidias Entwickler-Site zum Herunterladen bereit. (rme)