推論チップ戦国時代 — Groq・Cerebras・LPUの設計思想
推論専用チップが乱立するのは、デコードが計算ではなく読み出しで律速されるからです。SRAM全載せ(Groq/LPU)とウェハスケール(Cerebras)という2つの答え、ソフト側の反撃、そしてベンチマーク数値を鵜呑みにせず市場を読むための式を、前提知識ゼロから解説します。
1トークンごとに、辞書を丸ごと読み直している
AIチップといえば長らく学習用GPUの話でした。ところが近年、推論だけを狙ったチップが次々に現れています。GroqのLPU、Cerebrasのウェハスケールエンジン、SambaNovaのRDU——設計は違えど主張は似ています。「同じモデルを、GPUより速く返せる」。
回している計算は同じ行列積のはずです。なぜ推論専用という括りが商売として成立するのか。理由はひとつ、推論で最も時間を食う部分が計算ではないからです。
LLMの生成は性格の違う2段階に分かれます。プリフィルはプロンプト全体をまとめて読む工程で、大きな行列同士の掛け算になりGPUが最も得意な形です。デコードは1トークンずつ吐き出す工程。ここが厄介で、1トークン作るたびに重みを端から端まで1回読み切るのに、読んだ重み1個が参加する計算はたった1回の積和しかありません。
蔵書を全部台車で運び出し、各本から1文字だけ読んで書架へ戻す。それを1文字出力するごとに繰り返す——デコードの実態はこれです。速さを決めているのは司書が読む速度ではなく、台車の往復です。
比喩: 倉庫までの距離が、返事の速さを決める
チップにとってデータの置き場所は「距離」です。演算器の隣にあるオンチップSRAMは手元の棚、パッケージに載ったHBMは倉庫。棚から取るのと倉庫へ行くのとでは、待ち時間も消費電力も桁が違います。この物理はメモリの壁で扱いました。
効いてくるのは、棚と倉庫の得意分野が逆な点です。オンチップSRAMは帯域でHBMを一桁以上引き離しますが、容量では二〜三桁負けます。1ビットを覚えるのにトランジスタを6個使う構造上、SRAMは面積を食うからです。
推論チップの設計思想は、煎じ詰めればこの一点への態度で決まります。遅い倉庫を諦めて、全部を手元の棚に載せられないか。
直感: バッチ1の速さは、割り算ひとつで決まる
デコードの上限は拍子抜けするほど単純な式で書けます。パラメータ数を 、1パラメータあたりのバイト数を 、メモリ帯域を とすると、
要するに、重みの総バイト数を帯域で割った時間より速くはならない。帯域が2倍の機械に替えれば上限も2倍、重みのバイト数を半分にしても2倍。逆に演算器だけ増やしても、この床は1ミリも下がりません。
数を入れると手触りが出ます。70Bのモデルをfp16で置けば重みは約140GB。帯域3TB/sの機械なら、1トークンあたり約47ミリ秒、毎秒21トークン強が天井です。カタログの演算性能がその倍の機械に替えても、この47ミリ秒は動きません。上限を決めているのは掛け算の速さではなく、荷物の運搬量だからです。
注目すべきは、この式にバッチサイズが出てこないことです。同時に何人分を処理しても、重みを読むのは1回。だからバッチを増やしても1ユーザーの体感速度はほぼ変わらず、装置全体のスループットだけが伸びる。推論チップの議論が「レイテンシかスループットか」で必ず割れるのは、この構造のためです。
もうひとつ、対話が進むほど重くなる項があります。文脈が伸びると、重みに加えて過去分のKVキャッシュを毎トークン読むことになる。1トークンあたりの読み出し量は文脈長に比例し、会話全体では2乗で積み上がります。
コメント
コメントにはログインが必要です