News

Nvidia CUDA 4.0 Toolkit: GPU Computing einfacher und effizienter

Wie allgemein bekannt sein dürfte ist der Nutzen von modernen Grafikkarten im Zusammenhang mit alltäglichen Programmen stark gestiegen, seitdem es die fünf Buchstaben GPGPU gibt. Da Grafikkarten allerdings völlig anders als herkömliche CPUs funktionieren müssen die Programme erst speziell dafür angepasst werden, was im Lager von AMD durch das Accelerated Parallel Processing SDK erreicht wird während man im Falle von Nvidia auf das CUDA Toolkit setzt. Nachdem dort jedoch im September 2010 das letzte Update geliefert wurde wird es Zeit für eine neue Version.

Hauptziel der neuen Version ist es, paralleles Programmieren einfacher zu gestalten und auch mehr Programmierern die Portierung ihrer Applikation auf moderne Grafikkarten zu ermöglichen. Deswegen besteht die größte Neuerung von CUDA 4.0 in den folgenden drei Eigenschaften: - Nvidia GPUDirect 2.0 ermöglicht die einfachere Peer-to-Peer Kommunikation von zwei oder mehr GPUs, die in einem System verbaut sind. Dadurch soll vor allem die Leistung in Multi-GPU-Systemen steigen. - Unified Virtual Adressing (UVA) stellt einen einzelnen, zusammengefassten Speicheradressraum für den Hauptspeicher des Systems und den GPU Speicher bereit, sodass parallele Programmierung schneller und einfacher erfolgt. - Thrust C++ Template Performance Primitives Libraries: Eine Sammlung von mächtigen Open-Source-Algorithmen und Datenstrukturen für die parallele Programmierung mit C++. Das Programmieren in C++ wird Entwicklern somit erleichtert. Dank Thrust arbeiten Routinen wie das parallele Sortieren 5 - 100 Mal schneller als mit der Standard Template Library (STL) und den Threading Building Blocks (TBB).  

  Es wird also deutlich, dass der Zugriff auf das GPU Computing durch das Standard Template Interface vereinfacht wird und auch durch die Thrust Bibliothek die Eintrittshürde erheblich gesenkt wurde. "Dadurch können sich unsere Finanz-Programmierer ganz auf das Entwickeln von Algorithmen in einer GPU-Umgebung konzentrieren" sagt Peter Decrem, Direktor für Rates Products bei Quantifi.   Das war jedoch noch nicht alles, weitere wichtige Kernelemente von CUDA 4.0 sind: - MPI-Integration mit CUDA-Anwendungen: Modifizierte MPI-Implementierungen wie OpenMPI verschieben Daten automatisch über Infiniband von und in den GPU Speicher, wenn eine Anwendung einen MPI-Send oder MPI-Receive Aufruf sendet. - Multi-Thread-Sharing von GPUs: Mehrere CPU Threads können sich Inhalte auf einer einzelnen GPU teilen. Dadurch wird die Aufteilung auf eine einzelne GPU durch Multi-Threaded-Anwendungen vereinfacht. - Multi-GPU-Sharing durch einzelnen CPU Thread: Ein einzelner CPU-Host-Thread kann auf alle GPUs eines Systems zugreifen. Entwickler können so Aufgaben einfach über mehrere GPUs verteilen. - Neue NPP Image und Computer Vision Library: Eine reichhaltige Sammlung von Bildbearbeitungsoperationen, die das schnelle Entwickeln von Imaging- und Computer-Vision Anwendungen ermöglicht. - Automatische Performance-Analyse im Visual Profiler - Neue Features in cuda-gdb und Support für Mac OS - Support für C++ Features wie "new/delete" und virtuelle Funktionen - Neuer GPU Binär-Disassembler   Ab dem 4. März wird ein kostenloser Release Candidate des CUDA 4.0 Toolkits zum Download bereitstehen, allerdings nur über das CUDA Registered Developer Program. Wird das Toolkit dann veröffentlicht sollte es für jeden erhältlich sein. Wer jetzt vielleicht Interesse geschöpft hat kann sich natürlich auch das AMD APP SDK anschauen, das ebenfalls sehr interessant ist.   Quelle: Nvidia


Welovetech