x86 準備好靠 ACE 大展身手了嗎? (★ 100 分)
CPU 指令集必須隨工作負載演進,Intel 的 AMX(Advanced Matrix Extensions,進階矩陣擴充)便是為機器學習矩陣乘法設計的功能。x86 生態系統諮詢小組提出的 ACE(AI Compute Extensions,AI 計算擴充)是 AMX 的第二種加速器架構,改用固定為 16 列、每列 64 位元組的矩陣暫存器配置,並以外積取代 AMX TMUL(Tile Matrix Multiply,矩陣分塊乘法)所使用的內積。ACE 也加入 FP8(8 位元浮點數)支援,但取消複數運算;硬體實作目前尚未問世,因此實際效能仍無法驗證。
文章將 ACE 與 Arm 的 SME(Scalable Matrix Extension,可擴充矩陣擴充)及 SME2 比較。ACE 延續 AMX 的 8 KB 矩陣暫存器,並利用 AVX-512/AVX10 的固定 512 位元向量暫存器處理輸入;SME 則採用可變的串流向量長度,從 128 位元到 2048 位元不等,對應的 ZA 矩陣儲存空間也可從 256 位元組擴充至 64 KB。兩者都以外積作為矩陣運算基礎,適合矩陣乘法及其他線性代數演算法。ACE 還能透過 `VUNPACKB` 搭配向量排列指令,彈性處理 2 至 7 位元的量化資料;SME2 的 ZT0 查找表則主要針對 2 位元與 4 位元格式,指令較簡單、暫存器壓力較低,但可處理的格式較有限。
為了補足 FP8 動態範圍不足,ACE 使用 1024 位元的 BSR0(Block Scale Register,區塊縮放暫存器)保存縮放因子,讓一組資料共用比例值;SME 則把相關欄位放在浮點模式暫存器中。兩種設計都可能因縮放值更新而造成指令序列化,若應用程式頻繁改變縮放因子,硬體處理會更加棘手。文章的矩陣乘法估算顯示,AVX-512、SME、AMX 與 ACE 的快取流量約為 3.4 TB、2.0 TB、1.7 TB 與 1.5 TB;ACE 透過讓輸入直接來自向量暫存器,能使用更大的輸出分塊,降低資料搬移與 L1 資料快取頻寬需求。不過相較 AMX 的改善幅度有限,主要價值可能在於降低功耗、減少資料搬移,或讓處理器在受限於快取頻寬時維持較高時脈。把 8 KB 矩陣暫存器當成一般暫存記憶體雖然理論上可行,但資料搬移延遲、容量偏小,以及作業系統必須在工作切換時保存額外狀態,都使這種用途不太實際。
Hacker News 讀者普遍認為,ACE 的真正表現取決於硬體實作與記憶體頻寬,不能只從指令集規格推測效能;專用 GPU 或外接推論加速器仍會負責大部分高吞吐量 AI 工作,而 CPU 矩陣擴充的優勢在於較低延遲、較容易整合既有程式,以及可能較低的功耗。有人以採用 Arm SME 的高效能運算系統為例,認為配備高頻寬記憶體的多核心 CPU 在 AI 推論或部分訓練工作上可能具競爭力,但 GPU 通常仍有更好的能源效率。
討論也指出,8 KB 的額外暫存器狀態會增加工作切換管理複雜度;x86 的 XSAVE(處理器延伸狀態保存機制)可只保存曾被使用的功能狀態,部分降低負擔,但無法消除成本。部分讀者猜測 ACE 可能要到較後續世代的 AMD 或 Intel 處理器才會出現,這並非已確認的產品時程;另一些人則關注消費級處理器是否會採用,以及缺乏類似 CUDA 的完整軟體生態系統會不會限制普及。整體而言,ACE 被視為讓 x86 CPU 更適合低至中等規模 AI 工作的押注,而不是取代 GPU 的方案。
👥 25 則討論、評論 💬
https://news.ycombinator.com/item?id=48901235