Zum Inhalt springen

Nvidia CUDA Compiler

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. Januar 2024 um 00:27 Uhr durch Aka (Diskussion | Beiträge) (doppelten Link entfernt, Datumsformat im Einzelnachweis korrigiert). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Nvidia CUDA Compiler
Basisdaten

Entwickler Nvidia
Aktuelle Version 12.3
Betriebssystem Linux, Windows und Mac OS X
Kategorie Compiler
Lizenz proprietäre Software
ttps://docs.nvidia.com/cuda

Nvidia CUDA Compiler (NVCC) ist ein proprietäre Compiler von Nvidia für die Verwendung mit CUDA. CUDA-Code läuft sowohl auf der CPU als auch auf der GPU. NVCC trennt diese beiden Teile und sendet den Host-Code (den Teil des Codes, der auf der CPU ausgeführt wird) an einen C-Compiler wie GCC, ICC oder Microsoft Visual C++ und sendet den Gerätecode (den Teil, der auf der GPU ausgeführt wird) an die GPU. Der Gerätecode wird von NVCC weiter kompiliert. NVCC basiert auf LLVM.[1] Laut der von Nvidia zur Verfügung gestellten Dokumentation unterstützt nvcc in Version 7.0 viele Sprachkonstrukte, die durch den C++11-Standard definiert sind, sowie einige C99-Funktionen. In Version 9.0 werden einige weitere Konstrukte aus dem C++14-Standard unterstützt.[2]

Jede Quelldatei der CUDA-Spracherweiterungen (.cu), muss mit nvcc kompiliert werden. NVCC ruft alle notwendigen Tools und Compiler wie cudacc, g++, cl, etc. auf. NVCC kann entweder C-Code (--cuda) für die Ausführung auf der CPU ausgeben, Objektdateien (.o), die dann mit anderen gelinkt werden, oder direkt PTX-Code für die Ausführung auf der GPU. Eine ausführbare Datei mit CUDA-Code benötigt die CUDA-Kernbibliothek (cuda) und die CUDA-Laufzeitbibliothek (cudart).

Andere weit verbreitete Bibliotheken:

  • CUBLAS: BLAS-Implementierung
  • CUFFT: FFT-Implementierung
  • CUDPP (Datenparallele Primitive): Reduktion, Scannen, Sortieren.
  • Thrust: Reduktion, Scannen, Sortieren.

Einzelnachweise

  1. CUDA LLVM Compiler. NVIDIA Developer, abgerufen am 6. April 2016 (amerikanisches Englisch).
  2. CUDA C++ Programming Guide. In: NVIDIA Documentation Hub. Abgerufen am 28. Juni 2019 (amerikanisches Englisch).