NVIDIA CUDA Compiler

Nvidia CUDA コンパイラ (NVCC)は、CUDAとの使用を目指したNVIDIAによるプロプライエタリコンパイラである。CUDAコードは、CPUGPUの両方で動作する。NVCCはCPUとGPUを分離し、ホストコード(CPU上で実行される部分のコード)をGCCIntel C++ Compiler、あるいはMicrosoft Visual C英語版のようなC言語コンパイラへ転送する。そして、デバイスコード(GPU上で実行する部分)をGPUへ転送する。デバイスコード(PTX)は、さらにGPU固有のバイナリコードへコンパイルされる。NVCCはLLVMに基づいている[1]。NVIDIAが提供した資料に従うと、nvccはバージョン7.0でC++11標準と少数のC99の機能によって定義される多くの言語構造をサポートしている。バージョン9.0においてC++14標準由来のより多くの言語構造がサポートされている[2]

NVIDIA CUDA Compiler
作者NVIDIA
種別コンパイラ
ライセンスプロプライエタリソフトウェア
公式サイトdocs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#introduction
テンプレートを表示

CUDAの言語拡張(.cu)を含んでいるあらゆるソースファイルは、nvccでコンパイルされる。NVCCは、コンパイラドライバであり、全ての必要なツールとcudacc、g++、clなどのようなコンパイラによって動作する。NVCCは、C code(CPUコード)、PTX(GPU擬似アセンブラ)、あるいはオブジェクトコード(GPUで直接実行可能)のいずれも出力できる。C codeは、CPU用のコードなので、他のツールを使ってアプリケーション(CPU用コードで書かれている)の他の部分と一緒にコンパイル・リンクされなければならない。CUDAコードを含んだ実行ファイルは、CUDAコアライブラリ(cuda)とCUDAランタイムライブラリ(cudart)を必要とする。

他の広く使われているライブラリは以下のものがある。

  • CUBLAS: BLAS の実装
  • CUFFT: FFT の実装
  • CUDPP (Data Parallel Primitives): 並列プログラミングで使用する Reduction, Scan, Sort
  • Thrust: 並列プログラミングで使用する Reduction, Scan, Sort

関連項目

出典

  1. David B. Kirk, and Wen-mei W. Hwu. Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, 2010.
  2. Nvidia Documentation on nvcc. http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/
  3. CUDPP. http://gpgpu.org/developer/cudpp
🔥 Top keywords: メインページ飯豊まりえ高橋一生石丸伸二特別:検索キダ・タロー廣瀬智紀弥助三淵嘉子川栄李奈羽賀研二葛西美空岸辺露伴は動かない秋元優里鈴村健一ユージ虎に翼山崎育三郎STARTO ENTERTAINMENT乙黒えり出口夏希窪塚愛流木田美千代緒方賢一Never young beach田村正和ニューカレドニア猿の惑星シリーズマイケル・ゴードンプロポーズ大作戦 (テレビドラマ)スロバキア麿赤兒浅野温子笠松将竜とそばかすの姫堀田賢慎ラナルド・マクドナルド伊倉愛美仲野太賀