AIエンジニアの間ではGPUの製造メーカーとして良く知られているNVIDIAであるが、投資家の間では、四半期ごとに発表される業績が注目されており、NVIDIAの業績によって米国の株式市場の株価の傾向だけでなく、日本をはじめとする世界中の株価の傾向を左右する状態になっている。
今でこそ、GPUといえばNVIDIA、NDIVAといえばGPUというように、AIに利用されるGPUの代表的なサプライヤーになっているが、私がデータセンター事業会社で執行役員をしていた10年前はNVIDIAのGPUはオンラインゲームで利用されるコンピュータ向けのデバイスとして認識されていた。ディープラーニングの研究目的で、当時でそれなりにハイスペックのGPUを搭載したタワー型PCを1台だけ自作コンピュータ販売会社にネットで注文したところ、先方の法人営業担当から直接会いたいという連絡があり、面談することになった。今思えば、当時はガチャを中心としたスマホゲームが伸び盛りだったためデータセンター事業会社がGPUを購入するということは何かゲームビジネスのネタがあり、もっと大量発注が控えているかもしれないという想像をしていたのかもしれない。面談では営業担当だけでなく部長クラスの方も同席されており、一通りのアイスブレイクの会話の後、GPUの利用目的を質問された。私は「ディープラーニングの学習で使うので」と回答した。しかし、先方は怪訝な顔をされ、「社内教育向けですか・・・」と言われたので、「そっか、これはきちんと説明をしないと理解してもらえないと考え、20分ぐらいかけて、人工知能の概要と、当時の技術トレンド、なぜディープラーニングが注目されているのか、なぜGPUが必要なのかというのを簡単に説明した。反応は、「そうなんですね、いやーそんなものにGPUが使われるとは全然知りませんでした。その分野の研究機関への販売の可能性についても検討していきます。」と言われていたのを記憶している。その後、2016年になるとAI向けサーバDGX-1がNVIDIAから発売され、さらにハードウェアだけではなく、AIに関するソフトウェアを数多く無料提供することでNVIDIAは2014年ごろから始まるAIブームを牽引していくことになっている。
AMDやIntelなど別メーカーからもGPUが販売されているが、なぜAI利用となるとNVIDIAが選ばれるのか?というと、それはCUDA(Compute Unified Device Architecture)という汎用並列コンピューティングプラットフォーム(並列コンピューティングアーキテクチャ)およびプログラミングモデルが存在するからである。簡単にいうとCUDAはアプリケーションから簡単にGPUを使うためのツールである。現在のAI/機械学習に関する研究開発環境はarXiv,githubに公開された研究結果、プログラムを参照して追加、改善するというサイクルになっているため、基本的にそれらが動作する環境に依存する。したがって、元々の環境がCUDAでGPUを使う環境であれば、その環境を求めるという流れである。学習効率を上げるには、CUDAが使えれば高性能なGPUに変えるだけでAIアプリケーションとしてはそのままでなにもせず対応できるためAIエンジニアとしてはNVIDIAのGPU一択となっている。
ビジネスとして他のメーカーのGPUを選択する際のネックになるのが、既存のAIアプリケーションを動作させるためのCUDA互換性の有無である。昨今のネット記事にあるようにAIアプリでのデータセンター利用増加により電力利用増加が予測されるため、省電力化というのが課題になるのだが、NVIDIAよりも省電力な環境を採用したとしてもその上で動作するアプリケーションがない、もしくは動作環境移行コストがかかるのは魅力的に見えないというのが問題である。
このたぐいで似たような話は以前からあり、PCのOSでWindowsを利用するよりもLinux系のOSを利用した方がコスト的にもセキュリティ的にも安価で済むが、Office製品やその他業務系アプリで多くの人が慣れているアプリがLinux系OSでは使えないためいまだにWindowsのシェアが大きいという例が代表的なものである。
この状況を変えていくには、Googleがクラウドで提供しているAI開発環境 ColaboratryでTensorFLow+TPU(Tensor Processing Unit)を使えばCUDAは必要なくなるというように、NVIDIA以外のAI半導体会社もしくは、そこと協業する会社がソフトウェア開発ルーツに投資をしっかりしてCUDA依存しないAIアプリケーションを開発する必要がある。もしくは、CUDA互換がある開発ツールを提供することで現状のNVIDIA優位な状況を変えることは可能かと考える。