芯片制造
搜索文档
一文看懂GPU是怎样工作的
半导体行业观察· 2026-08-23 09:08
核心观点 - GPU性能瓶颈并非算术能力不足,而是内存带宽限制,算术运算成本低而数据传输成本高 [4][5] - 所有性能优化技术本质是提高每次内存读取的数据利用率或减少读取字节数 [43] - 语言模型推理中生成阶段受内存限制,预填充阶段受计算限制 [42][56] GPU架构与内存层级 - GPU设计为数千个简单算术单元共享控制器,而非CPU的少数复杂单元 [8] - GPU通过加载远超运行能力的工作量隐藏等待时间,而非缩短延迟 [14] - 线程束(warp)是32个线程的固定组,共享指令,内部分支会导致性能损耗 [11][12] - 内存层级包括线程级存储、片上暂存区(共享内存)、共享缓存(L2)、主内存(HBM) [19][20] - 每个流式多处理器(SM)拥有私有寄存器文件和共享内存,L2缓存和HBM由全芯片共享 [24][25] - GPU寄存器文件总大小与L2缓存相当,因需存储大量未完成线程状态 [28] 性能核心指标:算术强度 - 算术强度=每字节工作量,即每次内存读取执行的算术运算次数 [30] - 矩阵乘法中每个值被重用上千次,而逐元素运算每个值仅使用一次 [31] - H100 SXM5的盈亏平衡点为每字节295次运算(989 TFLOPS / 3.35 TB/s) [32] - H200因带宽提升至4.8 TB/s,阈值降至每字节206次运算 [32] - 低于阈值受内存限制,高于阈值受计算限制 [33][34] 语言模型推理性能分析 - 700亿参数模型生成一个词元需1400亿次运算和140 GB数据移动(16位精度) [37][39] - 每字节仅1次运算,远低于300的盈亏平衡点 [39] - 理论最低生成速度约每秒24个词元(140 GB / 3.3 TB/s) [40] - 预填充阶段因同时处理多个词元,每字节工作量大幅增加,转为计算密集型 [42] 优化技术分类 - 批处理:同时处理多个请求,每个权重被所有请求重用,增加每字节工作量 [44] - 融合操作:合并链式逐元素运算,减少主内存往返次数 [46] - 保持数据靠近内存:如FlashAttention将中间矩阵存储在片上内存 [47] - 量化:将权重从16位降至8位,字节数减半,生成上限翻倍 [48][49] - 顺序读取:线程束读取相邻地址时带宽利用率最高,分散读取可能浪费八倍数据 [50] 性能诊断方法 - 测量实际内存带宽利用率和算术吞吐量,与硬件峰值比较 [54] - 带宽接近上限而运算能力低:受内存限制,需减少数据移动 [54] - 运算能力接近上限而带宽低:受计算限制,可降低精度或改进算法 [54] - 两者都低:受调度开销限制,需减少操作数量或增大操作规模 [52][54] - 语言模型生成阶段在几乎所有配置中受内存限制 [54] 硬件趋势 - 算术能力增长速度远超内存带宽,不平衡每代加剧 [7] - 盈亏平衡点随硬件升级提高,旧硬件上受计算限制的工作负载在新硬件上转为内存限制 [55] - 减少数据移动的技术将持续获得价值,峰值算术性能数据最不具预测性 [55]