CUDA
概要
Compute Unified Device Architecture
NvidiaのGPUコンピューティングプラットフォーム
NVIDIAが提供するGPU向けのC言語の統合開発環境でありコンパイラやライブラリなどから構成されている。
グラフィック処理に特化していたGPUだったが、その処理性能をグラフィック処理以外にも活用できるようにしたのがCUDA
C言語以外からもCUDAを呼び出せるようにしている
python,java..
hiroki.iconColabとかでpython書いてた時にcuda出てきてたなぁ
CUDAで開発されたプログラムを実行すると、計算したいデータがコンピュータ本体のメインメモリ(ホストメモリ)からGPU側のメモリ(デバイスメモリ)に転送され、プログラムコードに従って演算が行われ、結果が本体側へ転送される。
メリット
NVIDIA製品の性能を最大限発揮できる
デメリット
CUDAはNVIDIA製のGPUでしか使えないという制約がある
→cuda依存のプログラムになるとベンダーロックイン
環境構築
Nvidia Driverのインストール
nvidia-driverはハードとOSの仲介役
Cuda Driverのインストール
CudaがPythonなどのプログラムにGPUリソースを提供する
CUDAとOpenCLやDirectComputeとの違い
OpenCLとDirectComputeは特定のメーカや機種に限定されない汎用的なプログラミング環境を提供している
→NVIDIA製品でも使用できる
CUDAはNVIDIA製品に特化している
その他
https://youtu.be/ix_PwMbOVaY
https://youtu.be/pPStdjuYzSI?si=S4Jja54cfcfL1_Vw