概要
CUDA (Compute Unified Device Architecture) は、NVIDIA社が提供する、GPUの並列処理能力を活用するためのプラットフォームおよびプログラミングモデルです。CPUだけでは処理しきれない大規模な計算を、GPUを使って高速化するために利用されます。特に、深層学習などのAI分野で不可欠な技術となっています。
CUDAは、C/C++などのプログラミング言語を拡張し、GPUのコア(CUDAコア)を直接制御できるようにします。CUDAプログラムは、ホスト(CPU)とデバイス(GPU)の間でデータや処理を移動させることで動作します。CUDAコアは多数存在し、SIMD (Single Instruction, Multiple Data) 方式で並列に処理を実行します。CUDAアプリケーションは、カーネルと呼ばれる小さなプログラムをGPU上で実行し、大量のデータを同時に処理します。CUDA Toolkitには、コンパイラ、ライブラリ、デバッグツールなどが含まれ、CUDAプログラミングをサポートします。