| 開発者 | エヌビディア |
|---|---|
| 初回リリース | 2007年6月 |
| 安定版リリース | 12.6.0 / 2024年8月 |
| 利用可能 | 英語 |
| タイプ | コンパイラ |
| ライセンス | 独自 |
| Webサイト | docs.nvidia.com/cuda/cuda-compiler-driver-nvcc |
Nvidia CUDA コンパイラ( NVCC )は、 CUDAで使用することを目的としたNvidiaのコンパイラであり、独自のソフトウェアです。
コンパイラ
CUDA コードは、中央処理装置(CPU) とグラフィックス処理装置(GPU)の両方で実行されます。NVCC はこれら 2 つの部分を分離し、ホスト コード ( CPUで実行されるコードの部分) をGNU コンパイラ コレクション(GCC) やIntel C++ コンパイラ(ICC)、Microsoft Visual C++コンパイラなどの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) が必要です。
広く使用されているその他のライブラリ:
- CUBLAS: BLAS 実装
- CUFFT: FFT 実装
- CUDPP (データ並列プリミティブ): 削減、スキャン、ソート。
- 推進力: 削減、スキャン、ソート。
参照
- オープンCL
- 異機種混在システムアーキテクチャ
- CUDAバイナリ(cubin) – ファットバイナリの一種
参考文献
- ^ 「CUDA LLVM コンパイラ」。Nvidia Developer。2016年4 月 6 日閲覧。
- ^ 「CUDA C++ プログラミング ガイド」。NVIDIAドキュメント ハブ。2019年 6 月 28 日閲覧。
一般的な
- David B. Kirk、Wen-mei W. Hwu。『超並列プロセッサのプログラミング: 実践的アプローチ』Morgan Kaufmann、2010 年。
- 「Nvidia CUDA コンパイラ ドライバー NVCC」。Nvidiaドキュメント ハブ。2023 年 10 月 13 日時点のオリジナルよりアーカイブ。
- 「CUDPP」。GPGPU。2018年11月17日時点のオリジナルよりアーカイブ。
外部リンク
- 公式サイト
