当前位置: 首页 > news >正文

AI Infra 硬件体系与编程模型:3. GPU 流处理器解析

AI Infra 学习必知:GPU 流处理器(SM)深度解析与核心要点

作为一名 AI Infra 工程师,如果你只能深入理解一个 GPU 硬件概念,那一定是流多处理器(Streaming Multiprocessor, SM)。它是 GPU 的"心脏"和基本计算单元,决定了 GPU 的并行能力上限,也是所有 AI 训练和推理性能优化的最终落脚点。

不理解 SM,你就无法真正解释为什么同样的 FLOPS 不同 GPU 实际性能差异巨大,为什么有些算子跑不满 GPU,为什么混合精度训练能带来数倍加速,更不用说进行底层的 kernel 优化和大模型性能调优了。

一、从宏观到微观:GPU 架构的层级结构

在深入 SM 之前,我们先建立一个清晰的 GPU 整体架构认知。现代 GPU 采用严格的分层设计,从大到小依次是:

GPU 芯片 ├── 图形处理集群(GPC) │ ├── 纹理处理集群(TPC) │ │ └── 流多处理器(SM)← 我们今天的主角 │ │ ├── 计算核心(CUDA Core/Tensor Core) │ │ ├── 调度单元(Warp Scheduler) │ │ └── 存储单元(寄存器/共享内存/L1缓存) ├── L2 缓存 └── HBM 显存控制器

核心认知:GPU 不是一个单一的处理器,而是由数十到上百个独立的 SM 组成的"计算集群"。每个 SM 都是一个功能完备的"迷你处理器",拥有自己的计算、调度和存储资源,能够独立执行线程块,如下图所示。

以当前主流的数据中心 GPU 为例:

  • NVIDIA A100:108 个 SM
  • NVIDIA H100:144 个 SM
  • NVIDIA B100:160 个 SM

SM 数量直接决定了 GPU 的理论峰值算力。例如,H100 的 FP16 峰值算力 = 144 SM × 4 Tensor Core/SM × 256 FMA/周期 × 1.83 GHz ≈ 335 TFLOPS。

二、SM 的"解剖学":内部组件详解

一个现代的 SM(以 Hopper H100 为例)是一个高度复杂的单元,集成了执行计算、调度和存储所需的一切。根据下图,我们可以将其分为三大核心模块:

2.1 执行核心:真正干活的"劳动者"

这是 SM 内部执行数学运算的硬件单元,也是 AI 算力的直接来源。

核心类型主要功能AI 工作负载中的作用
FP32 CUDA Core32位单精度浮点运算传统科学计算、部分算子的通用计算
INT32 Core32位整数运算地址计算、循环计数、量化推理
FP64 Core64位双精度浮点运算高精度科学计算(AI 中很少使用)
Tensor Core硬件化矩阵乘加(GEMM)AI 训练和推理的绝对主力
SFU(特殊功能单元)超越函数(sin/cos/exp等)激活函数计算

关键区别:CUDA Core 一次只能执行一个标量运算(a×b+c),而 Tensor Core 一次能执行一个完整的矩阵乘加运算(D=A×B+C)。对于 AI 中无处不在的矩阵乘法,Tensor Core 能提供比 CUDA Core 高 10-20 倍的性能。

2.2 调度单元:让核心不闲着的"管理者"

SM 的高效运行离不开强大的调度系统。现代 SM 通常包含多个 Warp 调度器和分发单元:

  • Warp 调度器:负责管理和调度 Warp(32 个线程的组)的执行
  • 分发单元:将指令分发给对应的计算核心
  • 指令缓存:存储 SM 要执行的指令

核心机制延迟隐藏。当一个 Warp 因为等待数据从显存返回而暂停时,Warp 调度器不会等待,而是立即切换到另一个准备就绪的 Warp 执行。这种硬件级的线程切换几乎没有开销,是 GPU 实现高吞吐量的关键。

2.3 存储单元:靠近计算的"数据仓库"

