NVIDIA CUDA Compiler

 Nvidia CUDA コンパイラ (NVCC)は、CUDAとの使用を目指したNVIDIAによるプロプライエタリコンパイラである。CUDAコードは、CPUとGPUの両方で動作する。NVCCはCPUとGPUを分離し、ホストコード（CPU上で実行される部分のコード）をGCC、Intel C++ Compiler、あるいはのようなC言語コンパイラへ転送する。そして、デバイスコード（GPU上で実行する部分）をGPUへ転送する。デバイスコード(PTX)は、さらにGPU固有のバイナリコードへコンパイルされる。NVCCはLLVMに基づいている。NVIDIAが提供した資料に従うと、nvccはバージョン7.0でC++11標準と少数のC99の機能によって定義される多くの言語構造をサポートしている。バージョン9.0においてC++14標準由来のより多くの言語構造がサポートされている。
CUDAの言語拡張(.cu)を含んでいるあらゆるソースファイルは、nvccでコンパイルされる。NVCCは、コンパイラドライバであり、全ての必要なツールとcudacc、g++、clなどのようなコンパイラによって動作する。NVCCは、C code(CPUコード)、PTX(GPU擬似アセンブラ)、あるいはオブジェクトコード(GPUで直接実行可能)のいずれも出力できる。C codeは、CPU用のコードなので、他のツールを使ってアプリケーション(CPU用コードで書かれている)の他の部分と一緒にコンパイル・リンクされなければならない。CUDAコードを含んだ実行ファイルは、CUDAコアライブラリ(cuda)とCUDAランタイムライブラリ(cudart)を必要とする。
他の広く使われているライブラリは以下のものがある。