AIを動かすにはGPUが要る、と当たり前のように言われます。ただGPUのGは Graphics、つまり画像のGです。もともとは絵を描くための部品でした。
絵を描く道具が、なぜ言葉を扱う機械に要るのか。 順に見ていきます。
LLMの計算は「掛けて足す」の繰り返し
意味ベクトルを実際に取り出した記事で、語の近さを測る計算を示しました。これです。
const cos = (a, b) => a.reduce((s, x, i) => s + x * b[i], 0)
同じ位置の数字どうしを掛けて、全部足しているだけでした。384組ぶん。
LLMの中で起きているのも、これの巨大版です。 数字の並びどうしを掛けて足す——専門的には行列のかけ算と呼びますが、中身はこの繰り返しです。桁違いに多いだけで、1回1回は小学校の算数です。
そして重要な性質が1つあります。384組の掛け算は、互いに関係がありません。 1組目の答えが出なくても2組目は計算できる。全部を同時にやってしまえるわけです。
CPUは「賢い数人」、GPUは「単純な2万人」
ここで、2つの部品の設計思想が分かれます。
| 得意なこと | 数 | |
|---|---|---|
| CPU | 複雑な手順を、速く順番に片づける | 数個〜数十個 |
| GPU | 単純な計算を、大量に同時にこなす | 1万〜2万以上 |
CPUは少数の賢い働き手です。込み入った判断を含む仕事を、一つずつ手際よく処理します。パソコンの動作全般はこちら向きです。
GPUは逆で、大量の単純な働き手を並べています。NVIDIAのデータセンター向けGPUでいうと、H100世代で16,896個、その次のBlackwell世代では20,480個のコア(正式にはCUDAコア)が載っています。一つ一つは賢くありませんが、同じ計算を一斉に始められます。
「掛けて足す」を何億回も、しかも互いに独立して行う——LLMの計算は、まさにGPU向きの形をしていました。
なぜ絵の道具が転用できたのか
では、画像処理はどんな計算だったのか。
画面に絵を描く仕事は、画素ごとに同じ計算を当てることの繰り返しです。 ある画素の色を決める計算は、隣の画素とは無関係に進められます。何百万個の画素を、同時に、同じ手順で塗る。
形が、まったく同じでした。 大量・単純・互いに独立。だからGPUは、AI用に設計されたのではなく、たまたま形が合っていた部品です。
転機は、2つありました
1つめは2007年のCUDAです。 NVIDIAが、GPUを画像以外の計算にも使えるようにする仕組みを公開しました。それまでGPUに一般の計算をさせるのは、絵を描く命令に無理やり化けさせるような作業でした。これで普通の計算として書けるようになりました。(中身はCUDAとは何かで扱います)
2つめは2012年のAlexNetです。 画像認識のコンテストで、ニューラルネットワークが他を大きく引き離して勝ちました。使われたのは市販のGPU「GTX 580」2枚です。当時のソースコードはコンピュータ歴史博物館が公開しています。
「大量の単純計算を並列にやれば、ニューラルネットワークは実用になる」——これが実証された瞬間でした。以後、GPUは機械学習の標準的な道具になります。
だから足りないのは「賢さ」ではなく「数」
この構図は今も変わりません。モデルが大きくなるということは、掛けて足す回数が増えるということです。
だからAIの計算資源が足りないという話は、もっと賢い部品が要る、という意味ではありません。 同じ単純作業を、もっと多く、もっと速く回したい、という話です。
なぜそのGPUが世界で最も売れる商品になったのかは、別の記事で扱います。
まとめ
- LLMの計算の中身は「掛けて足す」の繰り返し。1回ずつは単純で、互いに独立している
- CPUは少数の賢い働き手、GPUは大量の単純な働き手。 データセンター向けGPUには1万〜2万を超えるコア(CUDAコア)が載っている
- 画像処理も同じ形だった——画素ごとに、独立した同じ計算。だからGPUはAI用に作られたのではなく、形が合っていた
- 転機は2007年のCUDA(画像以外の計算に使えるようにした)と2012年のAlexNet(市販GPU2枚で画像認識を制した)
- 足りないのは賢さではなく数。だから「もっとGPUを」という話になる