Nvidia CUDA Compiler

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Nvcc)
Zur Navigation springen Zur Suche springen
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

[Bearbeiten | Quelltext bearbeiten]
  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).