おがわの音♪ 第1589版の配信


AI時代に一人勝ち

NVIDIAの「CUDAIntelAppleを蹴散らし業界の実質的なスタンダードになった背景を中島聡が徹底解説

2024.06.05

 by 中島聡

空前のAIブームの中にあって、その開発の現場で「一人勝ち」とも言うべき圧倒的なシェアを誇っているNvidia(エヌビディア)のGPU向け開発環境「CUDA」。IntelAppleといったライバルたちを尻目に、いかにしてCUDAはトップに登り詰めたのでしょうか。世界的エンジニアとして知られる中島聡さんが、CUDA誕生の経緯から業界の「事実上の標準」となるまでを詳しく解説。さらにMicrosoft520日に発表した「Copilot+PC」に関して、中島さんが注目したポイントを記しています。



AI研究者たちに与えた大きなインパクト。NVIDIACUDA誕生の経緯と一人勝ちの背景

現在進行形の「AIブーム」の中で、そのメリットを最も享受しているのは、Nvidiaであることは、今や、誰もが知るところです。AIの基盤となるニューラルネットは、そのパラメータ数に応じて能力が上昇するため、学習・推論のいずれのプロセスにおいても莫大な計算が必要で、現時点では、NvidiaGPUが圧倒的なシェアを持っているためです。

GPUを提供しているのはNvidiaだけではなく、IntelAMDAppleQualcommなどライバルも複数存在しますが、そこでライバルを排除する強力な武器となっているのが、CUDAと呼ばれる開発環境です。

GPUは、CPUとは異なり、大量の計算を同時に並列して行うことが得意ですが、その能力を引き出すためには、GPU向けの開発環境が必要なのです。

CUDAはそんな「GPU向けの開発環境の一つ」ですが、ニューラルネットの研究者たちの間で、CUDAがデファクト・スタンダード(実質的なスタンダード)になってしまったため、その上にライブラリも数多く作られ、今や、少なくとも学習プロセスに関して言えば、「CUDAを使う以外の選択肢はほぼない」状況になっているのです。

CUDAは、Nvidiaが自社製のGPUの上に作った開発環境であるため、結果として「ニューロンの学習プロセスにおいては、NVIDIAを使う」ことがスタンダードになってしまったのです。GPT4などのLLM(大規模言語モデル)が証明しているように、人工知能の性能を上げるには、ニューラルネットの規模(パラメータ数)を大きく、かつ、大量の教育データを与える必要があるため、ここに「AI特需」が発生し、一つ数百万円するNvidiaGPUが、1年先まで予約が入ってしまっているほど「バカ売れ」しているのです。

今日は、このCUDAがどんな経緯の元に生まれ、どうやって業界のデファクト・スタンダードの地位に登り詰めたのかについて、解説したいと思います。

GPU向けの開発環境として、最初に普及したのは、OpenGLでした。

シリコン・グラフィックスというグラフィックス・ワークステーション(画像や映像処理を行うための専用のコンピュータ)を作っていた会社が、1992年に自社製のワークステーション向けに提供していたIRIS GLというAPIをオープン化する、という形でスタートしました。

OpenGLの以前には、シリコン・グラフィックスのライバルたち(Sun MicrosystemsHewlett-PackardIBM)が作ったPHIGSという業界標準がありましたが、技術的に優れていたという理由で、OpenGLがワークステーションの業界では、標準になりました。

歴史の流れを大きく変えた「一つの事件」

その流れに逆らう動きをしたのが Microsoftでした。

パソコンの性能が上昇し、ゲーム用の高性能なグラフィクス・カードが普及する中で、3Dグラフィックスのゲームを作り易く、かつ、ハードに依存しない形でアプリケーションが作れるようにと、DirectXという仕組みをWindows95に追加したのです(1995年)。

MicrosoftOpenGLを採用せずに、独自のDirectXを作ったことは、業界全体から激しく批判されました。

