AMX(Advanced Matrix Extensions)
3 秒看懂
AMX 是 Intel 在 Xeon CPU 內部新增的”矩陣乘法硬體加速引擎”——把原來靠 AVX-512 向量指令模擬的 GEMM,變成一條指令直接在專用 2D Tile 暫存器上完成矩陣乘累加。目標:讓 CPU 在中等規模 AI 推論場景具備與低端 GPU 競爭的吞吐能力。
3 分鐘產業解釋
問題:CPU 推論為什麼”慢”?
傳統 AI 推論在 CPU 上主要靠 AVX-512 VNNI 指令——本質是 1D 向量點積,需要軟體迴圈展開才能拼出矩陣乘法(GEMM)。GEMM 佔大型模型推論前向傳播的絕大多數算力(線性層),向量指令的”利用率天花板”始終存在。
AMX 的解法
Intel 從硬體層面新增了一組 2D Tile 暫存器(tmm0–tmm7) 和配套的 Tile Dot Product 指令,一條指令就能完成兩個 Tile 矩陣的乘累加,繞開逐行逐列的向量迴圈。這類似於 NVIDIA Tensor Core 對 CUDA Core 的關係——只不過 AMX 做在 CPU 內部。
產業意義
- CPU 推論成本下降:對於 7B–13B 引數級模型的 serving,CPU 方案在延遲敏感、批大小較小的場景下,TCO 可能優於 GPU(無需 PCIe 資料搬運、無 GPU 視訊記憶體限制)。
- 雲端廠商定價邏輯變化:AWS/Azure/GCP 的 Xeon 例項(Sapphire Rapids 及之後)均可在不加裝加速卡的情況下提供一定 AI 推論能力。
- 邊緣部署簡化:無需獨立加速器,降低功耗與硬體複雜度。
15 分鐘專家深入
AMX 在 CPU 推論鏈路中的定位
┌──────────────────────────────────────────────────┐
│ AI Inference Pipeline (CPU) │
│ │
│ ┌─────────┐ ┌──────────┐ ┌───────────────┐ │
│ │ Tokenizer│──▶│ Embedding│──▶│ Transformer │ │
│ └─────────┘ └──────────┘ │ Block × N │ │
│ │ ┌────────────┐ │ │
│ │ │ QKV Linear │ │ │
│ │ │ → AMX GEMM │ │ │
│ │ ├────────────┤ │ │
│ │ │ Attention │ │ │
│ │ │ → AVX-512 │ │ │
│ │ ├────────────┤ │ │
│ │ │ FFN Linear │ │ │
│ │ │ → AMX GEMM │ │ │
│ │ └────────────┘ │ │
│ └───────────────┘ │
│ ┌─────────┐ │
│ │ LM Head │ ← AMX GEMM (vocab projection) │
│ └─────────┘ │
└──────────────────────────────────────────────────┘
關鍵洞察:Transformer 模型中 Linear 層(矩陣乘法)佔總計算量 70%–90%+,這正是 AMX 的主戰場。Attention 中的 softmax、layernorm、RoPE 等仍由 AVX-512 / 通用 ALU 完成。
AMX 與 AVX-512 的協作
AMX 並非替代 AVX-512,而是互補:
- AMX:專攻 GEMM / 卷積等 2D 矩陣運算
- AVX-512:處理逐元素運算(activation 函式、softmax、normalization)、以及不規則的 GEMV(矩陣×向量,推論階段 batch=1 常見場景)
- 兩者可能共享CPU前端的發射資源,需要編譯器/runtime 排程合理
INT8 量化推論
AMX 原生支援 INT8 掉落點積(TDPBUSD 等指令族),配合量化感知訓練(QAT)或訓練後量化(PTQ),可以在 INT8 精度下獲得更高的吞吐。這對 LLM 推論中的權重量化(W8A16/W8A8)至關重要。
技術原理
Tile 暫存器架構
AMX Register File
════════════════════════════════════════
tmm0 [ 1024 bytes ] ← Tile Register 0
tmm1 [ 1024 bytes ] ← Tile Register 1
tmm2 [ 1024 bytes ] ← Tile Register 2
...
tmm7 [ 1024 bytes ] ← Tile Register 7
════════════════════════════════════════
TILECFG [控制暫存器] ← 配置 Tile 行列維度 & Palette
每個 Tile = 1024 位元組 = 8192 bit
由 Palette 系統配置為 2D 矩陣:
Palette 配置機制:軟體通過 LDTILECFG 指令寫入一個配置結構,定義每個 Tile 的行數(rows)和列寬(以位元組計)。典型配置示例(需參考具體軟體實現確認):
| 資料型別 | 元素大小 | 典型 Tile 配置 | 元素總數 |
|---|---|---|---|
| BF16 | 2 bytes | rows × 64 cols (bytes) → 16×32 BF16 elements | 512 |
| INT8 | 1 byte | rows × 64 cols (bytes) → 16×64 INT8 elements | 1024 |
| FP16 | 2 bytes | Granite Rapids+ 才支援 | — |
⚠️ 注:具體 rows/columns 最大值與 Palette 選項依賴處理器代際和軟體配置,上表為根據 Tile 暫存器 1024 位元組約束的估算,實際可配置方案以 Intel SDM(Software Developer’s Manual)為準。
核心指令族
| 指令 | 操作 | 資料型別 | 累加型別 |
|---|---|---|---|
TDPBF16PS | C += A × B | BF16 × BF16 | FP32 |
TDPBUSD | C += A × B | INT8 × UINT8 | INT32 |
TDPBSUD | C += A × B | INT8 × UINT8 (signed/unsigned) | INT32 |
TDPBSSD | C += A × B | INT8 × INT8 | INT32 |
TDPFP16PS | C += A × B | FP16 × FP16 | FP32 (Granite Rapids+) |
執行語義(以 TDPBF16PS 為例):
// C[tmm_dest], A[tmm_src1], B[tmm_src2] 均為 2D Tile
// 對於每對 (i, j):
C[i][j] += Σ_k (A[i][k] * B[k][j])
// k 的範圍 = 共享維度(inner dimension),由 Palette 定義
執行流水線
軟體流程:
1. LDTILECFG ← 配置 Tile 維度(載入 Palette)
2. TILELOADD ← 從記憶體/快取載入資料到 Tile 暫存器
3. TDPBF16PS ← Tile 矩陣乘累加(在 Tile ALU 上執行)
4. TILESTORED ← 將結果 Tile 寫回記憶體
5. TILERELEASE ← 釋放 Tile 暫存器
注: AMX 狀態需 OS 支援(XSAVE/XRSTOR 管理上下文切換)
軟體需通過 XGETBV + XSETBV 檢查/啟用 AMX feature flag
快取互動
TileLOADD / TILESTORED 通過 L1 資料快取進行載入/儲存,每個 Tile 暫存器 1KB 恰好對齊快取行(通常 64B,需 16 個 cache line 滿載一個 Tile)。這意味著 AMX 對 L1 頻寬有很強的依賴——GEMM 的效能受記憶體層次結構約束,這也是為什麼 AMX 在 CPU 上更偏向推論(小 batch、權重複用)而非大 batch 訓練。
技術演進史
| 時間 | 里程碑 | 意義 |
|---|---|---|
| 2020 | Intel 宣佈 AMX ISA 設計(IDF / Architecture Day) | 首次公開 Tile 架構概念 |
| 2023 Q1 | Sapphire Rapids(4th Gen Xeon Scalable)發貨 | AMX 首次商用落地,支援 BF16 + INT8 |
| 2023 | 各大架構逐步支援 AMX:oneDNN (Intel oneAPI)、PyTorch (via oneDNN backend)、ONNX Runtime | 軟體生態開始成熟 |
| 2024 | Granite Rapids(6th Gen Xeon Scalable / Xeon 6 系列)釋出 | 新增 FP16 支援(TDPFP16PS),效能提升 |
| 2024+ | Sierra Forest / Clearwater Forest(E-core Xeon) | 面向高密度/低功耗雲端場景,Sierra Forest 已支援 AMX,Clearwater Forest 計劃支援 |
演進趨勢:每代 Xeon 逐步擴充套件 AMX 支援的資料型別,縮小與 GPU Tensor Core 在精度靈活性上的差距。
技術路線對比
| 維度 | Intel AMX | Intel AVX-512 VNNI | NVIDIA Tensor Core | AMD XDNA NPU(Ryzen AI) |
|---|---|---|---|---|
| 載體 | Xeon CPU 內部 | Xeon / Core CPU 內部 | GPU SM 內部 | SoC 內獨立 NPU |
| 計算維度 | 2D Tile(矩陣) | 1D Vector(向量) | 2D Tensor Core(矩陣) | 2D Array(矩陣) |
| 支援精度 | BF16, INT8, FP16(GNR+) | INT8, INT16 | FP16, BF16, TF32, FP8, INT8 | INT8, BF16 等 |
| 峰值吞吐 | 受限於核心數×頻率,量級遠低於 GPU | 更低 | 極高(A100 ~312 TFLOPS BF16) | 較低(面向端側) |
| 程式設計模型 | ISA intrinsics / oneDNN | ISA intrinsics / MKL | CUDA / cuBLAS / TensorRT | Ryzen AI SDK |
| 優勢場景 | CPU serving、低批推論、延遲敏感 | 通用 SIMD | 大型模型訓練+高吞吐推論 | 端側低功耗推論 |
| 劣勢 | 峰值算力遠不如 GPU;生態成熟度有限 | 矩陣效率低 | 需獨立 GPU 硬體 | 僅限端側,算力有限 |
上下游
上游:編譯器與架構棧
┌─────────────────────────────────────────────────┐
│ Application Layer │
│ PyTorch / TensorFlow / ONNX Runtime / vLLM │
├─────────────────────────────────────────────────┤
│ AI Framework Backend │
│ oneDNN (oneAPI Deep Neural Network Library) │
│ → 核心排程層:自動將 GEMM 路由到 AMX kernel │
├─────────────────────────────────────────────────┤
│ Compiler / Runtime │
│ Intel oneAPI DPC++/C++ Compiler (ICX) │
│ GCC >= 12 / LLVM >= 15 (支援 AMX intrinsics) │
├─────────────────────────────────────────────────┤
│ OS Kernel │
│ Linux >= 5.16 / Windows Server 2022 │
│ 需支援 XSAVE 對 AMX state (XTILEDATA 等) 的管理 │
├─────────────────────────────────────────────────┤
│ Hardware │
│ Intel Sapphire Rapids / Granite Rapids Xeon │
└─────────────────────────────────────────────────┘
下游:部署場景
| 場景 | 使用方式 | 典型使用者 |
|---|---|---|
| 雲端端 LLM 推論 | vLLM / TGI + PyTorch oneDNN backend | 雲端服務商(AWS m7i/m8i 例項等) |
| 邊緣 AI 推論 | ONNX Runtime + AMX EP | 工業/零售邊緣伺服器 |
| 傳統 ML | scikit-learn / XGBoost 通過 oneDNN 加速 | 企業資料分析 |
| HPC 混合負載 | CPU 推論 + GPU 訓練異構 | 科研/模擬 |
關鍵指標
| 指標 | 說明 | 參考量級 |
|---|---|---|
| Tile 暫存器大小 | 每個 tmm 暫存器 | 1024 bytes(確定值) |
| Tile 暫存器數量 | 獨立 Tile 暫存器 | 8 個(tmm0–tmm7,確定值) |
| 支援資料型別(SPR) | Sapphire Rapids | BF16, INT8 |
| 支援資料型別(GNR) | Granite Rapids | BF16, INT8, FP16 |
| 每核每週期吞吐 | 單條 TDPBF16PS 指令 | 取決於 Tile 維度配置 [未充分揭露具體 FLOPs/cycle/核] |
| 系統級峰值 | 取決於 SKU 核心數與頻率 | 因 SKU 而異,需查具體 Xeon 型號 spec |
| L1 Cache 壓力 | 每次 TileLOADD 載入 1KB | 16 條快取行(假設 64B line) |
注:Intel 對 AMX 單核峰值吞吐的公開揭露較有限。多數效能資料以 benchmark 形式呈現(如 ResNet-50 推論吞吐、BERT 推論延遲等),而非原始 FLOPS。建議參考 Intel 官方 oneDNN benchmark 資料。
供需與市場資料
CPU 推論市場規模(定性)
- AI 推論市場整體高速增長,但 GPU 佔據絕大多數份額。
- CPU 推論佔比:在特定細分(小模型 serving、低延遲場景、對成本極敏感的部署)中,CPU 方案有一定份額,但整體市場佔比遠低於 GPU [行業共識]。
- Intel Xeon 在全球伺服器 CPU 市場佔主導份額(>70% [行業估算]),Sapphire Rapids 之後的 Xeon 均內建 AMX,意味著巨大的存量裝機基礎具備 AMX 能力。
驅動力
- TCO 最佳化:對特定推論負載,CPU 方案的總擁有成本(無 GPU 採購、無需 GPU 授權/驅動維護)可能更低。
- 可用性:GPU 供應鏈緊張時,CPU 推論是 fallback 選擇。
- 合規與安全:部分場景對硬體獨立加速器有安全疑慮,CPU 內建更可控。
代表公司與資本對映
| 公司 | 角色 | 與 AMX 關係 |
|---|---|---|
| Intel (INTC) | AMX 設計與製造方 | 直接標的,AMX 是 Xeon 差異化賣點之一 |
| AMD (AMD) | 競爭對手 | 通過 AVX-512 VNNI / 未來可能的類似擴充套件競爭;AMD 亦有 XDNA NPU(端側) |
| NVIDIA (NVDA) | 間接競爭 | GPU Tensor Core 在大型模型推論/訓練仍佔絕對優勢,AMX 僅在邊緣場景形成有限競爭 |
| Microsoft / Meta | 大規模 CPU 推論部署方 | Azure / Meta 資料中心大量使用 Xeon,是 AMX 的實際受益者 |
| Hugging Face / vLLM | 開源推論架構 | 支援 Intel CPU 推論後端,間接推動 AMX 生態 |
投資邏輯
看多 AMX 生態的邏輯
- 存量硬體紅利:Sapphire Rapids 起所有新款 Xeon 內建 AMX,隨著伺服器換代,AMX 能力普及率將持續上升。
- 小模型推論爆發:SLM(Small Language Model)趨勢下,7B 以下模型推論在 CPU 上即可勝任,AMX 直接受益。
- Intel 反攻敘事:如果 Intel 在 Granite Rapids / Clearwater Rapids 上恢復競爭力,AMX 作為關鍵差異化特性將獲得更多曝光。
- 邊緣 AI 增長:工業、零售、電信邊緣場景的 AI 推論需求增長,CPU-first 方案有天然優勢。
風險與侷限
- GPU 競爭力:NVIDIA Tensor Core 效能/生態遠超 AMX,大型模型趨勢對 AMX 不利。
- 軟體生態慣性:主流 AI 開發仍以 CUDA 為首選,AMX 適配程度取決於 Intel 投入。
- Intel 本身執行力:製程/產品路線圖不確定性影響 AMX 戰略地位。
常見誤讀糾偏
❌ 誤讀 1:“AMX 替代了 AVX-512”
糾偏:AMX 和 AVX-512 是互補關係,而非替代。AMX 專門處理 2D 矩陣乘法(Linear 層),而逐元素運算(softmax、activation、layernorm)仍需 AVX-512 或通用 ALU。兩者在執行埠層面有競爭(共享部分後端資源),但軟體排程得當時可以高效共存。實際上,一個完整的 Transformer 推論管線同時需要兩者。
❌ 誤讀 2:“有了 AMX,CPU 推論就能和 GPU 一較高下”
糾偏:AMX 顯著提升了 CPU 的矩陣運算吞吐,但峰值算力數量級差距仍然巨大。以 Sapphire Rapids 最高配置(60 核)的理論峰值與 NVIDIA H100 比較,GPU 在 BF16 吞吐上仍高出一個數量級以上。AMX 的競爭力在於:①低批推論延遲(無 GPU kernel launch / 資料傳輸開銷);②TCO 優勢(無需額外硬體);③小模型/量化模型場景。不要將 AMX 等同於 GPU Tensor Core 的替代品。
❌ 誤讀 3:“AMX 可以直接用於大型模型訓練”
糾偏:理論上 AMX 可執行 BF16 矩陣乘法,但大型模型訓練需要的是極高吞吐的分散式平行計算(涉及 AllReduce 通訊、大 batch、梯度累積、多 GPU NVLink 互聯),CPU 在頻寬、並行度、互連拓撲上完全不具備訓練競爭力。AMX 定位明確是推論加速,偶爾可輔助小規模 fine-tuning 或 LoRA 微調,但絕非訓練主力。
❌ 誤讀 4:“AMX 是 Intel 獨有的,其他 CPU 沒有類似技術”
糾偏:AMX 作為 Intel ISA 擴充套件確實是 Intel 專屬,但概念上類似的技術存在於其他平台:ARM 的 SME(Scalable Matrix Extension)、AMD 的潛在矩陣擴充套件路線(尚未明確釋出類似 Tile ISA)、以及各類 SoC 內嵌 NPU。方向是一致的:在 CPU 內增加原生矩陣運算能力。
學習路徑
入門(1–2 小時)
- 閱讀 Intel 官方 AMX 概述頁面(Intel Developer Zone - AMX)
- 理解 Tile 暫存器與 AVX ZMM 暫存器的區別
進階(1 天)
- 閱讀 Intel SDM Vol. 2 中 AMX 指令(TDPBF16PS、LDTILECFG 等)的虛擬碼
- 使用 oneDNN (oneAPI Deep Neural Network Library) 跑 AMX 後端 benchmark
- 對比同一 GEMM 在 AVX-512 vs AMX 上的吞吐差異
專家(持續)
- 閱讀 oneDNN AMX kernel 原始碼,理解 Tile 迴圈分塊(tiling)策略
- 研究 LLM 推論架構(vLLM / TGI)中 Intel CPU backend 的 GEMM 排程邏輯
- 追蹤 Intel Architecture Day / Hot Chips 中 AMX 相關 talk
一句話總結
AMX 是 Intel 在 Xeon CPU 內部植入的 2D Tile 矩陣乘法硬體引擎(8×1KB Tile 暫存器 + TDP 指令族),原生加速 BF16/INT8/FP16 GEMM,定位為中低規模 AI 推論場景下 CPU 對 GPU 的成本優勢方案,而非通用訓練加速替代品。
延伸閱讀與來源
| 來源 | 內容 | 型別 |
|---|---|---|
| Intel SDM (Software Developer’s Manual) Vol. 2, Chapter 3 “AMX” | AMX ISA 定義、指令編碼、Tile 暫存器語義 | 官方權威 |
| Intel Developer Zone — AMX | 概述文件、教程、程式碼示例 | 官方入門 |
| oneDNN (oneAPI Deep Neural Network Library) 文件 | AMX 後端實現細節、效能資料 | 架構參考 |
| Hot Chips 2022 — Intel Sapphire Rapids Microarchitecture | SPR 微架構中 AMX 執行單元的技術細節 | 技術演講 |
| Agner Fog 指令表 | AMX 指令延遲/吞吐 (需確認是否已收錄) | 社群參考 |
免責宣告:本頁技術規格基於公開 Intel 文件與架構知識整理。由於本次檢索未能成功獲取最新線上資料,部分具體數字(如每核峰值 TOPS、精確 Tile 維度配置選項)以定性或估算形式標註。建議以 Intel SDM 和官方 benchmark 為最終準繩。