跳转到主要内容
AI Systems

LLM 推理性能优化与 GPU 利用率提升摘要

约 11 分钟阅读 摘要

核心主张

没有 Profiling 驱动的优化是盲目的。每一项优化都必须由 Profiling 数据发起、由 Profiling 数据验证。AWP 作为贯穿全链路的 Profiling 平台,是优化闭环的中枢神经系统。

第1章:LLM 推理的性能本质

两阶段异构计算

LLM 推理本质上是一个两阶段异构计算过程:

特性Prefill 阶段Decode 阶段
计算模式大矩阵 GEMM向量-矩阵乘法
瓶颈类型Compute-BoundMemory-Bound
算术强度高(≈ 2048+)极低(≈ 1-2)
GPU 利用率高(60-80% Tensor Core)极低(<5%)
延迟指标TTFTTPOT
占总推理时间10-30%70-90%

核心洞见: Decode 阶段占据推理绝大部分时间,但算术强度极低——每生成一个 token 需从 HBM 读取整个模型权重和所有历史 KV Cache,GPU 数千个 Tensor Core 大部分时间在等待数据搬运。

Roofline 视角

以 H100 SXM 为例,Decode 阶段算术强度(≈1-2)远低于硬件拐点(295 FLOPs/Byte),约差 200 倍。即使 HBM 带宽 100% 利用,Tensor Core 也只有不到 1% 在工作——这是 GPU 利用率低的物理根因

六大根因分类

根因类别典型问题
(1) 计算利用率低算术强度低、Attention 未用 FlashAttention、Batch Size 过小
(2) 内存与缓存瓶颈KV Cache 膨胀 OOM、HBM 带宽饱和、L2 Cache 命中率低
(3) 调度与 Batching 低效静态 Batching Padding 浪费、Prefill-Decode 混跑干扰
(4) 运行时开销Kernel Launch 延迟 > 执行时间、cudaSync 阻塞、Python GIL
(5) 通信瓶颈TP All-Reduce 频繁、PP Bubble、跨节点带宽不足
(6) 系统级问题GPU 降频、ECC 错误、TP/PP 配置不合理

三层量化指标体系

  • 业务级: TTFT、TPOT、Throughput(tok/s/GPU)、QPS
  • 系统级: MFU(有效算力利用率)、MBU(带宽利用率)、KV Cache 利用率、Batch 利用率
  • 硬件级: SM Active%、Tensor Core Active%、Achieved Occupancy、DRAM Throughput、GPU Idle%

借鉴 Google MPG 框架:MPG = Program Goodput × Runtime Goodput × Scheduling Goodput,AWP 天然覆盖三个维度的数据采集。

第2章:AWP Profiling 诊断体系

核心理念

Profiling 在优化流程中出现三次:发起(发现问题)、验证(确认效果)、守护(防止回归)。

两层 Profiling 架构

特性第一层:常驻遥测第二层:按需深度 Profiling
运行模式7×24 持续采集按需触发
性能开销<1%5-15%
数据粒度秒级/分钟级聚合微秒级 Kernel 粒度
回答的问题”有没有问题?""问题的根因是什么?“
参考实现Meta Dynolog, NVIDIA DCGMMeta Zoomer, NVIDIA Nsight

AWP 八大 Profiling 能力

#能力核心问题对标工具
Kernel 级执行分析Kernel 本身够不够快?Nsight Compute
Roofline 模型分析受限于算力还是带宽?Nsight Compute Roofline
GPU-CPU 统一时间线GPU 为什么在空闲?Nsight Systems
显存分析(规划中)内存花在了哪里?PyTorch Memory Profiler
通信分析通信占了多少时间?Nsight Systems NCCL trace
硬件遥测硬件健康吗?NVIDIA DCGM
集群级分析哪些节点拖了后腿?Meta Dynolog + Zoomer
推理引擎指标(建设中)用户体感如何?vLLM/TRT-LLM 内置 metrics

瓶颈诊断方法论

系统化诊断路径:GPU Idle% > 50% → 时间线分析空闲原因(CPU-GPU 同步阻塞 / 等待数据 / 等待通信)→ 进一步定位 Batch Size、内存、负载问题。GPU 在忙但效率低 → Roofline 分析区分 Compute/Memory Bound → Kernel 分析 Tensor Core 利用率。

集群级异常检测

GPU 浪费四类体系(参考 NVIDIA):硬件不可用、健康但未占用、已占用但计算空闲(最常见且最浪费)、占用但未使用。AWP 通过常驻遥测检测第三类浪费,自动触发深度 Profiling。

第3章:六层优化方案全景

第1层:Kernel 层优化

FlashAttention: 通过 tiling + online softmax 将 Attention HBM 访问从 O(N²) 降至 O(N)。FA-3 在 H100 上达 740 TFLOPS(FP16)、1.2 PFLOPS(FP8)。

