Zum Inhalt springen

„Nvidia CUDA Compiler“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Tippfehler
K typo, form
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 [[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).


Andere weit verbreitete Bibliotheken:
Andere weit verbreitete Bibliotheken:

Version vom 1. Mai 2024, 17:27 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 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).