⚙️ GPU Microarchitecture · Warp Scheduling · Streaming Multiprocessor

什么是 GPU 的 SM(流式多处理器)?

显卡算力的最底层独立执行工厂!看懂千个 CUDA 核心如何被编织成 100 多座自动化流水车间,为什么 32 个线程必须步伐一致绑定成 Warp,以及隐蔽内存延迟的终极秘籍

CPU 核心 (多能大学老教授)
👨‍🏫📚 几个全能大脑·极度擅长复杂分支

芯片面积大部分花在庞大的分支预测器(Branch Predictor)和巨额三级缓存上。拥有极高的单核主频(5 GHz+),擅长串行解决各种高难度、充满 if-else 逻辑的复杂事务,但总核心数通常只有 8~64 个,面对海量无脑乘法力不从心

❌ 核心数量少 (仅十几个并发) ❌ 线程切换开销昂贵 (上下文保存) ✅ 擅长复杂跳转分支与串行低延迟
VS
GPU 的 SM 流式多处理器 (工业做题车间)
🏭🧮 上百个全自动装配车间·万路军团

GPU 的基本算力细胞! 一张 H100 包含 132 个 SM,RTX 4090 包含 128 个 SM。每个 SM 就是一个独立的自动化流水线车间,内含 128 个 CUDA 核心、4 个 Tensor 核心、Warp 调度器、超高速共享内存与寄存器堆,专精“几万个数据同时做同一种乘法计算”!

✅ 单卡集成上百座 SM 独立工厂 ✅ 纳秒级零开销 Warp 线程切换 ⭐ SIMT 单指令多线程并行神技
💡

5岁核心顿悟:如果把整个 GPU 比作一座巨型工业园区,SM 是什么?

GPU 是一座拥有 100 多间独立车间的超级汽车制造厂 🏭🏢
• 整个显卡叫 GPU,显存(VRAM)是厂区外的大仓库;
• 而 SM(Streaming Multiprocessor,流式多处理器)就是里面的‘一个个独立装配车间’
车间内部的分工极度严密 🪖🤖
• 车间主任叫 Warp 调度器;工人们是 32 人一个排的 Warp 线程束,步调绝对一致(执行同一条指令);
• 车间里有普通拧螺丝的 CUDA 核心 (ALU),有专攻重型矩阵冲压的 Tensor Core,还有放在工位手边、抓取只要 1 纳秒的 共享内存 (Shared Memory) 与寄存器
• 一旦一组工人等仓库送零件(内存延迟),主任在 1 纳秒内瞬间切换 另一组工人上手,车间机器一秒钟都不停转!

SM 流式多处理器内部四大核心支柱

从 SIMT 架构、零开销调度到硬件级片上内存层次

🪖

1. Warp(线程束)与 SIMT 架构

GPU 从来不单管一个线程!SM 硬件把 32 个线程捆绑为一个 Warp。同一时刻广播一条机器指令,32 个核心同时执行不同的数据(Single Instruction, Multiple Threads)。

2. 零开销 Warp 调度 (Latency Hiding)

CPU 换线程要存盘读盘浪费几百时钟周期;SM 的寄存器大到能把几千个线程的状态全部常驻!Warp A 遇到内存读取延迟,调度器在下一个时钟周期瞬间切到 Warp B,实现无缝隐藏延迟!

🚀

3. 超级片上存储:SRAM 寄存器与共享内存

每个 SM 拥有高达 256 KB 物理寄存器堆128~228 KB 的 Shared Memory/L1 缓存,带宽超过数十 TB/s,比外面的显存快 20 倍以上,是大模型 FlashAttention 算子提速的核心秘密。

📊 旗舰显卡 SM 硬件内脏拆解

以 NVIDIA Hopper H100 与 Ada RTX 4090 单颗 SM 为例:

单 SM CUDA 核心数
128 核心
分 4 个处理子块 (Sub-core)
单 SM Tensor 核心数
4 核心
第 4 代 Tensor Core (FP8/Transformer Engine)
单 SM 共享内存/L1
228 KB
H100 架构 · 支持异步事务内存传输 (TMA)
整卡 SM 阵列总数
132 / 128 SM
成百座车间并排开工输出算力风暴

🎮 交互模拟器:推演 SM 车间在不同 CUDA 代码下的运行流水线

点击查看不同编程写法在 SM 车间内部引起的性能变化与瓶颈分析: