困难推理系统推理系统Roofline面试高频NVIDIA
什么是 arithmetic intensity(算术强度)?如何用 Roofline 模型分析 LLM 推理?
7 0 0
参考答案
**算术强度(Arithmetic Intensity, AI)**:计算量与访存量之比,单位 FLOPs/Byte,表示"每读取一字节数据做多少次运算"。 **Roofline 模型**:横轴算术强度,纵轴可达性能(FLOPs/s)。有两条上限: - **带宽屋顶**(斜线):性能 ≤ 算术强度 × 内存带宽。算术强度低时受此限制(memory-bound)。 - **算力屋顶**(水平线):性能 ≤ 峰值算力。算术强度高时受此限制(compute-bound)。 - 拐点 = 峰值算力 / 带宽(脊点 ridge point)。 **分析 LLM 推理**: - **Prefill**:并行处理大量 token,矩阵-矩阵乘,算术强度高,落在算力屋顶下 → compute-bound。 - **Decode**(batch=1):矩阵-向量乘,每读一遍权重只做很少运算,算术强度极低,落在带宽屋顶下 → memory-bound,性能被显存带宽限制,Tensor Core 闲置。 - **提高 decode 算术强度**:增大 batch(N 个序列共享一次权重读取,计算量×N 而权重访存不变)→ 算术强度上升,向算力屋顶移动,吞吐提升。这就是"大 batch 提吞吐"的 Roofline 解释。 **用途**:判断某个 kernel/阶段的瓶颈是算力还是带宽,指导优化方向(memory-bound 就减少访存/量化/融合,compute-bound 就用更快的 Tensor Core/低精度算力)。
讨论区(0)
还没有评论,来做第一个发言的人吧