Nvidia CUDA-kompilator
Originalförfattare | Nvidia |
---|---|
Typ | Kompilator |
Licens | Proprietär programvara |
Hemsida |
Nvidia CUDA Compiler ( NVCC ) är en proprietär kompilator från Nvidia avsedd för användning med CUDA . CUDA-koden körs på både CPU och GPU . NVCC separerar dessa två delar och skickar värdkoden (den del av koden som kommer att köras på CPU ) till en C -kompilator som GCC eller Intel C++ Compiler (ICC) eller Microsoft Visual C++ Compiler, och skickar enhetskoden (den del som körs på GPU) till GPU. Enhetskoden kompileras vidare av NVCC. NVCC är baserat på LLVM . Enligt Nvidia tillhandahållen dokumentation, stöder nvcc i version 7.0 många språkkonstruktioner som definieras av C++11- standarden och även några C99 -funktioner. I version 9.0 stöds flera fler konstruktioner från C++14- standarden.
Alla källfiler som innehåller CUDA-språktillägg (.cu) måste kompileras med nvcc. NVCC är en kompilatordrivrutin som fungerar genom att anropa alla nödvändiga verktyg och kompilatorer som cudacc, g++, cl, etc. NVCC kan mata ut antingen C-kod (CPU-kod) som sedan måste kompileras med resten av applikationen med ett annat verktyg eller PTX eller objektkod direkt. En körbar fil med CUDA-kod kräver: CUDA-kärnbiblioteket (cuda) och CUDA runtime-biblioteket (cudart).
Andra ofta använda bibliotek:
- CUBLAS: BLAS-implementering
- CUFFT: FFT implementering
- CUDPP (Data Parallel Primitives): Reduktion, Skanna, Sortera.
- Drivkraft: Reduktion, Skanna, Sortera.
Se även
- OpenCL
- Heterogen systemarkitektur
- CUDA binär (kubin) – en typ av fettbinär
- David B. Kirk och Wen-mei W. Hwu. Programmering av massivt parallella processorer: ett praktiskt tillvägagångssätt. Morgan Kaufmann, 2010.
- Nvidia dokumentation på nvcc. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/
- CUDPP. https://web.archive.org/web/20181117222643/http://gpgpu.org/developer/cudpp