業界標準の足並みを乱す行動だったし、それにより、Microsoftが、開発者の抱え込みをしようとしていることが明らかだったからです。

しかし、Windows95が市場で大成功し、数多くのゲームがWindows向けに開発された結果、DirectXは瞬く間にOpenGLの最大のライバルになり、開発者を悩ませることとなりました。

WindowsXBox向けにゲームを作る際には、DirectXを使い、Macや他のゲーム端末向けにゲームを作る際には、OpenGLを使わなければならなかったからです。

Unreal Engine1998年)、Unity2005年)のような(DirectXOpenGLを直接アクセスせずにゲームが開発出来る)ゲームエンジンが普及した背景には、この2つのプラットフォーム間の戦いがあったのです。

そんな中、パソコンやゲーム端末向けにGPUを提供していたNvidiaCUDAという第三のプラットフォームを発表しました(2007)。

設計されてからかなりの時間が経過し、使いづらくなっていた点を解消しただけでなく、Nvidia製のGPUの性能を最大限に引き出すための工夫や、プログラミングのしやすさに焦点が置かれた、モダンなプラットフォームです。

NvidiaCUDAを作った狙いは、MicrosoftにとってのDirectXと同じく、開発者の抱え込みです。

たとえ、ゲーム開発者が直接CUDA上でプログラミングをしなくても、ゲームエンジンが、CUDAを使った最適化をしてくれれば、NvidiaGPUを搭載したマシンの性能が上がることになります。

ここまでは、GPUはゲームやグラフィックス・アプリケーションのみに使われて来ましたが、2000年代の中頃になると、GPUを科学技術計算に使いたい、というニーズが出てきます。一つ作るのに何千億円もかかるスーパーコンピュータを、安価なPS2PS3をクラスター上に繋げてスーパーコンピュータとして使おうという試みが各所で行われるようになって来たのです。そんな中で、誕生したのが、GPU上で科学技術計算をするためのプラットフォーム、OpenCLです(2008)。

開発したのはAppleで、NvidiaAMDIBMQualcommIntelという錚々たるメンバーの協力を得て、Khronosという業界標準を決める団体に提案され、正式に採用されました(OpenGL2006年からは、Khronosの管理下に置かれています)

この段階で、私も含めて、多くの業界関係者は、科学技術計算に関しては、OpenCLが業界標準となり、長く使われることになるだろうと予想していました。

当時はまだ、人工知能は今ほど注目されていなかったので、科学技術計算と言えば、主に、流体のシミュレーションとか、天気予報とかです。

それまで高価なスーパーコンピュータでしか出来なかった複雑な科学技術計算が、パソコン上で出来るようになる、画期的なプラットフォームでした。

しかし、2012年に起こった一つの事件が、歴史の流れを大きく変えることになりました。

AlexNetです。AlexNetは、当時トロント大学の博士課程にいたAlex Krizhevskyが、(後にOpenAIの創業者の一人となった)Ilya Sutskeverの協力を得て作った、GPUを使うことにより高速化した画像認識用のニューラルネットです。

Krizhevskyが作ったAlexNetは、「ImageNet Large Scale Visual Recognition Challenge」と呼ばれる画像認識のコンペティションで、2位に認識率で10%以上の差をつけたブッチギリで優勝したのですが、その時にAlexNetが採用したプラットフォームが、OpenCLではなく、CUDAだったのです。

人工知能の研究者たちに瞬く間に広まった4つの情報

なぜ彼が、OpenCLではなくCUDAを採用したかについては、本人と会う機会があったら是非とも聞いてみたいところですが、この事件は、人工知能の研究者たちに大きなインパクトを与えました。具体的に言えば、

1.     長く続いていた人工知能の冬」がようやく終わった

2.     ニューラルネットは、そのサイズがものを言う

3.     ニューラルネットの計算は、GPUを使うと桁違いの高速化が出来る

4.     GPUを使いこなすには、CUDAを使えば良い

という情報が、瞬く間に広まったのです。

