Nvidia CUDA-kompilator

Nvidia CUDA-kompilator
Originalförfattare Nvidia
Typ Kompilator
Licens Proprietär programvara
Hemsida docs .nvidia .com /cuda /cuda-compiler-driver-nvcc / #introduction

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

  1. David B. Kirk och Wen-mei W. Hwu. Programmering av massivt parallella processorer: ett praktiskt tillvägagångssätt. Morgan Kaufmann, 2010.
  2. Nvidia dokumentation på nvcc. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/
  3. CUDPP. https://web.archive.org/web/20181117222643/http://gpgpu.org/developer/cudpp