Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

NVIDIAのGPUだけが売れるのは?何故?

はじめに

NVIDIAGPUの件、H100が売り切れ、A800も売れている、ということをこのブログで取り上げました。

では何故?NVIDIAGPUだけが売れるのか?

それは、NVIDIAが長年作り上げてきたエコシステムがあるからです。特に、2006年11月発表があり、2007年7月に 1.0 の提供を始めたCUDAです。

あたしがGPGPUに興味を持ったのが 2008-2009年頃です。NVIDIAGPUが搭載されているAppleMacBookをお仕事用に調達し、そこでOpenCLとCUDAでプログラムを書き始めたのが2009年です。その後、NVIDIAGPUボードを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) を学習していますが、NVIDIAGPUを使うには最終的にCUDAを使うことになります。 また、CUDAを使ったライブラリを使って、そのライブラリをPythonから使えるようにしているわけです。

AMDIntel、その他のAIアクセラレータでもPythonを使って、LLMを学習できるが、他の人(会社、チーム)が学習したLLMなどを再現したりするには、みんなが使っているNVIDIAになるわけです。

つまり、みんなが使っているので、NVIDIAGPUを買う方がいいよね、ということになるわけです。

おわりに

AMDもMI300シリーズを出そうとしてNVIDIAに対抗していますが、NVIDIAのエコシステムにはまだまだ追いついていません。

これからLLMを使ったサービスではもしかしたら、NVIDIAGPUでなくても、コスパの観点からよくなりそうですが、それはいつになるかはわかりません。