4番目は、OpenCLでも良かったはずなのですが、たまたまAlexNetCUDAを採用していたため、ニューラルネットの高速化にはCUDAを使うべしという情報が研究者の間に瞬く間に広まってしまったのです。

この事件をきっかけに、CUDAが人工知能の研究者たちの間に瞬く間に広まったとは言え、CUDANvidiaGPU上でしか使えないし、さまざまなGPUの上でも使えるOpenCLの存在意義がなくなったわけではありませんでした。

皮肉なことに、OpenCLの息の根を止めたのは、OpenCLの開発者、Apple自身でした。2014年に、独自のプラットフォームMetalを発表したのです。

Metalは、それまでAppleが採用していたOpenGLOpenCLの代わりに提供された、グラフィックスと科学技術計算の両方をサポートするプラットフォームです。

Appleはそれまで、iPhone向けには自社製の、MacBook向けには、IntelNviida製のGPUを採用し、その違いをOpenGLで吸収するという形を採用していましたが、OpenGLが陳腐化し、後にVulkanと呼ばれるようになった「次世代OpenGL」の開発がなかなか順調に進まない中、CUDAの台頭を見て危機感を抱いたのだと解釈できます。

CUDAがあまりにも強くなってしまうと、Appleは全てのMacNvidiaを搭載しなければならなくなってしまい、最終的には、iPhone/iPadにまで進出を許すことになってしまいます。その当時から、AppleMac向けに自社製チップを作る計画を持っていたかは不明ですが、それも不可能になってしまいます。

2014年のAppleによるMetalの発表は、単にOpenCLの息を止めただけでなく、次世代OpenGLValkan)の死産を運命付け、世界を「NvidiaGPU上でしか動かないCUDA」と「Apple製品の上でしか動かないMetal」に二分し、その2社以外のGPUメーカー(主にIntelAMD)にとっては、とても居心地の悪いものにしてしまったのです。

しかし皮肉なことに、AppleMetalは、グラフィックスや(ニューラルネットの)推論のプロセスにおいては、力を発揮するものの、学習プロセスにおいては、Nvidia+CUDAの一人勝ちで、Apple社内のAIチームですら、学習プロセスにはNvidiaGPUを使わざる負えない状況に追い込まれています。

以上が、CUDAが、そしてCUDAを戦略的な武器として抱えたNvidiaが今の地位に登り詰めた背景なのです。

ちなみに、以上のことを理解した上で、今回のMicrosoftによるCopilot+PCの発表を見ると、色々と面白いことが見えてきます。

 ☞ Copilot とは、(下段のTOPICSを参照ください) 社内データ向けに開発されたチャットボット。

         Microsoft 365アプリとの連携で、さまざまなタスクをこなし業務の効率化を実現

MicrosoftCopilot+PCに最低限として必要なスペックとして、(Nvidiaが強い)GPUの能力ではなく、NPUの能力(40TOPSを定めたことは、今後のチップメーカー間の戦いを占う上でも、MicrosoftAppleの戦いを占う意味でも、とても重要です。

私は今回のMicrosoftによる発表を、デバイス上で推論を行うGPU終わりの始まりだと解釈しています。デバイス上で行うニューラルネットの推論に関しては、MetalCUDAのようなレイヤーを使って開発者たちが最適化をする時代は終わりデバイス上のNPUの上でニューラルネットを効率良く動かすためのAPIOSベンダー(MicrosoftApple)が提供し、開発者たちは、より上のレイヤー(AIエージェントや、カスタムLLM)で勝負をする時代になるのです。




 

最後までお読みいただき、有り難うございました。  ☚ LINK 

*** 皆さんからの ご意見・ご感想など BLOG』のコメントを頂きながら、双方向での 【やり取り】 が できれば、大変嬉しく思います!!   もちろん、直接メール返信でもOK ! です。 ^_^ *** 


メール・BLOG の転送厳禁です!!   

よろしくお願いします。