Was ist CUDA?

Was ist CUDA?

CUDA ist eine von NVIDIA entwickelte Architektur für GPUs, die am 23. Juni 2007 eingeführt wurde. Der Name „CUDA“ war ursprünglich ein Akronym für „Compute Unified Device Architecture“, aber das Akronym wurde inzwischen nicht mehr offiziell verwendet.

CUDA verbessert die Leistung von Rechenaufgaben, die von Parallelverarbeitung profitieren. Diese Workloads, wie das Rendern von 3D-Bildern in Echtzeit, werden oft als „peinlich parallel“ bezeichnet, da sie sich natürlich dazu eignen, von einzelnen Kernen berechnet zu werden. CUDA-GPUs verfügen über viele dieser CUDA-Kerne, die in die Tausende gehen können, integriert auf einer einzigen Grafikkarte. Software muss speziell für die Architektur unter Verwendung von Low-Level-CUDA-Bibliotheken und APIs geschrieben werden, die von NVIDIA bereitgestellt werden. Die native Programmiersprache dieser Bibliotheken ist C++, aber Wrapper werden für andere Sprachen geschrieben und ermöglichen die CUDA-Verarbeitung in einer Vielzahl von Anwendungen.

Obwohl die CUDA-Architektur ursprünglich für die Ausführung grafikspezifischer Aufgaben entwickelt wurde, wechselte sie 2012 zur Verarbeitung allgemeinerer Arten von Berechnungen, wie z. B. dem Schürfen von Kryptowährungs-Blockchains.

CUDA Low-Level-APIs

Zu den Low-Level-APIs zum Ausführen bestimmter Aufgaben in der CUDA-Architektur gehören:

API Beschreibung
cuBLAS Grundlegende lineare Algebra-Unterroutinen, beschleunigt für Bildanalyse und maschinelles Lernen.
cudaRT Die Laufzeit-API, die eine vereinfachte Verwaltung von Initialisierung, Threading-Kontexten und Modulen für CUDA-Anwendungen bietet.
cuFFT Schnelle Fourier-Transformationen, die auf eine Vielzahl von wissenschaftlichen Disziplinen anwendbar sind, wurden beschleunigt und laufen bis zu 10-mal so schnell wie auf einer CPU.
cuRANDM

Generierung von Pseudozufallszahlen in großen Mengen.

cuSOLVER Beschleunigte “direkte Löser”, effiziente Algorithmen zum Lösen bestimmter Anwendungen der linearen Algebra.
cuSPARSE Subroutinen zum Arbeiten mit dünnbesetzten Matrizen, die viele Nullwertelemente enthalten. Beschleunigt, um bis zu 5x schneller zu arbeiten als CPU-Implementierungen.
KKW NVIDIA Performance Primitives-Bibliothek zur Verarbeitung von Bildern, Videos und anderen digitalen Signalen bis zu 30-mal so schnell wie auf einer CPU.
nvGRAPH Beschleunigte Implementierungen von Graphanalysealgorithmen, einschließlich des berühmten PageRank-Algorithmus von Google.
NVML NVIDIA Management Library, die die Überwachung und Verwaltung mehrerer GPUs ermöglicht, die CUDA-Aufgaben ausführen.
NVRTC Laufzeitkompilierungsbibliothek, die Strings von C++-Code in Echtzeit in CUDA-Code konvertiert.
PhysX Eine skalierbare Physik-Engine, die Geräte von Smartphones bis hin zu High-End-Workstations unterstützt. Integriert in vorhandene Spiele-Engines von Drittanbietern wie Unreal Engine, Unity3D und Stingray.

Sprachen mit CUDA-Wrappern

Zu den Programmiersprachen (außer C++), die Software für CUDA-GPUs erstellen können, gehören:

  • Haskell
  • Java
  • Julia
  • Lua
  • Lispeln
  • Mathematik
  • MATLAB
  • Perl
  • Python
  • R
  • Rubin

Beispiele für CUDA-GPUs

Im Folgenden finden Sie Beispiele für eine Reihe von NVIDIA-GPUs, verglichen nach Anzahl der CUDA-Kerne, maximaler Frequenz in MHz, Speicher in GB und UVP bei Veröffentlichung.

GPU-Name CUDA-Kerne Max. Frequenz (MHz) Arbeitsspeicher (GB) UVP
GeForce GTX TITAN Z 5760 876 12 $1420
NVIDIA TITAN Xp 3840 1582 12 $1200
Geforce GTX 1080 2560 1733 8 $499
Geforce GTX 980 2048 1216 4 $550
Geforce GTX 960 1024 1178 2 $230
Geforce GTX 750 512 1085 1 $120
Geforce GT430 96 700 1 $60

3D, Grafik, Hardwarebegriffe, Bibliothek, Grafikkarte, Workstation

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here