Gut zu wissen: Was ist CUDA?

Bei der Vorstellung unserer neuen Mini-PCs QUADRO P1000 und TEGRA 2 war bereits von NVIDIA CUDA und den sogenannten CUDA Cores die Rede. Aber was ist CUDA eigentlich?

Was heißt "CUDA"?

Der Begriff CUDA ist das Akronym von "Compute Unified Device Architecture".

Was genau ist CUDA?

CUDA ist eine NVIDIA Architektur für parallele Berechnungen. Durch die zusätzliche Nutzung des Grafikprozessors wird die Rechenleistung eines PCs gesteigert.

Früher waren OpenGL und DirectX die einzige Möglichkeit mit GPUs zu interagieren, diese APIs waren jedoch überwiegend für Multimedia Anwendungen geeignet. Berechnungen wurden dagegen nur auf der CPU ausgeführt.

Da Grafikkarten ideal für rechenintensive, stark parallel arbeitende Prozesse sind, nutzen neue Betriebssysteme (Windows 7 und aufwärts) die GPUs nun nicht mehr nur für Grafikberechnungen, sondern als Mehrzweck-Parallelprozessor, auf den jede Anwendung zugreifen kann. So laufen Berechnungen mittlerweile parallel auf der CPU und dem Grafikprozessor, was die Performance enorm steigert. NVIDIA CUDA unterstützt dies und ermöglicht eine einfache und effiziente parallele Entwicklung. Mittlerweile gibt es tausende Anwendungen, unzählige Forschungsberichte und eine große Auswahl an CUDA Tools und Lösungen.

Was ist ein CUDA Core?

Üblicherweise werden CUDA Cores bzw. Kerne als Äquivalent zu CPU Kernen betrachtet. Jedoch sind die CUDA Cores weniger komplex und treten gleichzeitig in viel größeren Zahlen auf. Während die üblichen Intel-CPUs zwischen 2 und 8 Kernen besitzen, hat beispielsweise die NVIDIA Quadro P1000, die in unserem gleichnamigen Mini-PC verbaut ist, 640 CUDA Cores. Bei High-End-Grafikkarten, wie NVIDIAS Turing-Generation sind es oft über 4000 Kerne. Diese hohe Anzahl ist nötig, da oft viele komplexe Grafikberechnungen gleichzeitig ausgeführt werden müssen. Da GPUs jedoch auf diesen Zweck spezialisiert sind, sind die Kerne auch wesentlich spezifischer konstruiert und daher auch kleiner als bei CPUs.

Eine ausführliche Erklärung zu dem Thema findet sich bei Gamingscan. Wer noch tiefer in das Thema einsteigen möchte und sich für den genauen Unterschied zwischen CUDA Cores und CPU Kernen interessiert, sollte sich das Video "Why CUDA 'Cores' Aren’t Actually Cores" von Gamers Nexus ansehen.

In welchen Bereichen wird CUDA angewendet?

CUDA wird in den verschiedensten Bereichen angewendet. Zum einen in der Bild- und Videoverarbeitung, aber auch im medizinischen Bereich, zum Beispiel bei CT-Bildrekonstruktionen. Die Bereiche KI, Deep Learning und Machine Learning setzen ebenfalls oftmals auf CUDA, denn hier sind anspruchsvolle Entwicklungsumgebungen gefragt. Weitere Themen sind Computerbiologie und –chemie, Raytracing, seismische Analysen und vieles mehr.

Welches ist die aktuelle Version von CUDA?

Seit CUDA 2006 eingeführt wurde hat es sich enorm weiterentwickelt. Im Oktober 2018 wurde, zusammen mit der Einführung der neuen Turing-GPUs, CUDA 10 vorgestellt. Mehr Infos über die neuen Features sind bei heise.de und auf dem NVIDIA Developer Blog zu finden.

Wie wird CUDA programmiert?

Bei der Nutzung von CUDA können die Programmiersprachen C, C++, Fortran, Python und MATLAB verwendet werden.

Wie kann CUDA genutzt werden?

Mit CUDA kann unter Windows, Linux und Mac OS gearbeitet werden, vorausgesetzt man hat die richtige Hardware. Dies sind Grafikkarten der NVIDIA Reihen GeForce, Quadro und Tesla sowie NVDIA GRID solutions. Eine Übersicht über CUDA-fähige GPUs ist bei NVIDIA zu finden. Das CUDA Toolkit kann einfach bei NVIDIA heruntergeladen werden.

Mehr zum Thema

18.02.2019 wissen

Gut zu wissen: Was ist DirectX?

Vielen Gamern ist DirectX wahrscheinlich ein Begriff, aber auch bei Mini-PCs ist es oft ein Thema, gerade wenn es um die Programmierung von Multimediainhalten geht. Aber was ist DirectX eigentlich?
25.02.2019 wissen

Gut zu wissen: Was ist OpenGL?

Nachdem wir euch letzte Woche bereits DirectX vorgestellt haben, machen wir gleich mit der nächsten API weiter und widmen uns der Frage: Was ist OpenGL?
11.03.2019 wissen

Gut zu wissen: Was ist Mantle?

Im nächsten Teil unserer kleinen Grafik-API-Reihe wird es etwas spezieller: Wir beschäftigen uns mit den Besonderheiten von AMDs Mantle.