CUDA(Compute Unified Device Architecture)は、Nvidiaによって開発された並列コンピューティングプラットフォームおよびプログラミングモデルであり、2006年に初めてリリースされた。これにより、開発者はグラフィックス描画専用のコードだけでなく、Nvidia GPU上で動作する汎用コードを記述できるようになった。CUDAは、GPUの数千もの並列コアを任意の計算に活用する比較的アクセスしやすい方法を提供し、CやC++などの言語をGPU固有の構文で拡張した。
歴史と目的
CUDA登場以前は、非グラフィックス計算にGPUを使用するには、テクスチャやシェーダーなどのグラフィックス操作の観点で問題を表現する必要があり、コンピューターグラフィックス以外の分野では実用的とは言い難い回避策だった。2006年のNvidiaによるCUDAリリースはこの障壁を取り除き、プラットフォームはその後10年間で、科学計算、計算金融、そして2010年代初頭からはますます深層学習研究での採用を通じて成熟した。2012年のAlexNetの成功は、CUDAで加速されたGPUを用いて訓練され、深層学習の可能性を示し、CUDAベースのGPU訓練への研究投資の急増を促し、この分野におけるプラットフォームの役割を確固たるものにした。
技術的役割とエコシステム
CUDAは、ニューラルネットワークの基本演算向けのcuDNNや線形代数向けのcuBLASなど、ほとんどの深層学習フレームワークが基盤とする低レベルライブラリを提供する。主要な深層学習フレームワークであるPyTorchとTensorFlowはどちらもCUDA上で効率的に動作するように書かれており、2020年代半ば時点で発表された深層学習研究の大部分と本番AIシステムは、CUDA対応のNvidiaハードウェア上で実行されている。これにより強力なソフトウェアの堀が生まれた。大規模なAIコードベースをNvidia GPUからAMDのROCmプラットフォームやGoogleのTPUなどの競合ハードウェアに移行するには、個々の研究コードから本番の推論サーバーに至るまで、多くのツールがCUDAに特化して書かれ最適化されているため、通常は多大なエンジニアリング作業が必要となる。
重要性と批判
CUDAは、GPUハードウェア自体と並んで、2020年代のAIブームにおけるNvidiaのAIハードウェア市場での支配力の決定的要因として広く認識されている。研究ライブラリから大規模言語モデルの訓練フレームワークまで、ソフトウェアエコシステムの多くがCUDAの利用を前提としているため、競合他社がハードウェア性能を一致させるだけではNvidiaの地位を覆すのは難しいからだ。この状況に対する批判者、競合チップメーカーや一部のAI研究所を含む、は、CUDAを独自のロックイン機構と表現し、業界全体のコストを引き上げ、ハードウェア選択を制限していると主張し、ベンダー間で移植可能なGPUコードを書きやすくすることを目的としたOpenAIのTriton言語などのオープンな代替案を支持している。こうした取り組みにもかかわらず、2025年時点でCUDAは、学術研究コードから最先端の基盤モデルを実行するインフラストラクチャまで、ほとんどの深層学習ソフトウェアのデフォルトの前提であり続けている。