Nvidia CUDA Compiler | |
---|---|
Basisdaten
| |
Entwickler | Nvidia |
Aktuelle Version | 12.3 |
Betriebssystem | Linux, Windows und Mac OS X |
Kategorie | Compiler |
Lizenz | proprietäre Software |
https://docs.nvidia.com/cuda |
Nvidia CUDA Compiler (NVCC) ist ein proprietärer 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
- ↑ CUDA LLVM Compiler. NVIDIA Developer, abgerufen am 6. April 2016 (amerikanisches Englisch).
- ↑ CUDA C++ Programming Guide. In: NVIDIA Documentation Hub. Abgerufen am 28. Juni 2019 (amerikanisches Englisch).