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 为最终准绳。