跳转到主要内容

Agentic Infra:LLM 推理性能优化与 GPU 利用率提升

· 约 5 分钟阅读

一句话摘要

LLM 推理优化不是一次性技术选型,而是 Profiling 驱动的持续改进循环:AWP 八大能力 → 六大根因诊断 → 六层优化方案 → A/B 验证闭环;每一项优化都必须由 Profiling 数据发起、由 Profiling 数据验证。

关键要点

  • 两阶段异构本质:Prefill 是 Compute-Bound(AI≈2048+,GPU 利用率 60-80%),Decode 是 Memory-Bound(AI≈1-2,算力利用率 <1%);Decode 占总推理时间 70-90%,是优化的主战场。
  • H100 拐点物理依据:算力 989.5 TFLOPS / 带宽 3.35 TB/s,拐点 ≈ 295 FLOPs/Byte;Decode 算术强度比拐点低约 200 倍,这就是「GPU 利用率低」的物理根因。
  • GPU 利用率低的六大根因:计算利用率低 / 内存与缓存瓶颈 / 调度与 Batching 低效 / 运行时开销 / 通信瓶颈 / 系统级问题——每类映射到 AWP 八大能力的特定子集。
  • 三层指标框架:业务级(TTFT/TPOT/Throughput/QPS)→ 系统级(MFU/MBU/KV Cache 利用率 / Batch 利用率)→ 硬件级(SM Active / Tensor Core Active / DRAM Throughput / GPU Idle)。
  • Google MPG 框架借鉴MPG = PG × RG × SG(程序 × 运行时 × 调度),与 AWP 的 Kernel Profiling / Timeline / 关键路径分析能力正交对应。
  • AWP 两层架构:常驻遥测(<1%,回答「有没有问题」)+ 按需深度 Profiling(5-15%,回答「根因是什么」);对标 Meta Dynolog+Zoomer、Google GWP、ByteDance MegaScale、NVIDIA DCGM+Nsight。
  • AWP 八大能力:① Kernel 级 Trace / ② Roofline / ③ CPU-GPU 时间线 / ④ 内存分析 / ⑤ NCCL 通信 / ⑥ 硬件遥测 / ⑦ 集群热力图 / ⑧ 推理引擎指标。
  • 诊断决策树:GPU Idle >50%? → 同步阻塞 / 通信等待 / Batch 不足 / 内存满载分支;GPU 在忙? → Roofline 区分 Compute vs Memory,再下钻 Tensor Core 利用率。
  • 六层优化体系
    • L1 Kernel:FlashAttention-2/3、算子融合、FP8/INT8 量化(H100 上 FA3 FP16 达 740 TFLOPS、FP8 达 1.2 PFLOPS)
    • L2 Batching/调度:Continuous Batching(吞吐 2-8x)、Prefill-Decode 分离、长短分流、SLA 感知抢占
    • L3 KV Cache:PagedAttention(碎片 >20% → <4%)、Prefix Caching(Prefill 减 80-95%)、FP8/GQA/MLA
    • L4 引擎:CUDA Graphs(延迟 -20-40%)、Speculative Decoding(Medusa/EAGLE,吞吐 1.5-3x)
    • L5 分布式:TP 节点内 NVLink、PP 节点间 IB、通信-计算 Overlap、Custom AllReduce、量化通信
    • L6 系统级:XLA XTAT / torch.compile / TVM AutoTune,MIG/MPS 资源管理,弹性伸缩
  • 优化优先级矩阵(按 P0→P3):P0 = Continuous Batching + FlashAttention + PagedAttention;P1 = 量化 + Prefix Cache + Speculative;P2 = CUDA Graphs + 融合 + PD 分离;P3 = 编译器调优 + 弹性伸缩。
  • A/B 验证副作用检测:吞吐↑ 是否带来 P99↑ 或 OOM 风险?延迟↓ 是否压低 GPU 利用率?AWP 同时对比多维指标避免局部最优。
  • 优化成熟度模型:L1 被动 → L2 主动发现 → L3 半自动闭环 → L4 全自动闭环;多数团队在 L1-L2,目标 L3(关键路径 L4)。

核心论点 / 数据 / 案例

  • Profiling 出现三次:发起(发现问题)→ 验证(确认效果)→ 守护(防止回归);没有 Profiling 参与的优化是「碰运气」。
  • 业界实战数据
    • Meta Zoomer:一键 QPS 优化每个模型 +2~+50%;32K GPU 广播优化加速 30%;推理参数调优功耗降低 10-45%。
    • ByteDance MegaScale:12K GPU 训练 175B LLM 达 MFU 55.2%(比 Megatron 提升 1.34x);发现约 0.5% GPU 是 Straggler(拖慢 5-10%)。
    • NVIDIA:DCGM 高分辨率遥测 + Slurm 元数据 + 浪费四分类 + Idle GPU Reaper,将集群浪费从 5.5% 降至 1%;最大浪费源是「已占用但计算空闲」。
    • Google MPG:XLA XTAT 加速 Top 150 模型;Pathways 异步运行时减少编译期空闲;拓扑感知碎片整理减少 25%+ 资源碎片。
    • Uber PerfInsights:LLM + 规则引擎双层验证,误报率 80%+ → 低十位数;工程时间节省 93.1%;代码反模式密度年降 33.5%。
    • Splitwise/Mooncake:Prefill-Decode 分离部署,相同 SLA 下成本降低 20%+,吞吐提升 75%(Kimi 生产系统)。
  • 主流引擎对比:vLLM(生态广)、TensorRT-LLM(延迟最低,Custom AllReduce)、SGLang(前缀缓存 RadixAttention)、DeepSpeed-FastGen(Dynamic SplitFuse)。

与现有 wiki 的关联

可借鉴的工程实践

  1. Profiling 三次出现原则:在工单流程、CI、生产监控里都强制接入 AWP,做到「优化由数据发起、由数据验证、由数据守护」。
  2. 决策树 SOP 化:将 §2.4 的诊断流程做成 SRE 标准操作手册,命中分支直接绑定推荐方案(避免每次手工分析)。
  3. 优化优先级排序:先做 P0(Continuous Batching + FlashAttention + PagedAttention)拿基线,再按瓶颈类型选 P1/P2,避免过早进入复杂方案。
  4. PD 分离前置评估:通过 AWP ③ 时间线 + ⑧ 引擎指标观测 Prefill 干扰对 Decode P99 的实际影响,确认收益再上分离架构。
  5. 引擎选型用真实负载 A/B:vLLM / TRT-LLM / SGLang / FastGen 用自己业务的真实请求分布跑 AWP 统一基准,而非看官方 benchmark。
  6. 基准测试方法论:固定硬件 + 固定模型 + 固定负载 + 单变量变化;强制延迟-吞吐曲线 + 长稳 24h + 回归测试。
  7. 配置自动搜索:TP × PP × batch × seq × KV 比例 × 量化的多维空间不可手工穷举,用 AWP 数据驱动自动 Pareto 搜索(参考 ByteDance)。
  8. 浪费四分类自动化:参考 NVIDIA 实现「硬件不可用 / 健康未占用 / 已占用但计算空闲 / 占用但 IO 等待」自动归类,对第三类自动触发 L1 Profiling。
修改历史
修改历史1 次提交