跳到主内容
快讯直播
AI智模界
AI 词典

Roofline 模型:推理慢,是算力不够还是带宽卡住

一句话定义:Roofline 模型(Roofline Model,屋顶线模型)是一张二维图,用“算术强度”和“峰值算力、内存带宽”两个约束,画出程序在特定硬件上的性能上限;图形像屋顶,性能很难超过那条线。

屋顶是怎么搭起来的

横轴是算术强度(Arithmetic Intensity,也叫 Operational Intensity),含义是“每从内存搬 1 字节数据,做了多少次浮点运算”,单位是 FLOP/Byte。纵轴是性能,单位是 FLOPS。

屋顶由两条线拼成:一条斜线,高度等于“内存带宽 × 算术强度”,表示数据搬运速度;一条水平线,高度等于芯片峰值算力,表示计算速度上限。两条线的交点叫拐点,数值等于“峰值算力 ÷ 带宽”,相当于这台机器自带的平衡点。

打个厨房比方:切菜师傅的手速代表算力,帮厨从冰箱搬食材的速度代表带宽。食材送得慢,师傅再快也得干等;这时多请师傅(堆算力)没用,得让每次搬的食材更多、切之前少往返(提高数据复用)。反过来,食材堆满案板时,师傅手速才是瓶颈,加人手才有效。

怎么用它定位瓶颈

把你要跑的那个计算(比如一层矩阵乘)的算术强度在横轴上画一条竖线,竖线撞到屋顶的位置就是它的性能上限:

落点叫法典型症状优化方向
斜线上带宽受限(memory-bound)算力吃不饱、访存先被打满算子融合、量化、增大 batch、优化 KV cache、减少中间结果反复读写
平台上算力受限(compute-bound)算力打满、带宽还有余量换更强算力、低精度或更高效算子、算法层面减少计算量

大模型推理是经典案例:prefill 阶段一次处理整段提示词,是大矩阵乘矩阵,算术强度高,通常算力受限;decode 阶段每生成一个 token,几乎要把权重读一遍,算术强度极低,通常带宽受限。这也解释了两件事:单人聊天时字一个个往外蹦,是带宽型瓶颈;而把 batch 拉大能明显提吞吐,因为同一份权重被多个请求分摊了。

和相邻概念的区别

峰值 FLOPS 跑分只告诉你平顶有多高,不告诉你斜顶在哪里;GPU 利用率说明“忙不忙”,不代表“忙得有价值”;性能分析工具(profiler)做的是测量,Roofline 做的是上界推断。正确用法是先用它算出天花板,再看实测离天花板多远,判断该往哪边优化。

实际意义

一句口诀:加卡不见效时,多半是数据搬运受限,不是算力不足。做推理优化,先定位再动手:对着带宽瓶颈调算力效率,基本是白费力气。具体硬件参数和实测数值会有出入,以官方页面和实测结果为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。