AI Infra Academy
返回题库
困难推理系统推理系统Roofline面试高频NVIDIA

为什么说 LLM 解码阶段是 memory-bound?如何提升算术强度?

9 0 0

参考答案

**为什么 memory-bound**:解码时每步只生成 1 个 token(每序列),这一步的矩阵乘法是"矩阵×向量",计算量(FLOPs)很小。但每一步都必须把**整个模型的权重**从 HBM 读进来(还有 KV Cache),访存量大。计算/访存比(arithmetic intensity,算术强度)很低,落在 Roofline 模型的带宽受限区 —— 即瓶颈是显存带宽而非算力,GPU 的 Tensor Core 大量闲置。 **如何提升算术强度 / 吞吐**: 1. **增大 batch size**:多个序列在同一步共享一次权重读取,权重读取被 N 个序列摊薄,计算量随 N 增长而访存基本不变 → 算术强度上升,吞吐提升。这是最直接的手段。 2. **投机解码**:一次前向验证多个 token,摊薄权重读取。 3. **量化权重(W4A16)**:权重 bit 数减半/减到 1/4,直接减少要读的字节数。 4. **减小 KV Cache 读取**:GQA/MQA、KV 量化,减少每步读的 KV 字节。 5. **算子融合**:减少中间结果的 HBM 往返。 **注意**:batch 增大到一定程度会转为 compute-bound,此时投机解码等收益递减。

讨论区(0)

还没有评论,来做第一个发言的人吧