Nvidias CUDA 4.0 bringt zahlreiche Neuerungen

Die Compute Unified Device Architecture bringt in der vierten Version zum Teil erheblich höhere Performance bei Datentransfers, ein weit einfacheres Programmiermodell dank Uniform Virtual Memory und mehr Debug-Möglichkeiten.

In Pocket speichern vorlesen Druckansicht 46 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Andreas Stiller

Mit drei bedeutenden Erweiterungen wartet die "Super Computer Company" Nvidia in der neuen CUDA-Version (Compute Unified Device Architecture) 4.0 auf: GPU Direct 2.0, Unified Virtual Adressing und die C++-Template-Bibliothek Thrust.

GPU Direct 2.0 erweitert das aktuelle Konzept des direkten Zugriffs auf den Kartenspeicher unter Umgehung der CPU und des Hauptspeichers. Bislang nutzten nur die Infiniband-Treiber von Mellanox und QLogic diese Möglichkeit, nun ermöglicht Nvidia den direkten Datentransfer zwischen mehreren GPU-Karten (Peer-to-Peer memory access) sowie direkte MPI-Kommunikation.

Das gemeinsame virtuelle Speichermodell UVA sorgt zwar nicht unbedingt für mehr Performance, vereinfacht aber erheblich die Programmierung. Es benötigt für den gemeinsamen Adressraum mehr als 32 Bit, ist daher nur für 64-Bit-Programme verfügbar. Damit muss sich der Programmierer nicht mehr explizit um Datentransfers zwischen Haupt- und Kartenspeicher kümmern, das erledigen Treiber und die Bibliotheken automatisch. Die Pointer sind nun gewissermaßen markiert, so dass man unmittelbar an der Adresse feststellen kann, wo sich der damit angesprochene Speicherbereich befindet. Das vereinfacht und optimiert insbesondere auch den Umgang mit standardisierten Bibliotheken wie CuBLAS oder CuFFT.

Die dritte größere Neuerung ist die Thrust-Bibliothek, die ähnlich wie die C++-Standard Template Library aufgebaut ist, aber erweitert um parallele Algorithmen und Datenstrukturen. Thrust teilt den Job auf GPUs und CPUs auf und kann zur Compile-Zeit automatisch den wahrscheinlich schnellsten Codepfad auswählen. Paralleles Sortieren soll zum Beispiel 5- bis 100-mal schneller sein als mit STL und Intels Threading Bulding Blocks (TBB) – allerdings ist unklar, welche Hardware Nvidia für diesen Vergleich zugrunde legte.

Hinzu kommen in Cuda 4.0 neue C/C++-Features, etwa um mehrere GPUs bequem anzusprechen, eine neue NPP Image/Video Processing Library, Layered Textures. Auch das Performance Monitorung und Debugging wurde erweitert, unter anderem gibt es nun auch einen Debugger für Mac-OS.

Das CUDA-Toolkit 4.0 ist zunächst für eingetragene Entwickler verfügbar und dürfte wie üblich in ein paar Monaten für jedermann auf Nvidias Developer Zone zum Download bereit stehen. (as)