CUDA(Compute Unified Device Architecture)とは、NVIDIAが開発・提供するGPU向けの並列計算プラットフォームおよびAPIです。これを利用することで、高度な並列演算をGPU上で実行し、大規模データ処理や機械学習、シミュレーションなどを高速に行うことができます。
- もともとC/C++の拡張として提供されており、C/C++コードにCUDA用の拡張キーワードを埋め込むことで、GPUコードを簡単に記述できるのが特徴です。
- PyTorchやTensorFlowなど多くの機械学習フレームワークで利用されているCUDAは、GPUのコアを大量に使うことでCPUでは困難なレベルの並列演算を実現しています。
- GPUのハードウェア機能をソフトウェアから使いやすくした“抽象化レイヤー”の役割も果たしており、ハイレベルなライブラリ・フレームワークと組み合わせることで、高速な数値計算をPythonなどの言語から簡単に呼び出すことができます。
目次
CUDAの分類
CUDAを大きく分類すると、主に以下のようなカテゴリに分けられます。
- GPU向けの並列計算プラットフォーム
- GPUを活用した大規模並列処理を可能にするための環境全体を指します。
- プログラミングモデル / API
- C/C++やFortranなどに対してCUDA固有の拡張やAPIを用意し、GPU用コードを記述できるようにしています。
- 関数の先頭に
__global__
や__device__
を付けるなど、特有の書き方でGPU側で実行されるコードを定義します。
- SDK / ツールキット
- NVIDIAが提供するソフトウェア開発キット (CUDA Toolkit) には、コンパイラ(
nvcc
)、デバッグ・プロファイリングツール、各種ライブラリ(cuBLAS、cuDNN等)が含まれています。
- NVIDIAが提供するソフトウェア開発キット (CUDA Toolkit) には、コンパイラ(
- ライブラリ群
- 高速な行列演算やニューラルネットワーク計算のための最適化ライブラリ(cuBLAS、cuFFT、cuDNNなど)が多数提供され、GPU上で効率的に動作します。
コメント