算子融合: 消除相邻小算子的中间 HBM 读写和 Launch 开销。DeepSpeed 深度融合延迟降低 1.9-4.4x,吞吐提升 3.4-6.2x。

量化推理: FP8 几乎无损 2x 提升;W8A8 SmoothQuant 损失 <1%;W4A16 内存节省 4x。

第2层:Batching 与调度优化

Continuous Batching: 调度粒度从 batch 级改为 iteration 级,已完成请求立即释放资源。相比 Static Batching 吞吐提升 2-8x。

Prefill-Decode 分离: 将 Prefill 和 Decode 分配到不同 GPU 池。Splitwise 报告 P99 TTFT 提升 2-4x;Mooncake 报告吞吐提升 1.5-2x。

智能调度: SLA 感知优先级、长短请求分离、Preemption、KV Cache 感知调度。

第3层:KV Cache 优化

PagedAttention(vLLM): 借鉴 OS 虚拟内存分页,内存碎片从 >20% 降至 <4%,batch size 提升 2-4x。

Prefix Caching(SGLang RadixAttention): 相同 system prompt 场景 Prefill 时间减少 80-95%。

KV Cache 压缩: FP8 量化(内存减半)、GQA(缩小 4-8x)、MLA(缩小 10x+)。

第4层:推理引擎级优化

CUDA Graphs: 录制 Kernel 执行序列,消除逐次 launch 的 CPU 开销。小 batch 场景延迟降低 20-40%。

Speculative Decoding: 小 Draft 模型快速生成候选 token,大模型一次性验证。经典方案吞吐 1.5-2x,Medusa/EAGLE 可达 2-3x。

推理引擎对比: vLLM(生态最广)、TensorRT-LLM(延迟最低)、SGLang(前缀缓存)、DeepSpeed-FastGen(训练推理统一)。

第5层:分布式推理优化

并行策略选择:TP(降低延迟,节点内 NVLink)、PP(提升吞吐,节点间 IB)、EP(MoE 模型)。

通信优化:通信-计算 Overlap(隐藏 30-60% 通信时间)、Custom AllReduce(比 NCCL 快 30-50%)、量化通信、拓扑感知放置。

第6层:系统级优化

编译器自动调优(XLA XTAT、torch.compile、TVM)、部署配置自动搜索(TP × PP × batch × 量化的组合空间)、GPU 资源管理(MIG、MPS、弹性伸缩)。

第4章:Profiling 驱动的优化闭环

完整闭环流程

持续监控 → 异常发现 → 深度诊断 → 根因分类 → 方案选择 → A/B 验证 → 部署后回到持续监控。

A/B 验证框架

标准化控制变量(固定硬件、模型、负载),AWP 多维指标同时对比,检测副作用(吞吐提升但 P99 恶化?内存减少但精度退化?)。

优化成熟度模型

级别名称AWP 角色
L1被动分析工具提供者
L2主动发现异常告警者
L3半自动闭环优化建议者
L4全自动闭环优化中枢

第5章:业界实战案例

Meta Zoomer

自动触发 Profiling → 三层分析 → 反模式检测 → 自动生成修复 diff。关键成果:单行代码修改 QPS +20%;一键 QPS 优化每个模型 +2% ~ +50%。

ByteDance MegaScale

12,288 GPU 训练 175B LLM,MFU 55.2%。发现约 0.5% GPU 是 Straggler,执行时间比均值高 5-10%,可拖慢整个 TP group。

NVIDIA 内部

GPU 浪费从 5.5% 降至 1%。最大浪费来源:“已占用但计算空闲”——应用代码低效、I/O 等待、进程挂起。

Google MPG

单一利用率指标不足以刻画问题。MPG 分解为 PG(程序有效算力)× RG(运行时有效算力)× SG(调度有效算力),各维度独立优化。

Uber PerfInsights

AI 驱动反模式检测,误报率从 >80% 降至低十位数,工程时间节省 93.1%,代码反模式密度年降 33.5%。

第6章:优化决策框架

优化优先级矩阵

优先级优化手段预期收益复杂度
P0Continuous Batching吞吐 2-8x
P0FlashAttention-2/3Attention 2-4x
P0PagedAttentionBatch 容量 2-4x
P1模型量化 (FP8/W8A8)吞吐 ~2x⭐⭐
P1KV Cache 量化KV 内存减半
P1Prefix CachingPrefill 减 80-95%⭐⭐
P1Speculative Decoding吞吐 1.5-3x⭐⭐⭐
P2CUDA Graphs延迟 -20-40%⭐⭐
P2算子融合延迟 -30-50%⭐⭐⭐
P2Prefill-Decode 分离P99 延迟 2-4x⭐⭐⭐⭐

一句话方法论

LLM 推理优化不是一次性的技术选型,而是 Profiling 驱动的持续改进循环。AWP 是发现问题的眼睛、定位根因的手术刀、验证效果的天平、守护生产的哨兵。没有 Profiling 数据支撑的优化决策,本质上是在赌博。

相关页面