指令集架构
3 秒看懂
指令集架构(ISA)是软件与硬件之间的“契约”,定义了处理器能直接理解和执行的操作、数据格式、寄存器及内存访问方式。在智能计算时代,ISA 决定了 AI 芯片能否高效运行矩阵乘法、稀疏计算与量化推理,是连接上层框架与底层晶体管的核心枢纽。
3 分钟产业解释
如果把芯片比作一个国家,ISA 就是它的官方语言。x86、ARM、RISC‑V、NVIDIA PTX 是不同的“语系”,每一种都有独特的“词汇”(指令)和“语法”(编码格式)。AI 训练与推理极度依赖大维度矩阵运算,通用 ISA 逐渐暴露出效率瓶颈,于是各大体系竞相引入专用扩展——Intel 增加 AMX 矩阵单元,ARM 推出 SME 流式矩阵扩展,NVIDIA 在 CUDA 之下暴露 via PTX 的 Tensor Core 操作,RISC‑V 则通过向量 V 扩展及自定义 op 来迎合 AI。
选择 ISA 既要看单位能耗吞吐的 FLOPS,也要看软件生态:PyTorch/TensorFlow 的一层卷积能否直接编译为那条矩阵乘积累加指令。当前 AI 芯片 ISA 正从“一枝独秀”走向“开放融合”,RISC‑V 的迅猛生长、Arm v9 的可扩展矩阵支持,以及 x86 在服务器端的累积优化,构成了多层次竞争。产业深处,ISA 的设计与编译器、算子库、运行时紧密咬合,牵一发而动全身。
15 分钟专家深入
ISA 分层与 AI 加速的关系
微架构(具体硬件实现,现代 x86 内部包含微码/微操作机制,用于将复杂指令拆解为多条类 RISC 操作)处于底层,再往上才是对程序员可见的 ISA。AI 加速的本质,是将高维张量运算映射为尽可能少的、宽位宽的指令。按数据并行度,ISA 可划分为:
- 标量指令(每指令处理一个数据)
- 向量指令(SIMD,一条指令处理多个同构数据,如 AVX‑512、ARM SVE)
- 矩阵指令(一条指令启动二维分块乘法,如 Intel AMX、ARM SME、NVIDIA wmma)
- 空间阵列指令(类似脉动阵列的控制字,如 Google TPU 的 CISC 指令集)
当前 AI 训练/推理的核心计算是 GEMM(通用矩阵乘),单精度或半精度浮点,甚至 INT8。单条矩阵乘加指令可以将多层循环压缩到一条指令的硬件调度中,极大减少取指、译码和寄存器bank访问能耗。
AI 落地中的 ISA 设计权衡
- 寄存器数量与宽度:向量寄存器越多,编译器越容易分配,减少数据溢出;宽度(如 128→256→512 位)决定每个时钟周期能塞入多少个乘加操作。
- 数据类型覆盖:bfloat16、FP8、INT4 等格式直接对应指令,避免复杂的软件转置。
- 灵活度 vs. 峰值性能:灵活的可编程向量 ISA 可以适配各种算子,但能效往往不如为特定网络定制的脉动阵列“硬连线”,后者通过少量控制指令驱动片上网络,牺牲通用性换取极致能效(见图 1)。
[软件层] PyTorch / TensorFlow
↓ 算子库
[编译层] MLIR / TVM / LLVM → 虚拟 IR → 目标 ISA
↓
[ISA 层] x86-AMX | ARM-SME | RISC-V "V" | PTX/Tensor Core
↓ 译码
[微架构] 向量流水线 / 脉动阵列 / GPU SM
编译器与 ISA 的共生
没有优秀的编译器支持,再强大的 ISA 也只是空中楼阁。TVM 采用 HalideIR 分离算法与调度,自动生成各种后端 ISA 的代码;MLIR 则在 TensorFlow/Ecosystem 中构建多层抽象,逐步降低到特定 ISA。许多 AI 芯片公司选择基于 LLVM 开发私有编译器,将自定义矩阵指令映射到 LLVM 内部表示,同时向上提供标准的 TFLite/ONNX 算子接口,以此降低用户迁移成本。
典型指令的运行流水
假设一条 vmatmul.f16 acc, src1, src2 矩阵乘法指令,其流水大致为:
- 取指、译码,识别为矩阵乘融合操作。
- 从矩阵寄存器文件读取 16×16 的分块(或从向量寄存器组合)。
- 塞入脉动阵列或乘加树,在多个周期内完成 16×16×K 的部分积累。
- 将结果写回累加寄存器,可能自动再激活下一块数据的取指(某些架构支持矩阵指令链)。
在这样的流水里,解耦的访存、计算与数据重排至关重要,许多 AI 专用 ISA 设计了软件控制的 scratchpad 寻址模式,以减少 cache 冲突。
技术原理(最深层)
指令编码:把 “C = A × B” 映射为机器指令
一条典型的矩阵操作指令必须携带足够信息:操作类型(MUL/ADD/FMA)、输入/输出寄存器、数据格式、分块形状、甚至内存缓存提示。例如,Intel AMX 通过 tile 配置指令(LDTILECFG)预先设置 tile 的形状和数据类型,然后用 TDPBF16PS 这样的指令触发 tile 间的 bfloat16 乘加。其编码在 x86 前缀域内嵌入 tile 编号与寻址模式,复用 vEX/EVEX 编码风格。
寄存器堆的革新
传统标量 ISA 只有少数通用寄存器;SIMD ISA 增加独立的向量寄存器组(如 x86 的 YMM/ZMM)。矩阵 ISA 进一步引入二维 tile 寄存器:每个 tile 可以容纳 16 行 × 64 字节的数据,由硬件管理其跨步访问。这种寄存器被看作一种软件管理的缓存,程序员必须显式地将内存数据载入 tile (TILELOAD)、运算、再存回 (TILESTORE)。图 2 展示了一个 tile 寄存器与内存矩阵的映射关系。
内存矩阵 (M×K) tile 寄存器 (16×K)
┌─────────────┐ ┌────────────────────┐
│ a₀₀ a₀₁ ... │ TILELOAD │ a₀₀ a₀₁ ... a₀ₖ │
│ a₁₀ a₁₁ ... │ ─────────→ │ a₁₀ a₁₁ ... a₁ₖ │
│ ... │ │ ... │
└─────────────┘ └────────────────────┘
矩阵乘法的指令级分解
对于不支持矩阵指令的向量 ISA,一个 16×16 的 fp16 矩阵乘需要将外层循环全部展开为向量乘加。典型的外积累加策略为:
- 将 A 矩阵中的一个标量元素广播至向量寄存器的所有通道。
- 使用
vfmadd将该广播值与 B 矩阵的一整行做逐元素乘加,结果累加到 C 矩阵的对应行。 - 重复上述过程覆盖 16×16 的二维组合,共需约 256 条向量乘加指令,外加地址更新与循环分支。
一旦转向矩阵指令,所有内部循环被一条指令吞并,仅保留外层 tile 滑窗的逻辑,指令流简短且控制开销锐减。这既降低了前端压力,也允许硬件专注于数据流调度,显著提高能效。
与微架构的交互
先进的矩阵 ISA 通常要求微架构支持:
- 硬件脉动阵列(如 Google TPUv1)或混合式乘加树(如 NVIDIA Tensor Core)。
- 交错的主存/scratchpad 数据通路,常采用 2D 转置单元避免内存跨步。
- 灵活的分块大小配置,匹配不同层次的存内计算。
因此,ISA 并非独立存在,它必须与芯片内部的 mesh 网络、缓存层次、算术单元三者协同设计。
技术演进史
- 1970s–1990s:CISC 与 RISC 之争,确立 ISA 基础。x86 由 8086 演进;MIPS、SPARC、ARM 各自定义精简指令,彼时与 AI 无关。
- 1990s–2000s:多媒体扩展兴起:MMX、SSE、3DNow!,引入 SIMD 概念,初步支持并行处理。
- 2000s–2015:GPU 称霸 AI 训练。NVIDIA 推出 CUDA,底层 PTX ISA 统一各种 SM,采用 SIMT 模型,虽非传统 ISA,但实质是面向海量线程的虚拟指令集。
- 2015–2020:专用 AI 芯片 ISA 诞生。Google TPU 采用 CISC 风格指令驱动脉动阵列(v1 限定推理);Intel 将 AVX‑512 和 VNNI 引入服务器;ARM 发布 SVE 可伸缩向量扩展。
- 2020–至今:矩阵 ISA 全面爆发。Intel 在 Sapphire Rapids 中加入 AMX;ARM v9 带来 SME;RISC‑V 向量 V 扩展 1.0 获批,多家公司自定义矩阵 op;NVIDIA 连续强化 Tensor Core 的 PTX 指令(wmma / mma)。ISA 争夺转变为软件栈和生态之争。
技术路线对比(量化表)
| 维度 | x86‑AMX | ARM SME | NVIDIA PTX+TensorCore | RISC‑V Vector + 自定义 | Google TPU 专用 |
|---|---|---|---|---|---|
| 架构类型 | 混合(标量+向量+矩阵) | 混合(标量+向量+矩阵) | SIMT + 矩阵加速单元 | 纯向量/可扩展自定义 | 脉动阵列控制指令 |
| 典型数据位宽 | Tile 16×32 BF16 (16行×64字节) | 流式矩阵寄存器 ZA(SVL×SVL,大小可变) | 线程级 warp 内矩阵分块 | 取决于 vlen(可至 2048 位) | 控制字驱动大规模脉动阵列(如 256×256 MAC) |
| 可编程灵活性 | 高(在 x86 生态内部) | 高(与 ARM 软件栈集成) | 中高(需要 CUDA/PTX 层级) | 极高(可自由扩展) | 中等(支持 CNN、MLP、RNN、Transformer 等训练与推理) |
| 能效(每瓦 TFLOPS) | 中(服务器级) | 中高(移动端优化) | 中(GPU 功耗大) | 视设计而定,潜力高 | 极高(专用设计) |
| 软件生态成熟度 | 强(PyTorch/ONNX 原生) | 较强(Android/Linux 生态) | 最强(AI 框架第一公民) | 发展中(LLVM 支持,生态初具) | 封闭(支持TensorFlow、PyTorch/XLA、JAX等框架) |
| 典型应用场景 | 云端推理/训练 | 边缘推理、移动端 | 云端训练至高/高性能推理 | 嵌入式 AI、定制加速 | 谷歌数据中心训练与推理(已升级至 v4) |
注:具体性能数值受制程、频率、存储影响,不属于 ISA 固有属性,此处仅作模式对比。
上下游
- 上游:
- 知识产权与标准:ARM(Cortex/X 系列 ISA 许可)、RISC‑V 国际基金会(开源 ISA 规范)、Intel/AMD(x86 标准交叉授权)。
- EDA/IP 工具:Cadence、Synopsys 提供 ISA 仿真模型与验证工具;Andes、SiFive 等供应 RISC‑V 处理器 IP 核。
- 中游:
- 芯片设计:NVIDIA、Google(自研 TPU ISA)、Apple(自研 ARM 兼容+M 系列 NPU 指令)、大量 AI 初创公司(Graphcore、寒武纪等)自定义 ISA。
- 编译器与中间件:LLVM 社区、TVM、MLIR、NVIDIA nvcc、Intel oneAPI DPC++、ARM ACL。
- 下游:
- AI 框架:TensorFlow、PyTorch、JAX 的算子库与 kernel 编译器。
- 终端应用:云服务器、智能手机、自动驾驶、IoT 设备。
关键指标
- 指令计算密度:每条指令完成的 FLOP 数(如矩阵指令可单条完成 512~4096 FLOP)。
- 指令吞吐率:每时钟周期可发射的向量/矩阵指令数,受限于译码宽度和功能单元数量。
- 单位运算能耗:pJ/FLOP 级别,尤其关注保持寄存器读写的功耗占比。
- 代码密度:相同运算所需的指令字节数,影响 I‑cache 命中率。矩阵指令能极大幅度提高密度。
- 生态绑定度:该 ISA 是否被主流框架一键支持,迁移成本高不高。
- 扩展性:是否允许用户自定义域专用指令,RISC‑V 在这方面优势明显。
供需与市场数据
(由于搜索受限,以下用定性阐述,部分数据据行业共识估算)
- 需求端:AI 训练/推理芯片市场年复合增长超过 30%,推动对高效矩阵/向量 ISA 的强劲需求。边缘端偏好低功耗 ARM 或 RISC‑V 搭配半精度/INT8 指令;云端则看重高吞吐 x86/GPU 及专用 ISA。
- 供给端:
- x86 系列仍占据数据中心 AI 推理约 40% 的存量份额(估算),主要透过 AMX 与 AVX‑512 在 Xeon 上实现。
- ARM v8/v9 构建了从 Cortex‑A 到 Neoverse 的全线 ISA,边缘推理设备中份额超 60%。
- RISC‑V 处理器 IP 核出货量预计 2023‑2025 年 CAGR 超 50%,大量用于 AIoT 加速器。
- 专用 ISA(如 NVIDIA PTX+TensorCore)在训练市场拥有事实上的统治地位,但存在依赖单一供应商的风险,催生对开放 ISA 的诉求。
整体上,ISA 不存在普遍的短缺,但优秀矩阵扩展的成熟编译器支持是稀缺资源。
代表公司与资本映射
- Intel:x86 ISA 的守成者,凭借 AMX 巩固服务器 AI 推理地位;同时推出 oneAPI 统一编程模型,尝试解耦 ISA 锁定。
- AMD:基于 x86 的锐龙 EPYC 增加 AVX‑512,与 Xilinx 的 AIE 指令配合,形成异构 ISA 融合。
- NVIDIA:虽然不对外授权 ISA,但其 PTX 与 SASS(底层硬件指令)的迭代速度决定了 GPU AI 算力的领先周期。
- ARM:凭借 v9 架构的 SME 和可伸缩向量,正从移动向服务器、AI 渗透,生态合作为高通、亚马逊等提供基础。
- SiFive/Andes:RISC‑V 处理器 IP 供应商,推出预集成向量 V 扩展的 AI 核,吸引中小芯片设计公司。
- 上市公司映射:手握自主 ISA 且有软件护城河的企业(Intel、AMD、NVIDIA);RISC‑V 产业链成长型标的(SiFive 尚未上市,但相关芯片设计服务公司受益);EDA 与编译器服务商(Cadence/Synopsys/新思)间接获利。
投资逻辑
- 生态黏性与转换成本:ISA 的软件栈已投入海量优化,迁移至全新 ISA 需重写 kernel 库,成本极高。因此,生态成熟度 > 纸面 FLOPS,投资要关注 AI 框架官方支持度。
- 开放 ISA 的历史性机遇:RISC‑V 使中小公司可低成本定制 AI 加速指令,催生百家争鸣。但成败取决于能否构建起涵盖编译器、算子库、部署工具的一整套“软 ISA”。密切关注 LLVM/MLIR 上 RISC‑V 后端的发展,以及头部 RISC‑V AI 芯片的 tapeout 节奏。
- 矩阵扩展的军备竞赛:每当一家公司推出新的 FP8 或稀疏矩阵指令,就会拉动一轮框架升级和客户采购。拥有抢先定义行业事实标准矩阵指令能力的公司(如 NVIDIA 的 mma,ARM 的 SME)将攫取溢价。
- 地缘政治维度:x86 与 ARM 的授权受限促使中国等地大力扶持自有 ISA(如龙芯 LoongArch,玄铁系列基于 RISC‑V),这为国内 IP 和芯片公司带来结构性资本流入,但软件生态建设极为漫长,短期业绩存在泡沫风险。
常见误读纠偏
误读 1:“ISA 是 CISC 的就慢,是 RISC 的就快”
现代处理器早已淡化 CISC/RISC 的速度分野。x86 前端将复杂指令分解为类 RISC 的微操作,执行引擎本质也是 RISC 流水线。AI 性能更多取决于向量/矩阵单元宽度与编译器优化,而非 ISA 表面的“精简”或“复杂”标签。
误读 2:“有了强大的矩阵指令,AI 芯片就不需要微架构创新”
矩阵指令只是接口,其性能释放极度依赖微架构:能否在一个周期内读出足够的矩阵分块、能否无缝连接多级缓存/存储、能否支持稀疏掩模等。ISA 和微架构同等关键,硬件必须为指令提供匹配的执行资源。
误读 3:“RISC‑V 指令免费,所以用 RISC‑V 做 AI 芯片成本几乎为零”
ISA 规范本身免费,但实现高质量 RISC‑V 处理器(超标量、向量、矩阵单元)的 IP 仍需付费授权(如 SiFive 商业核)。更关键的是,适配 PyTorch 等框架的软件投资不菲,这些隐性成本远超 ISA 许可费。
误读 4:“Tensor Core 是一条指令”
Tensor Core 是硬件单元,可通过 PTX 的 wmma(warp‑level matrix multiply‑accumulate)或 mma 指令来调度,但程序员看到的是 warp 内协同操作,与传统单指令流含义不完全一样。严格来说,它是多线程并行执行的矩阵运算原语,依赖于 CUDA 编程模型。
学习路径
- 基础入门:阅读《计算机体系结构:量化研究方法》(Hennessy & Patterson)中指令集原理章节,理解操作码、寻址方式、流水线基础。
- 向量与矩阵 ISA:研读 ARM SVE/SVE2 及 SME 技术手册,以及 Intel® 64 and IA-32 Architectures Software Developer Manuals 中 AMX 说明。
- GPU ISA 精髓:学习 NVIDIA PTX ISA 规范,结合 cuda-samples 中的 wmma 示例,体会 SIMT 下的矩阵运算。
- 开放 ISA 实践:跟随 RISC‑V Vector 1.0 标准文档,在 QEMU/Spike 模拟器上写向量代码;尝试用 LLVM 后端生成自定义 RISC‑V 指令。
- 编译器链条:学习 MLIR 的 Toy 教程,认识如何从高层 Tensor 算子逐层降低到 ISA;也可上手 TVM 的自定义后端注册。
- 前沿动态:关注 Hot Chips、ISCA 等顶会关于 AI ISA 的论文,跟踪 ARM、RISC‑V 基金会的技术博客。
一句话总结
指令集架构是 AI 芯片的“DNA”,它既抽象了千差万别的硬件实现,又定义了软件栈的效率上限;在开放与专用、灵活与极效的永恒张力中,ISA 的进化将持续重塑智能计算的终局。
延伸阅读与来源
- Hennessy J L, Patterson D A. Computer Architecture: A Quantitative Approach (第 6 版). 附录 A‑I 关于向量、SIMD 和域特定架构的讨论。
- ARM 官网公开文档:《Arm Architecture Reference Manual for A‑profile architecture》中 SVE/SME 章节。
- Intel 软件开发手册 (
Intel® 64 and IA-32 Architectures Software Developer’s Manual) Volume 1‑3,第 4 卷涉及 AMX 指令。 - NVIDIA PTX ISA 规范最新版 (
docs.nvidia.com/cuda/parallel-thread-execution/),wmma 与 mma 指令描述。 - RISC‑V 基金会向量扩展规范:“RISC‑V “V” Vector Extension Version 1.0”。
- 李沐等:《动手学深度学习》附录部分对 GPU 计算与底层指令的讲解。
(注:以上来源基于行业公开文档,因检索异常未直接抓取链接,但均可从官方渠道获取。)