资讯动态

【AI Infra小白入门⑨】GPU硬件概论:从SM到Memory Wall,搞懂优化的物理基础

发布时间:2026/10/21 2:21:39 来源:尧图企业网站定制
【AI Infra小白入门⑨】GPU硬件概论从SM到Memory Wall搞懂优化的物理基础本文是「AI Infra 小白入门」系列的第九篇。不懂硬件的优化是玄学——你连GPU长什么样都不知道怎么知道优化有没有用本文用最通俗的语言带你从里到外认识GPUCPU和GPU有啥不一样SM是什么Tensor Core是啥存储层次有几级Memory Wall又是什么一、写在前面为什么要懂硬件很多人觉得“我就是写代码的懂硬件干嘛”但在AI Infra领域这句话不成立。因为你做的所有性能优化最终都要落到硬件上不知道硬件的脾气优化就是瞎试——试对了是运气试错了是常态面试的时候这个优化为什么快是必考题答案最终都要落到硬件原理上一句话不懂硬件的优化都是玄学。先上一张GPU架构概览图二、GPU vs CPU两种完全不同的设计哲学先问一个问题CPU和GPU都是处理器为什么GPU做AI计算这么快答案是它们的设计目标完全不一样。维度CPUGPU设计目标低延迟、复杂控制高吞吐、简单并行核心数几个到几十个几千个CUDA Core控制逻辑复杂分支预测、乱序执行简单SIMT锁步执行缓存占比大用来减少内存延迟小适用场景串行/逻辑复杂任务大规模数据并行任务用人话讲CPU是几个聪明的工人——每个都很能干能处理复杂任务但人少GPU是几千个听话的工人——每个都很简单只能做简单计算但人多力量大深度学习的核心是什么矩阵乘法——就是那种数据量大、操作简单、高度并行的任务。这种任务交给几千个听话的工人一起干自然比几个聪明的工人快得多。三、GPU内部SM是基本单元GPU不是一个大处理器而是由很多个**SMStreaming Multiprocessor流多处理器**组成的。3.1 GPU N × SMGPU N × SM SM 寄存器 Shared Memory/L1 CUDA Core Tensor Core 调度器可以这样理解GPU是一个大工厂SM就是工厂里的一个个车间每个车间里有很多工人CUDA Core、Tensor Core、“工作台”寄存器、共享内存、“工头”调度器所有SM并行工作这就是GPU算力的来源。3.2 CUDA Core vs Tensor CoreSM里有两种主要的计算单元计算单元作用特点CUDA Core通用计算FP32/INT等灵活但单算力不算高Tensor Core专用矩阵乘MMA专门做矩阵乘法算力比CUDA Core高一个数量级Tensor Core是GPU跑深度学习快的关键比如A100上FP16 Tensor Core的算力是312 TFLOPS而FP32 CUDA Core只有19.5 TFLOPS——差了16倍为什么现在都用FP16/BF16混合精度训练一个重要原因就是——只有FP16/BF16/INT8这些精度才能用Tensor Core算力才能上去。用FP32的话只能用CUDA Core慢很多。3.3 SIMT执行模型SIMTSingle Instruction, Multiple Threads——单指令多线程。简单说就是同一个Warp32个线程里的线程执行完全相同的指令步调一致。如果Warp里的线程走了不同的分支比如if-else会发生什么硬件会先执行A分支走B分支的线程摸鱼然后执行B分支走A分支的线程摸鱼结果就是性能下降了这叫分支发散Branch Divergence是CUDA编程中要避免的常见问题。四、存储层次越近越快越快越小GPU的存储是分层的从近到远、从快到慢层级容量以A100为例带宽延迟谁能访问寄存器256KB / SM~20 TB/s1 cycle每个线程私有Shared Memory / L1192KB / SM~19 TB/s~30 cycles同一个Block内的线程共享L2 Cache40MB~5 TB/s~200 cycles所有SM共享HBM显存40/80GB1.5-2 TB/s~400 cycles所有SM都能访问主机内存DDRTB级~50 GB/sPCIe~微秒级CPU/GPU通过PCIe交换几个数量级的感受寄存器比显存快几百倍每往下一层延迟大约涨一个数量级带宽也是逐级下降优化第一性原理让数据尽量停留在离计算近的地方。几乎所有的性能优化本质上都是在做这件事GEMM tiling把数据块搬到共享内存里算Kernel Fusion把多个算子合成一个避免中间结果写到显存再读回来FlashAttention分块计算不让完整的N²矩阵落到显存寄存器复用让数据尽量留在寄存器里少去共享内存/显存读五、Memory Wall为什么带宽先成了瓶颈5.1 什么是Memory Wall有一个残酷的事实算力的增长速度远远快于显存带宽的增长速度。比如A100FP16 Tensor Core算力312 TFLOPSHBM显存带宽~1.5 TB/s这意味着什么如果一个kernel需要频繁读写显存那么即使算力很强也发挥不出来——显存带宽不够喂不饱计算单元。这就叫Memory Wall显存墙——算力再高被带宽卡住了。5.2 算术强度判断你的kernel卡在哪怎么判断一个kernel是被计算卡住了还是被访存卡住了用算术强度Arithmetic Intensity算术强度 FLOPs / 访存字节数意思是每读1字节数据能做多少次运算。如果算术强度高→ 计算多、访存少 →compute-bound计算瓶颈如果算术强度低→ 计算少、访存多 →memory-bound访存瓶颈5.3 Roofline模型一图看懂Roofline模型是性能分析的经典工具它画出来是这样的性能FLOPS ↑ │ ┌───────────── 算力上限compute-bound │ / │ / │ / ← 斜率 带宽 │ / │ / │ / │ / └────────────────────→ 算术强度FLOPs/Byte ↑ 拐点算术强度 拐点memory-bound性能由带宽决定算术强度 拐点compute-bound性能由算力决定A100的拐点大约是200 FLOP/byte。也就是说每读1字节数据做不到200次运算 → 卡带宽做到了 → 卡算力5.4 LLM Decode典型的Memory-Bound大模型推理的decode阶段就是典型的memory-bound每生成一个token要把整个模型的权重都读一遍但计算量只有2P FLOPsP是参数量算术强度极低 → 完全被显存带宽卡住这就是为什么量化对推理加速这么有效INT4量化权重变成原来的1/8读得少了 → 带宽瓶颈缓解了 → 速度就上去了虽然计算精度降低了但因为本来就不是计算瓶颈所以影响不大六、主流GPU规格速览规格A100H100H200Orin AGX架构AmpereHopperHopperAmpere显存40/80GB HBM2e80GB HBM3141GB HBM3e32/64GB统一内存带宽1.6/2 TB/s3.35 TB/s4.8 TB/s~200 GB/sFP16算力312 TFLOPS989 TFLOPS989 TFLOPS~170 TOPS (INT8)FP8支持无有有无NVLink600 GB/s900 GB/s900 GB/s-功耗250-400W700W700W15-60W给小白几个直观感受H100比A100算力翻了3倍带宽翻了1.7倍H200主要提升了显存容量和带宽适合长上下文大模型端侧的Orin和数据中心的A100完全不在一个量级——功耗差10倍算力和带宽差一个数量级七、GPU互联多卡之间怎么传话多卡训练/推理时卡和卡之间需要通信。通信的通道有哪些互联方式带宽双向典型场景PCIe 4.0 x1664 GB/s普通多卡、CPU↔GPU数据搬运NVLink 3A100600 GB/s节点内8卡全互联NVLink 4H100900 GB/s节点内8卡NVSwitch全互联交换节点内任意两卡直连InfiniBandNDR~50 GB/s跨节点通信对并行策略的影响通信带宽的差异直接决定了并行策略的设计TP张量并行通信量很大每层都要通信→ 必须在NVLink域内节点内PP流水线并行通信量小每阶段只传激活→ 可以跨节点走IBDP数据并行每步通信一次梯度 → IB可承受但也是瓶颈之一 这就是3D并行的经典布局TP放节点内DP/PP跨节点——不是不想在节点间做TP是IB带宽不够扛不住TP的通信量。八、总结一下今天这篇文章我们从里到外认识了GPUGPU vs CPUCPU是几个聪明的工人GPU是几千个听话的工人——设计目标不同适用场景不同SM架构GPU由多个SM组成SM里有CUDA Core通用和Tensor Core矩阵乘专用存储层次寄存器 Shared Memory L2 HBM 主机内存——逐级变慢逐级变大。优化的核心就是让数据尽量靠近计算Memory Wall算力增长比带宽快导致很多kernel是memory-bound。用算术强度判断瓶颈类型GPU互联NVLink比IB快一个数量级决定了TP节点内、PP/DP跨节点的部署铁律下一篇预告我们来聊聊集合通信——分布式训练的基础。AllReduce、AllGather、ReduceScatter都是什么Ring和Tree算法有什么区别NCCL又是什么本系列导航第1篇一文搞懂什么是AI基础设施五大方向与不可能三角第2篇大厂AI Infra组织架构大揭秘第3篇AI Infra岗位路线图级别、薪资与成长路径第4篇AI Infra学习路线图从入门到精通的完整指南第5篇AI Infra必备编程基础Python、C与Linux速通指南第6篇AI Infra数学基础速成线代、概率与微积分工程向第7篇Transformer架构工程拆解从Attention到MLA的优化密码第8篇PyTorch框架Infra实战指南Tensor、autograd与性能调试第9篇GPU硬件概论从SM到Memory Wall搞懂优化的物理基础本文第10篇集合通信基础AllReduce、Ring算法与NCCL全解析更多内容持续更新中……

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