SM 内部集成了多级高速存储,以减少对外部慢速显存的访问。速度从快到慢依次是:

  1. 寄存器文件:GPU 上最快的存储,每个 SM 拥有巨大的寄存器文件(H100 每个 SM 有 256 KB)。寄存器被动态分配给活跃线程,用于存放临时变量。
  2. 共享内存:程序员可控的片上存储,线程块内的所有线程可以共享访问。H100 每个 SM 最多可配置 228 KB 共享内存。
  3. L1 缓存:自动管理的高速缓存,用于缓存频繁访问的数据和指令。

重要比例:在 AI 工作负载中,内存访问往往是性能瓶颈,而不是计算。因此,如何高效利用 SM 内部的高速存储,是性能优化的核心。

三、SM 的核心工作原理:SIMT 执行模型

GPU 采用单指令多线程(Single Instruction, Multiple Threads, SIMT)执行模型,这是它与 CPU 最根本的区别。

3.1 什么是 SIMT?

比喻:想象一个工厂车间(SM),里面有 32 个工人(CUDA Core)。车间主任(Warp 调度器)喊一声"把手上两个数相乘",32 个工人同时执行这同一条指令,但每个人算不同的数。

核心特点

  • 一条指令同时驱动 32 个线程(一个 Warp)
  • 所有线程必须步调一致,执行相同的指令
  • 如果线程出现分支(if-else),不同分支的线程会被串行执行,效率暴跌

3.2 线程的层级结构

CUDA 编程模型将线程组织成三级结构:

  • Grid:一个 Kernel 启动的所有线程的集合
  • Block(线程块):Grid 被划分为多个线程块,每个线程块被分配到一个 SM 上执行
  • Warp:线程块被进一步划分为多个 Warp,每个 Warp 包含 32 个线程,是 SM 调度的基本单位

关键规则

  • 一个线程块一旦被分配到某个 SM,就会一直在该 SM 上执行直到完成
  • 一个 SM 可以同时驻留多个线程块(H100 每个 SM 最多可驻留 32 个线程块)
  • 一个 SM 可以同时管理数千个线程,但同一时刻只有少数几个 Warp 在执行

3.3 延迟隐藏的工作过程

  1. Warp A 执行一条加载指令,需要从全局显存获取数据(延迟约 400-800 个时钟周期)
  2. Warp 调度器立即切换到 Warp B,执行它的指令
  3. 当 Warp B 也遇到长延迟操作时,再切换到 Warp C
  4. 当 Warp A 的数据到达时,它重新进入就绪队列,等待调度

结论:GPU 通过"用并行性换延迟"的方式实现高吞吐量。要让 GPU 跑满,必须提供足够多的并行线程来隐藏各种延迟。

四、Tensor Core:AI 时代 SM 的"心脏"

如果说 SM 是 GPU 的心脏,那么 Tensor Core 就是 SM 的心脏。自 Volta 架构引入以来,Tensor Core 已经成为 AI 算力的绝对主导者。

4.1 Tensor Core 是什么?

Tensor Core 是一种硬件化的矩阵乘加(MMA)单元。它不是执行单一的加法或乘法,而是一次性完成一个完整的矩阵乘法运算。

基本操作:D = A × B + C

  • A 和 B 是输入矩阵
  • C 是累加矩阵
  • D 是输出矩阵

4.2 Tensor Core 的性能优势

以 H100 的第四代 Tensor Core 为例:

  • 每个 Tensor Core 每周期可执行 256 个 FP16 FMA 运算
  • 每个 SM 有 4 个 Tensor Core
  • 每个 SM 每周期可执行 1024 个 FP16 FMA 运算
  • 相比之下,每个 SM 只有 128 个 FP32 CUDA Core,每周期只能执行 128 个 FMA 运算

8 倍的理论性能差距!这就是为什么混合精度训练能带来数倍加速的根本原因——它能充分利用 Tensor Core。

4.3 Tensor Core 支持的精度格式

随着架构演进,Tensor Core 支持的精度格式越来越丰富,专门针对 AI 工作负载优化:

架构支持的精度格式典型应用
VoltaFP16早期深度学习训练
AmpereFP16, BF16, TF32, INT8主流训练和推理
HopperFP16, BF16, TF32, FP8, INT8, INT4大模型训练和高吞吐推理
BlackwellFP16, BF16, TF32, FP8, NVFP4, INT4极致推理性能

NVFP4:Blackwell 架构引入的全新 4 位浮点格式,结合双级缩放机制,在保持精度的同时,将推理吞吐量再提升一倍。

五、SM 架构演进:从 Ampere 到 Blackwell

NVIDIA 每一代 GPU 架构都会对 SM 进行重大改进,以更好地适应 AI 工作负载的需求。

5.1 Ampere(A100):AI 架构的里程碑

  • 首次引入 TF32 精度,在保持 FP32 精度的同时,利用 Tensor Core 加速
  • 支持结构化稀疏,进一步提升 Tensor Core 性能
  • 引入异步内存拷贝,减少数据搬运开销
  • 每个 SM:64 个 FP32 Core,4 个第三代 Tensor Core,256 KB 寄存器文件,164 KB L1/共享内存

5.2 Hopper(H100):Transformer 优化

  • 第四代 Tensor Core,支持 FP8 精度,Transformer 引擎
  • 线程块集群(Thread Block Cluster),允许 SM 之间直接访问共享内存
  • 分布式共享内存(DSMEM),提升 SM 间通信效率
  • 每个 SM:128 个 FP32 Core,4 个第四代 Tensor Core,256 KB 寄存器文件,228 KB L1/共享内存

5.3 Blackwell(B100):推理性能的飞跃

  • 第五代 Tensor Core,支持 NVFP4 精度,第二代 Transformer 引擎
  • 双线程块 MMA,成对的 SM 协同工作,共享操作数
  • 每个 SM 配备 256 KB Tensor 内存(TMEM),专门为 Tensor Core 提供数据
  • 统一 INT32/FP32 流水线,提高资源利用率
  • 每个 SM:128 个统一 INT32/FP32 Core,4 个第五代 Tensor Core,256 KB 寄存器文件,256 KB TMEM

演进趋势:越来越多的硅片面积被分配给 Tensor Core 和专用 AI 加速单元,通用计算单元的比例逐渐下降。这反映了 GPU 从通用并行处理器向 AI 专用处理器的转变。

六、AI Infra 工程师必须掌握的 SM 相关性能优化要点

理解 SM 架构的最终目的是为了优化 AI 工作负载的性能。以下是每个 AI Infra 工程师都应该掌握的核心优化原则:

6.1 充分利用 Tensor Core

  • 使用混合精度训练:FP16/BF16 训练能充分利用 Tensor Core,带来 2-4 倍的性能提升
  • 使用 FP8 训练:H100 及以上 GPU 支持 FP8 训练,可进一步提升 2 倍性能
  • 确保矩阵维度对齐:Tensor Core 对矩阵维度有特定要求(如 16 的倍数),对齐后才能获得最佳性能
  • 使用优化的 BLAS 库:cuBLAS、CUTLASS 等库已经针对 Tensor Core 做了深度优化

6.2 提高 SM 占用率

SM 占用率是指 SM 上实际驻留的 Warp 数与最大可驻留 Warp 数的比值。高占用率是隐藏延迟、提高吞吐量的关键。

影响占用率的因素

  • 每个线程使用的寄存器数量
  • 每个线程块使用的共享内存数量
  • 每个线程块的线程数

优化方法

  • 减少每个线程的寄存器使用量
  • 合理设置线程块大小(通常 128、256 或 512 个线程)
  • 避免使用过多的共享内存

6.3 优化内存访问模式

  • 合并内存访问:让同一个 Warp 内的线程访问连续的内存地址,这样可以合并成一个内存事务
  • 利用共享内存:将频繁访问的数据加载到共享内存中,减少对全局显存的访问
  • 避免分支发散:尽量让同一个 Warp 内的线程执行相同的代码路径
  • 使用异步内存拷贝:Ampere 及以上架构支持全局内存直接到共享内存的异步拷贝,减少寄存器使用和延迟

6.4 合理分配工作负载

  • 确保足够的并行性:启动的线程块数量应该至少是 SM 数量的 4 倍,这样才能让所有 SM 都忙碌起来
  • 负载均衡:尽量让每个线程块的工作量相同,避免出现"木桶效应"
  • 避免过小的 Kernel:Kernel 启动有一定的开销,过小的 Kernel 会导致开销占比过高

七、常见误区与最佳实践

误区 1:FLOPS 越高,实际性能越好

真相:理论 FLOPS 只是一个上限,实际性能取决于能否有效利用这些 FLOPS。很多时候,内存带宽才是真正的瓶颈。

最佳实践:计算算法的算术强度(计算量/内存访问量),与 GPU 的运算强度(FLOPS/带宽)进行比较,判断是计算受限还是内存受限。

误区 2:线程越多,性能越好

真相:过多的线程会导致寄存器和共享内存不足,反而降低 SM 占用率和性能。

最佳实践:通过实验找到最佳的线程块大小和网格大小,通常在 128-512 个线程/块之间。

误区 3:所有算子都应该用 Tensor Core 加速

真相:Tensor Core 只擅长矩阵乘法,对于其他类型的算子(如逐元素操作、规约),使用 CUDA Core 可能更高效。

最佳实践:根据算子的计算特性选择合适的加速单元,不要盲目追求 Tensor Core 利用率。

八、总结与学习建议

SM 是 GPU 架构的核心,也是 AI Infra 工程师必须深入理解的概念。它的设计哲学——“用并行性换延迟”、“专用硬件加速特定工作负载”——贯穿了整个 GPU 的发展历程。

核心要点回顾

  1. SM 是 GPU 的基本计算单元,GPU 的整体性能主要取决于 SM 的数量和每个 SM 的计算能力
  2. SM 采用 SIMT 执行模型,以 Warp(32 个线程)为基本调度单位
  3. Tensor Core 是 AI 算力的核心,能提供比 CUDA Core 高 10-20 倍的矩阵运算性能
  4. 性能优化的关键是:充分利用 Tensor Core、提高 SM 占用率、优化内存访问模式

学习建议

  1. 动手写几个简单的 CUDA Kernel,观察不同线程块大小和内存访问模式对性能的影响
  2. 使用 NVIDIA Nsight 工具分析 Kernel 的执行情况,查看 SM 占用率、Tensor Core 利用率等指标
  3. 阅读 cuBLAS、CUTLASS 等优化库的源码,学习它们是如何充分利用 SM 资源的
  4. 关注 NVIDIA 每一代新架构的技术白皮书,了解 SM 架构的最新演进

理解 SM 只是 AI Infra 学习的起点,但它是最重要的起点。只有深入理解了硬件底层,你才能写出真正高效的 AI 系统,在大模型时代发挥出 GPU 的全部潜力。

附录:SM(流式多处理器)全模块拆解解析(安培架构)

这张是NVIDIA第二代光追+第三代Tensor Core架构SM(Ampere安培架构SM),整个SM由4组子执行簇+共享L1/纹理/RT单元构成,逐块拆分各模块功能:

一、橙色模块:L0 I-Cache + Warp Scheduler + Dispatch(每组子单元顶部橙色栏,4套)

1. L0 I-Cache(零级指令缓存)

  • 功能:存储当前活跃Warp(32线程为1个Warp)的机器指令,从L2缓存预取指令,给Warp调度器快速喂指令,减少指令取指延迟;是指令流水线最前端的缓存。

2. Warp Scheduler(Warp调度器)

  • CUDA最小调度单位是Warp(32线程),调度器负责从就绪Warp队列挑选符合条件的Warp,根据指令类型(算数/访存/特殊函数)分发到对应运算单元;
  • 标注32 thread/clk单周期最多调度分发32个线程(1个完整Warp)

3. Dispatch(指令派发单元)

把调度器选定的指令,路由发送到下方FP32/INT32、LD/ST、SFU、Tensor Core等不同执行流水线,完成指令分发。

二、深蓝色块:Register File (16384 × 32-bit,4组独立寄存器堆)

  • CUDA通用寄存器堆16384×32bit=单块寄存器总容量:16384个32位通用寄存器;
  • 功能:每个线程的局部变量、中间运算结果全部存在通用寄存器中,是GPU线程的高速片上寄存器;Warp执行时从寄存器读源操作数、写入运算结果;寄存器是CUDA性能关键资源,寄存器占用量直接限制单个SM能并发的线程数量。

整SM共4份寄存器堆,每份独立供给下方1组FP/Tensor运算簇。

三、绿色运算阵列(每组子单元分三块:2×FP32/INT32 + 1×Tensor Core,共4组)

1. FP32 / INT32 算数核心(两大片绿色通用ALU阵列)

  • FP32:单精度浮点运算单元(32位浮点数,图形光栅化、通用科学计算、CUDA基础浮点运算);
  • INT32:32位整数运算单元(地址计算、逻辑运算、整型算法、分支判断);
  • 安培架构该单元FP32和INT32硬件同核分时复用:同一套ALU可以跑浮点/整数指令,是SM最通用的计算资源,承担绝大部分通用图形、CUDA内核计算。

2. TENSOR CORE 3rd Gen(第三代张量核心,右侧整块深绿)

  • AI专用加速硬件,第三代Tensor Core支持:FP16/BF16/TF32/INT8/INT4混合精度矩阵乘加(GEMM);
  • 用途:深度学习推理/训练、AI超分辨率、DLSS超采样、神经网络卷积加速,专门吃掉矩阵运算(AI算力主力);
  • 硬件内部集成矩阵乘法器+累加器,单周期完成大批量矩阵运算,大幅降低通用FP32单元负载。

四、暗红色底层单元:LD/ST + SFU(每组运算阵列最下方红块)

1. LD/ST(Load/Store 载入/存储单元,4个一组)

  • 片上数据访存单元:负责线程从Shared Memory/L1/全局内存读数据(Load)、把运算结果写回内存(Store);
  • 所有需要读写显存/共享内存的指令都走LDST流水线,是数据通路,分离「计算」和「访存」流水线,避免占用FP32算力。

2. SFU(Special Function Unit 特殊函数单元,最右侧小红块)

  • 特殊数学函数专用硬件:计算sin/cos/log/sqrt/exp/倒数等超越数学函数;
  • 不占用FP32通用核心资源,单独硬件加速复杂数学运算(图形纹理采样、物理计算高频用到)。

五、跨4个子簇的横向公共模块(SM下半部分横向长条)

1. 128KB L1 Data Cache / Shared Memory(蓝绿色长条,全SM共享)

L1数据缓存 + CUDA共享内存(物理同一块片上存储,逻辑分区)

  • Shared Memory(共享内存):CUDA同一个Block内所有线程高速互通数据,片上极低延迟,程序员可手动分配大小,是CUDA并行优化核心;
  • L1 Data Cache:自动缓存全局内存读写数据,对图形管线、不可控访存做硬件缓存;
  • 安培架构SM统一128KB物理存储,可配置划分L1缓存/Shared Memory占比。

2. Tex(Texture Unit 纹理单元,4个并列蓝色块)

  • 图形纹理采样硬件:负责纹理贴图寻址、双线性/三线性纹理过滤、各向异性过滤;
  • 除光栅化纹理读取外,CUDA也可以用纹理缓存做带硬件插值的只读数据寻址。

六、最下方黄色大块:RT CORE 2nd Generation(第二代光线追踪核心)

硬件光追专用加速单元,整SM共用

  • 核心功能:光线与包围盒(AABB)/三角形求交测试(光追中最耗时的BVH遍历、相交计算硬件加速);
  • 用途:实时光线追踪(光栅化+光线追踪混合渲染,RTX实时光影、反射折射、全局光照);第二代RT Core优化了BVH遍历效率,支持运动模糊几何体相交加速。

整体架构总结

1个SM =4个独立执行子块(每子块:调度+寄存器+FP+Tensor+LDST+SFU) + 全SM共享L1/Shared+纹理单元+RT光追单元
GPU由数十~上百个SM阵列组成,SM是NVIDIA GPU算力的最小组成单元。

http://www.rkmt.cn/news/1482613.html

相关文章:

  • 2026年 气瓶检验检测机构推荐榜单:车用氢气瓶/低温绝热气瓶/LNGCNG气瓶/钢质无缝与焊接气瓶/呼吸气瓶及铝合金二氧化碳气瓶检验检测实力之选 - 品牌发掘
  • Xiaomi Miot Auto本地模式深度解析:为什么设备在离线时显示为不可用?
  • 曲靖CMA甲醛检测治理口碑名单:国康CMA检测中心等5家深度测评 - AZJ888
  • 多模态融合技术落地(二):红外热成像 + 可见光双模态 TVA 检测:工件内部隐伤无损质检落地方案
  • FPC孔金属化技术解析:黑影工艺原理、应用与可靠性对比
  • AI + Web3 应用架构设计与智能合约辅助开发实践
  • 3步解锁中兴光猫隐藏功能:完整工厂模式与Telnet开启教程
  • 合肥甲醛检测治理除甲醛公司口碑名单:康之居等5家深度测评 - aZJ-111
  • 合肥甲醛检测治理除甲醛公司口碑名单:森氧家环保等5家深度测评 - aZJ-111
  • 2026年交换机厂家推荐排行榜:白盒交换机/企业级交换机/核心层/汇聚层/接入层及全国产化交换机品牌实力解析 - 品牌发掘
  • 池州CMA甲醛检测治理口碑名单:国康CMA检测中心等5家深度测评 - aZJ-111
  • 2026年 工业交换机厂家推荐榜单:EN50155/轨交专用/BYPASS/IP67工业交换机品牌深度优选 - 品牌发掘
  • 持证出厂钢制防火门:全维度合规,筑牢消防安全防线
  • 湖州除甲醛公司口碑名单:绿居净环保等5家甲醛检测治理公司深度测评 - aZJ-111
  • 北京甲醛检测治理除甲醛公司口碑名单:康之居等5家深度测评 - aZJ-111
  • AUTOSAR 系统服务:ECU 的“公共服务部门”
  • 微信聊天记录永久保存终极指南:3步轻松导出完整对话历史
  • 传统压力大就要彻底休息,编写程序量化工作压力值,分析轻度忙碌反而舒缓压力的适配场景。
  • 别再死磕期刊论文了!书匠策AI官网www.shujiangce.com 这个“论文搭子“让我直接真香了
  • Python 爬虫项目 Scrapy 配置 Cookie 中间件保持会话状态
  • 崇左CMA甲醛检测治理口碑名单:国康CMA检测中心等5家深度测评 - aZJ-111
  • 当Linux与Realtek 8852AE相遇:一场硬件与内核的对话艺术
  • 北京甲醛检测治理除甲醛公司口碑名单:醛清环境等5家深度测评 - aZJ-111
  • 书匠策AI官网www.shujiangce.com:求求你们别再“裸奔“写期刊论文了,这个AI工具我后悔没早发现!
  • 2026年马弗炉厂家推荐/智能高温箱式马弗炉,实验室科研/工业热处理/灰分碳化/环保节能品牌排行榜最新解析 - 品牌发掘
  • 复役声明
  • 学习进度5/21
  • 书匠策AI官网www.shujiangce.com:被导师夸“逻辑清晰“的秘密,藏在这个AI工具里
  • 2026年杭州小程序商城运营怎么做
  • 2026年管式炉厂家推荐排行榜:智能/真空/高温/节能/多温区管式炉,实验室与新能源材料烧结优质品牌解析 - 品牌发掘