Nvidia CUDA Compiler ( NVCC ) は、CUDAで使用するためにNvidiaが開発したコンパイラです。これはプロプライエタリソフトウェアです。
CUDA コードは、中央処理装置(CPU) とグラフィックス処理装置(GPU) の両方で実行されます。NVCC はこれら 2 つの部分を分離し、ホスト コード ( CPUで実行されるコードの部分) をGNU Compiler Collection (GCC)、Intel C++ Compiler (ICC)、Microsoft Visual C++ Compiler (MVCC) などのCコンパイラに送信し、「カーネル」と呼ばれるデバイス コード (GPU で実行される部分) を GPU に送信します。デバイス コードはさらに NVCC によってコンパイルされます。NVCC はLLVMに基づいています。[ 1 ] Nvidia が提供するドキュメントによると、バージョン 7.0 の nvcc は、 C++11標準で定義されている多くの言語構造と、 C99のいくつかをサポートしています。バージョン 9.0 では、 C++14標準のさらにいくつかの構造が追加されています。[ 2 ]
CUDA言語拡張機能(.cu)を含むソースファイルはすべてnvccでコンパイルする必要があります。NVCCは、cudacc、g++、clなどの必要なツールとコンパイラをすべて呼び出すことで動作するコンパイラドライバです。NVCCは、別のツールを使用してアプリケーションの残りの部分と一緒にコンパイルする必要のあるCコード(CPUコード)、並列スレッド実行(PTX)、またはオブジェクトコードを直接出力できます。CUDAコードを含む実行可能ファイルには、CUDAコアライブラリ(cuda)とCUDAランタイムライブラリ(cudart)が必要です。
その他、広く利用されているライブラリ: