L1.1 单卡异构芯片微架构深挖
三维坐标
layer: L1(计算编排)|level: Senior|pillar: 硬件架构本文是 L1 计算层的开篇。目标是把一块加速芯片拆到能跑指令的最小执行单元——理解 GPU 的 SM 如何用 warp 调度掩盖延迟、Tensor Core 如何把低精度变成吞吐倍数、昇腾如何用三类异构单元做指令级异步流水。读完你应当能回答:「为什么同一段
matmul,换个 dtype 吞吐能翻一倍」。
学习目标
- 前置知识:读过 L0 全层(尤其 L0.2 三 大物理墙:知道算力墙/显存墙、Roofline 拐点);写过基础 Python;知道「GPU 比 CPU 适合并行」即可。无需 CUDA 编程经验。
- 学完产出:① 能画出一个 SM 的内部结构(Warp Scheduler / CUDA Core / Tensor Core / 寄存器堆 / Shared Memory),并说清各自职责与约束;② 能用「延迟掩盖 + 高 occupancy」一句话讲清 GPU 为什么靠 warp 调度而非降低单指令延迟取胜,并解释寄存器用太多反而变慢的反直觉现象;③ 能说清 Tensor Core「精度换吞吐」的硬件根因,区分 FP8 的 E4M3/E5M2 用途;④ 能对比 GPU 的「隐式 SIMT 延迟掩盖」与昇腾 DSA 的「显式流水编排」两种延迟工程哲学,理解它如何决定异构移植成本;⑤ 亲手跑一个 micro-benchmark,量化同一个 GEMM 在 CUDA Core 与 Tensor Core 上的吞吐倍数。
- 阅读姿势:盯住一条主线——「AI 芯片的所有微架构设计,都是为了让算术单元永远有活干」。无论是 GPU 的海量 warp,还是昇腾的三单元异步流水,本质都在解决同一个问题:用并行/流水掩盖「数据搬运比计算慢得多」这堵物理墙。
背景与现状
异构芯片微架构(Heterogeneous Chip Microarchitecture) 的核心命题只有一个:用最小的硅面积和功耗,喂饱尽可能多的乘加运算(MAC)。CPU 把晶体管堆在分支预测、乱序执行、巨大缓存上以优化「单线程延迟」;而 AI 加速芯片走的是相反路线——把晶体管砸在海量算术单元 + 高带宽片上存储上,以「吞吐」为唯一信仰,用大规模并行去掩盖单条指令的延迟。
从产业视角看,单卡微架构的演进可以概括为三个台阶:
- 通用并行时代(~2016 前):以 CUDA Core 为主力,标量/向量 FMA(Fused Multiply-Add)逐元素算。GEMM(通用矩阵乘)受限于寄存器与访存,算力利用率长期在 30%~50%。
- 张量加速时代(2017 起):NVIDIA Volta 引入 Tensor Core,把「4×4 矩阵块乘加」做成单条硬件指令(MMA / WGMMA),低精度 GEMM 吞吐相比 CUDA Core 提升一个数量级。这是大模型训练能「跑得起」的硬件前提。
- 专用数据流时代(2019 起):华为昇腾以 达芬奇(Da Vinci)架构 为代表的 DSA(Domain-Specific Architecture,领域专用架构),把矩阵、向量、标量做成物理隔离的三类单元,靠指令级异步流水榨干每一个时钟周期。Google TPU 的脉动阵列(systolic array)是同一思想的另一条路径。
- 极低精度 + 机柜即芯片时代(2025–2026):FP4 进入硬件主流——NVIDIA Blackwell(NVFP4)、Blackwell Ultra(GB300,2025 H2 量产)与 AMD MI350/MI355X(CDNA4,原生 FP4/FP6)把推理低精度做成标配;同时「单卡」的边界被进一步打破,机柜级 scale-up 域(GB300 NVL72、华为 CloudMatrix CM384、AMD Helios)成为新的「逻辑单芯片」。NVIDIA Rubin(VR200,HBM4 + NVLink 6 + Vera CPU) 已在 GTC 2025 公布路线,规划 2026 H2 量产。
业界信号(截至 2026 年中):H100 单卡 FP16 稠密约 990 TFLOPS、FP8 稠密约 1979 TFLOPS(稀疏可再翻倍至 ~3958),而其 FP32 CUDA Core 仅约 67 TFLOPS——近一个数量级的差距全部来自专用单元 + 低精度。到 Blackwell Ultra(GB300)这一代,单 GPU 已携 288GB HBM3e、密集 FP4 推理迈入 ~15 PFLOPS 级;而即将到来的 Rubin 平台官方宣称单机柜(Vera Rubin NVL144)FP4 推理达 EFLOPS(每秒百亿亿次)级。「读懂 Tensor Core / 低精度数据流」依旧是 L1 工程师的入场券,只是标尺每年都在往上跳。
原理与架构
理解单卡微架构,最有效的方式是从 GPU 的最小执行集群 SM(Streaming Multiprocessor,流式多处理器)开始,再横向对比昇腾的 DSA 路线。
2.1 NVIDIA GPU:SM 内部结构
一颗 H100 GPU(GH100)由 132 个 SM 组成;每个 SM 是一个相对独立的「微型并行处理器」,内部划分为 4 个 处理块(Processing Block / SM Sub-Partition),每块各有一个 Warp Scheduler。下图是单个 SM 的内部解剖:
逐组件读这张图:
| 组件 | 职责 | 关键约束 |
|---|---|---|
| Warp Scheduler | 每周期挑选一个就绪 warp,向执行单元发射指令 | 调度的是「warp」而非单线程,是 latency hiding 的引擎 |
| CUDA Core | 标量/向量 FMA,处理 FP32/INT32/FP64 | 逐元素算,GEMM 吞吐低 |
| Tensor Core | 一条指令完成一个矩阵块的乘加累加 | 低精度专用,吞吐是 CUDA Core 的 8~16 倍 |
| 寄存器堆(Register File) | 每 SM 共 64K × 32-bit,线程私有 | 寄存器用太多 → occupancy(占用率)下降 |
| Shared Memory / L1 | SM 内 SRAM,软件可控的暂存区 | Hopper 上与 L1 共 256 KB,可配置切分 |
2.2 Warp 调度:32 线程 SIMT 与延迟掩盖
GPU 的执行模型是 SIMT(Single Instruction, Multiple Threads,单指令多线程)。硬件把线程以 32 个为一组打包成一个 warp,同一个 warp 内的 32 个线程锁步执行同一条指令,只是各自操作不同的数据。
为什么是 warp 而不是单线程?答案是 延迟掩盖(latency hiding):
核心机制:当 Warp 0 因访存阻塞(HBM 延迟可达数百时钟周期)时,调度器零开销地切换到其他就绪 warp 继续发射指令。只要 SM 上「常驻的 warp 足够多」(高 occupancy),访存延迟就被计算完全掩盖——GPU 不靠降低单条指令延迟取胜,而靠永远有活干。这也解释了一个反直觉现象:寄存器/shared memory 用得太多会限制常驻 warp 数,反而因延迟暴露而变慢。
要点在于:SIMT 的代价是 warp divergence(线程束分歧)。若一个 warp 内 32 个线程走进不同的
if/else分支,硬件只能