はじめに
NVIDIAのGPUの件、H100が売り切れ、A800も売れている、ということをこのブログで取り上げました。
それは、NVIDIAが長年作り上げてきたエコシステムがあるからです。特に、2006年11月発表があり、2007年7月に 1.0 の提供を始めたCUDAです。
あたしがGPGPUに興味を持ったのが 2008-2009年頃です。NVIDIAのGPUが搭載されているAppleのMacBookをお仕事用に調達し、そこでOpenCLとCUDAでプログラムを書き始めたのが2009年です。その後、NVIDIAのGPUボードをPCに入れて、CUDA、OpenCL、OpenACCなどでプログラムを書いて、GPUでのアクセラレーションをしました。
その中でも、CUDAは新しいGPUが出る度にバージョンアップし、現在のHopper(H100)/Ada Lovelace(RTX40X0)に対応したのが 2022年10月にリリースされた 11.8 です。
CUDAの振り返り
- 1.0 (June 2007) : Tesla
- 2.0 (Aug 2008) :
- 3.0 (March 2010) : Fermi
- 4.0 (May 2011) :
- 5.0 (Oct 2012) : Kepler
- 6.0 (April 2014) :
- 6.5 (August 2014): Maxwel
- 7.0 (March 2015) :
- 8.0 (Sept 2016) : Pascal
- 9.0 : (Sept 2017) Volta
- 10.0 (Sept 2018) : Turing
- 11.0.1 (June 2020) : Ampere
- 11.8 (October 2022) : Hopper/Ada Lavelace
- 12.0 (December 2022) :
こうしてみると、8.0 までは、メジャーアップデートとマイナーアップデートを交互にリリースしたようですね。8.0以降は新しいGPUが出るタイミングでバージョンが上がっています。Hopper/Ada Lovelace が 11.8 になったのは何か?理由があるのでしょうか?10月に11.8、12月に12.0
12.0 のリリース時のブログを見ていたら、
NVIDIA は、CUDA Toolkit ソフトウェアの最新リリースである 12.0 を発表しました。このリリースは、数年ぶりのメジャー リリースで、新しいプログラミング モデルと新しいハードウェア機能による CUDA アプリケーションの高速化に焦点を当てています。
とありましたので、11.8 は H100/Ada Lovelace をとりあえず、CUDAで使えるようにしたものなんでしょうね。
12.0 では、新しいプログラミングモデル対応。。。サポートは、Maxwell以降。
Pythonで使っていても、最終的にはCUDAを使っている
Pythonを使って、LLM(Large Language Model) を学習していますが、NVIDIAのGPUを使うには最終的にCUDAを使うことになります。 また、CUDAを使ったライブラリを使って、そのライブラリをPythonから使えるようにしているわけです。
AMDやIntel、その他のAIアクセラレータでもPythonを使って、LLMを学習できるが、他の人(会社、チーム)が学習したLLMなどを再現したりするには、みんなが使っているNVIDIAになるわけです。
つまり、みんなが使っているので、NVIDIAのGPUを買う方がいいよね、ということになるわけです。
おわりに
AMDもMI300シリーズを出そうとしてNVIDIAに対抗していますが、NVIDIAのエコシステムにはまだまだ追いついていません。
これからLLMを使ったサービスではもしかしたら、NVIDIAのGPUでなくても、コスパの観点からよくなりそうですが、それはいつになるかはわかりません。