„Nvidia CUDA Compiler“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
K typo, form |
etwas allgemeinverständlicher |
||
Zeile 12: | Zeile 12: | ||
|Website = [https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#introduction https://docs.nvidia.com/cuda] |
|Website = [https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#introduction https://docs.nvidia.com/cuda] |
||
}} |
}} |
||
''' Nvidia CUDA Compiler''' ('''NVCC''') ist ein [[proprietäre Software|proprietärer]] [[Compiler]] von [[Nvidia]] für die Verwendung mit [[CUDA]]. CUDA-Code läuft sowohl auf der [[CPU]] als auch auf der [[Grafikprozessor|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 (Programmiersprache)|C]]-Compiler wie [[GNU Compiler Collection|GCC]], [[Intel C++ Compiler|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]].<ref>{{cite web|title=CUDA LLVM Compiler |url=https://developer.nvidia.com/cuda-llvm-compiler|publisher=NVIDIA Developer |language=en-us |access-date=2016-04-06}}</ref> 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 [[Varianten der Programmiersprache C#C99|C99]]-Funktionen. In Version 9.0 werden einige weitere Konstrukte aus dem [[C%2B%2B#C++14|C++14]]-Standard unterstützt.<ref>{{Cite web|url=https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html|title=CUDA C++ Programming Guide |website=NVIDIA Documentation Hub |language=en-us|access-date=2019-06-28}}</ref> |
''' Nvidia CUDA Compiler''' ('''NVCC''') ist ein [[proprietäre Software|proprietärer]] [[Compiler]] von [[Nvidia]] für die Verwendung mit der [[Programmierschnittstelle]] [[CUDA]]. CUDA-Code läuft sowohl auf der [[CPU]] als auch auf der [[Grafikprozessor|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 (Programmiersprache)|C]]-Compiler wie [[GNU Compiler Collection|GCC]], [[Intel C++ Compiler|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]].<ref>{{cite web|title=CUDA LLVM Compiler |url=https://developer.nvidia.com/cuda-llvm-compiler|publisher=NVIDIA Developer |language=en-us |access-date=2016-04-06}}</ref> 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 [[Varianten der Programmiersprache C#C99|C99]]-Funktionen. In Version 9.0 werden einige weitere Konstrukte aus dem [[C%2B%2B#C++14|C++14]]-Standard unterstützt.<ref>{{Cite web|url=https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html|title=CUDA C++ Programming Guide |website=NVIDIA Documentation Hub |language=en-us|access-date=2019-06-28}}</ref> |
||
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 [[Parallel Thread Execution|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). |
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 [[Parallel Thread Execution|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). |
Aktuelle Version vom 17. November 2024, 19:48 Uhr
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 der Programmierschnittstelle 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]- ↑ 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).