CUDA 【Compute Unified Device Architecture】
概要
CUDA(Compute Unified Device Architecture)とは、コンピュータのグラフィックスプロセッサ(GPU)を利用して汎用の並列計算を行うためのソフトウェア開発・実行環境の一つ。米NVIDIA社が自社製GPU向けに開発・提供している。GPUは3次元グラフィックス描画や動画データの圧縮・再生などに必要な処理を高速化するため、比較的単純な計算を多数のデータに並列に実施する大規模な演算装置を内蔵している。これをグラフィックス関連以外の様々な用途に応用することを「GPUコンピューティング」あるいは「GPGPU」(General-Purpose computing on GPU)という。
CUDAはNVIDIA社製GPUで汎用の並列計算を行うためのプログラミング環境を提供するもので、専用のプログラミング言語やコンパイラ、ライブラリ、API(Application Programming Interface)などで構成される。
CUDAで開発されたプログラムを実行すると、計算したいデータがコンピュータ本体のメインメモリ(ホストメモリ)からGPU側のメモリ(デバイスメモリ)に転送され、プログラムコードに従って演算が行われ、結果が本体側へ転送される。
標準ではC言語/C++言語を元に独自に開発された「CUDA C」および「CUDA C++」と呼ばれるプログラミング言語を用いてコードを記述する。他の言語で開発するためのソフトウェアも提供されており、科学技術計算や物理シミュレーション分野でよく使われるFortranや、Java、Microsoft .NET、Python、Perl、Rubyなどに対応している。
同種の技術としてよくOpenCLやDirectComputeと比較されるが、これらは特定のメーカーや機種に限定されない汎用的なプログラミング環境を提供するため、NVIDIA社製以外のプロセッサ等でも使用することができる。一方、CUDAは同社製品に特化しており、その能力を極限まで引き出すことができる。
(2020.7.24更新)