AMDとIntelが共同で進めるx86のAI対応が、構想段階から命令仕様の段階へ進んだ。x86 Ecosystem Advisory Groupは、AI Compute Extensions、略称ACEの仕様v1.15を公開した。ACEは、機械学習で多用される行列乗算と低精度データ形式をx86 CPU上で効率よく扱うための拡張である。
今回動いたのは、CPUだけで大規模AI処理をGPUのように担えるという話ではない。CPU上で処理した方が自然な小さな推論、低遅延処理、前後処理、ライブラリ内の行列カーネルに、AMDとIntelでそろった命令ターゲットを与えるところにある。AI PCではNPUが前面に出てきたが、ACEはNPUの性能競争とは別に、x86 CPUそのものへ行列演算の共通の足場を作ろうとしている。
ただし、仕様公開は製品発表ではない。v1.15の冒頭には、文書が設計段階の情報を含み、製品計画やロードマップは変更され得るとの注意書きがある。AMDやIntelがACE対応CPUの具体的な製品名、発売時期、性能値を示したわけではない。
AVXの隣に行列演算用のタイルを置く
ACEが追加するのは、既存のAVX命令を置き換える別体系ではない。仕様書は、ACEをAVXおよびスカラーコードを補う行列乗算プリミティブとして定義している。ACEはAVXレジスタを入力として受け取り、ACEのタイルレジスタに対して処理し、必要に応じてタイル状態とAVXレジスタの間でデータを動かす。
この設計は、x86 CPUがすでに持つベクトル実行資源を使いながら、行列演算の密度を上げるためのものだ。ACE白書は、8ビット入力の外積演算で、2本のAVX10 512ビットZMMレジスタを入力に使い、タイルレジスタ内の32ビット累算領域へ結果を足し込む例を示している。
白書が示す比較では、同じ2本のAVX入力ベクトルを消費する場合、AVXのINT8演算は1命令あたり64回の乗算であるのに対し、ACEのINT8外積は1024回の乗算になる。BF16でも、AVXの32回に対してACEは512回とされる。これは演算密度の比較であり、アプリケーションがそのまま16倍速くなるという意味ではない。それでも、命令発行やデータ移動の負担を抑えながら、同じ入力からより大きな行列演算を進められる点は、CPU内AI処理の設計上の選択肢を広げる。
低精度フォーマットをCPU命令の対象にする
ACE v1.15は、AIで使われる複数のデータ形式を仕様の中に取り込んだ。対象にはINT8、INT32、FP32、BF16、FP16、E8M0、FP8、MX FP8、MX FP6、MX FP4、MX INT8が含まれる。
Open Compute ProjectのMicroscaling Formats、OCP MX系の扱いが目を引く。ACE仕様では、MX FP8とMX INT8が行列乗算でネイティブに扱われる形式として説明されている。MX FP4とMX FP6については、FP8との間の専用変換命令が用意される。
AIモデルの重みや中間表現が低精度へ向かう流れに合わせたものだ。低精度化はメモリ帯域と容量を抑える一方で、変換、スケーリング、累算の扱いが難しくなる。ACEはブロックスケール用の状態も導入し、E8M0のようなスケール形式を行列演算の文脈に組み込む。CPU命令として乗算、スケーリング、変換の経路をまとめることで、実際の低精度AIカーネルを動かしやすくする狙いが見える。
すべての形式が同じ扱いではない。MX FP4やMX FP6は仕様上、主に変換命令として現れる。ACEが示したのは、低精度AI形式の名前を広く並べる対応ではなく、どの形式を行列演算の入力として扱い、どの形式を変換経路として扱うかまで決める設計である。
OSとランタイムの対応なしには使えない
ACEはアプリケーションが勝手に呼べば動く単純な命令追加ではない。仕様書は、ACEをAMXフレームワーク内の新しいパレットとして扱う。既存のAMX TMULがパレット1、ACEがパレット2という位置づけである。
このため、OSが保存・復元すべきプロセッサ状態も増える。ACEはAMX由来のTILECFGとTILEDATAに加え、ブロックスケール用のSCALEDATA状態を使う。仕様書では、XCR0の17ビットがTILECFG、18ビットがTILEDATA、20ビットがSCALEDATAに対応するとされる。AVX状態にアクセスするACE命令では、AVXやAVX-512関連のXCR0状態も有効である必要がある。
ACE対応は、CPUベンダーがシリコンを載せるだけでは終わらない。OSは拡張状態を扱い、コンパイラやアセンブラは命令を理解し、数値計算ライブラリやMLランタイムはACE向けカーネルを選べるようにする必要がある。ACE白書も、コンパイラ、デバッガ、プロファイラでの初期対応が進行中であり、今後は最適化カーネル、ライブラリ、機械学習ランタイム統合が焦点になるとしている。
ここが、ACEの普及を左右する。AMDとIntelが同じ仕様に並ぶことで、PyTorch、TensorFlow、NumPy、SciPyのような上位ソフトウェアは、ベンダーごとに別々のCPU向け最適化経路を持つ必要が小さくなる。共通化が進めば、CPU上で実行される小規模推論や行列前後処理の最適化を、より広いx86環境に配りやすくなる。
NPUやGPUを置き換えるのではなく、CPU側の空白を埋める
ACEを読むうえで避けたい誤解は、これをGPUやNPUの代替として扱うことだ。大規模な学習や高スループット推論では、GPUや専用アクセラレータが引き続き中心になる。ACEが向いているのは、CPUにデータがあり、GPUへ渡すほどの規模ではない処理、レイテンシが効く処理、あるいはAIモデルの周辺にある前後処理だ。
AI PCでは、NPU性能が製品の訴求点になってきた。ただ、ACEが扱うのはNPUの置き換えではなく、CPUに残る行列演算を同じ命令体系で扱いやすくすることだ。すべてのAI処理をCPUへ戻すのではなく、CPUで処理するのが自然な部分に、共通の行列演算機構を与える。
この位置づけは、サーバーにもクライアントPCにも関係する。サーバーでは、GPUに渡す前後の変換や小さな行列カーネルが残る。PCでは、ローカルAI機能の一部がCPUで動く場面がある。どちらの場合も、AMDとIntelで命令仕様がそろえば、ソフトウェア側は最適化の投資を回収しやすくなる。
実チップの時期はまだ見えていない
公開された仕様から分かるのは、ACEがどう見える命令セットになるかであり、いつどの製品に載るかではない。Heiseは、現時点の情報ではACE v1互換のx86プロセッサが2028年以前に登場する可能性は低いと見ている。同記事は、AMDがZen 7で「Matrix Engine」に触れている一方、Zen 6やIntelのNova LakeではACEへの言及がないとも指摘している。
この見立ては公式の発売時期ではない。とはいえ、仕様書の性格を考えれば、ACEは短期のベンチマーク競争より、次世代以降のCPU設計とソフトウェア移行の話として読むべきだ。命令仕様、OS状態、CPUID列挙、データ形式、ライブラリ統合がそろって初めて、開発者にとって使える機能になる。
AMDとIntelが2024年にx86 Ecosystem Advisory Groupを立ち上げたとき、狙いの一つはx86の機能をそろえ、ソフトウェア開発を単純にすることだった。ACE v1.15は、その約束がAI計算の領域で具体的な命令表に落ちてきた例である。次に見るべきなのは、ACEという名前が製品スライドに載るかどうかだけではない。LinuxやWindows、コンパイラ、数値計算ライブラリ、MLフレームワークが、CPU上の行列演算をどこまで同じ経路で扱えるようになるかである。