GPU不足は忘れろ:本当のAIボトルネックは2007年に診断されていた
本記事は、AIの真のボトルネックはGPU計算能力ではなくメモリ帯域幅であると主張し、2007年のUlrich Drepperによるメモリウォールに関する論文を引用している。AMD、Qualcomm、Nvidiaの最近の動きはこれを反映している。FlashAttentionや小規模言語モデルなどのソリューションは、データの局所性を最適化する回避策である。
今週、AMDとQualcommは数日のうちに相次いで新しいメモリパッケージングアプローチを発表した。AMDはLPDDR5XをVersal Premium Gen 2 SoCに搭載し、Qualcommは将来の推論アクセラレータ向けの「High Bandwidth Compute」をプレビューした。数週間前、NvidiaはSK HynixのHBM供給を2030年まで確保したが、これは調達契約というより、実際にAIを制限している物理問題に対するヘッジである。H100のリードタイムは36〜52週間であり、データセンターは2026年に生産される全メモリチップの70%を消費する見込みである。誰もがGPU不足にパニックを起こしている。GPUは問題ない。メモリがボトルネックであり、それは2007年にすでに診断されていた。
2007年の論文
私はUlrich Drepperの「すべてのプログラマが知っておくべきメモリについて」を、ほとんどのエンジニアと同じように、遅れて、そして待ったことを少し恥ずかしく思いながら読んだ。この論文は2007年、iPhoneが発売された年に発表され、当時「AI」はチェスエンジンを意味し、兆パラメータモデルのトレーニングというアイデアはSFと異端の間に位置していた。Drepperはそのようなことは考えていなかった。彼はキャッシュラインについて考えていた。彼の主張は単純明快だった。CPUは指数関数的に高速化しているが、メモリはそうではない。プロセッサができることと、それに供給できることのギャップは毎年拡大していた。彼は階層全体(ハードドライブ、RAM、L1/L2キャッシュ)を解説し、これらの層間の距離(ナノ秒単位)が実際に重要である唯一の数値であると指摘した。プログラムが常にプロセッサをオンダイキャッシュではなくメインメモリからフェッチさせる場合、高速なプロセッサでもほとんどの時間をアイドル状態で過ごし、バスを介してバイトが到着するのを待つことになる。彼はそれをメモリウォールと呼び、プログラマーに対して、メモリを平坦で均一なバケットとして扱うことはもはやできないと伝えた。データがどこにあるかによって、コードの実行速度が決まる。
同じ壁、ひとつ上のスタック
名前は変わったが、形状はまったく同じである。2007年の階層はハードドライブ→RAM→L1/L2キャッシュだった。今日のAIでは、それはHBM→GPUオンチップSRAMである。HBMが新しいメインメモリであり、GPUのSRAMが新しいL1キャッシュである。大規模モデルが生成するトークンごとに、ギガバイトの重みをこのギャップを越えて何百万回も毎秒移動する必要がある。これが、今週のニュースがこのような内容である理由である。Blackwellのようなチップでは、生の計算能力(TFLOPS)の向上がメモリ帯域幅の向上を桁違いに上回っている。誰もが執着する行列積は安価である。データを移動して計算を実行することが、時間と電力の両面で高くつく。NvidiaがHBMを2030年まで確保するのは貪欲だからではない。そのメモリがなければ、Blackwellの計算コアはアイドル状態になるからだ。AMDとQualcommがパッケージングを再発明しているのも遊び心からではない。彼らは、ロジック側がすでに追い越した帯域幅を買い戻そうとしているのだ。今春の決算電話会議を支配した「計算能力不足」は、ほぼ完全に、GPUというラベルを貼られたメモリ帯域幅不足だった。
解決策はすでに論文にあった
この問題を実際に解決した人々は、Drepperが予測した通りの方法で解決した。大規模モデルを実現可能にした最大のブレークスルーの一つであるFlashAttentionは、数学を縮小したりアーキテクチャを単純化したりはしなかった。それはアテンション計算を書き換え、データを可能な限りGPUのオンチップSRAM内に留め、HBMへの往復を最小限に抑えた。これはまさにDrepperが2007年にプログラマーに理解するよう懇願していた局所性の概念であり、19年後にトランスフォーマーに移植されたものだ。小規模言語モデルの波は、別の方向からの同じ妥協である。Llama、Phi、Mistral、そして人々がすでに持っているどんなコモディティハードウェアでも動作するオープンウェイトエコシステム——もし700億パラメータモデルをバス経由で十分速く移動できないなら、モデルを縮小してキャッシュ階層に収まるようにする。現役のソフトウェアエンジニアとして、SonnetとOpusが私にとって仕事を完遂してくれる理由は、それらがフロンティアモデルより賢いからではない。フロンティアモデルがメモリを大量に消費しすぎて、市場が実際に望む規模で展開できないからだ。
物理法則
Drepperはエッセイを、時間の経過に耐える一文で締めくくった。「ハードウェアの物理法則がソフトウェアの限界を決定する」。私たちはコードを抽象的で、銅線やシリコンから解放されたものとして扱う。今週のニュースは、その前提が行き止まりに達したときに何が起こるかを示している。次の10年のAIで勝つ企業は、最も多くのFLOPSを持つ企業ではない——2007年に一人のLinuxカーネルハッカーが皆に伝えようとしたことをついに内面化した企業である。チップは変わった。しかし壁は変わらなかった。