跳转至

VeRL Performance Optimization

导言

MFU / SMA 低不一定说明 kernel 慢,也可能是 rollout、reward、checkpoint、通信、异步队列或 token 分布造成的等待。性能优化的第一步不是开特性,而是建立 E2E 性能模型。

1. 性能模型

step_time = rollout + reward + old_logprob + ref_logprob + update_actor + checkpoint + sync + idle

需要把每个阶段进一步拆成:

  • compute time
  • memory time
  • communication time
  • scheduling time
  • queue wait time
  • data preprocess time

2. 瓶颈分类

  • compute-bound:算力成为主要限制。
  • memory-bound:访存、激活、KV cache 或通信 buffer 成为主要限制。
  • communication-bound:all-gather、reduce-scatter、ring attention 等通信占主导。
  • scheduling-bound:动态 batch、队列、Ray 调度或 worker 切换开销明显。
  • data-bound:数据加载、reward 函数、后处理成为瓶颈。

3. 特性到瓶颈的映射

特性 可能改善的瓶颈 对 MFU / SMA 的作用 主要风险
dynamic batch padding waste / token packing 提高有效 token 计算密度 峰值显存不稳定
SP / CP activation / long context 支持更大 seq 或 batch 通信复杂度增加
TQ 待验证 可能改善调度或队列等待 含义和适用场景待确认
FullAsync stage idle / bubble 提高 E2E 设备忙碌度 staleness 和复现风险
one-step offset 同步边界等待 进一步减少等待 policy lag 风险
mooncake checkpoint checkpoint blocked time 提高长跑有效训练时间 环境依赖与恢复语义
inference serving 推理资源隔离 提高推理资源弹性 网络和权重同步风险

4. MFU / SMA 对外解释模板

解释模板

对领导或客户解释利用率时,不要只报一个数字。建议拆成:实际计算时间、通信等待、数据等待、队列等待、checkpoint 阻塞、异常重试

可以按以下结构说明:

  1. 当前 E2E step time 是多少。
  2. actor update 计算占比是多少。
  3. rollout / reward / ref / checkpoint 等非训练阶段占比是多少。
  4. rank 间 token 和 active time 是否均衡。
  5. 开启某特性后,减少的是哪一类等待。

5. 实验设计

5.1 Baseline

  • 关闭待验证特性。
  • 固定模型、数据、长度分布、卡数和并行策略。
  • 记录完整 DFX 指标。

5.2 单特性消融

  • 只开 dynamic batch。
  • 只开 TQ。
  • 只开 FullAsync。
  • 只开 one-step offset。
  • 只开 mooncake checkpoint。

5.3 组合特性

  • FullAsync + TQ。
  • dynamic batch + SP / CP。
  • inference serving + FullAsync。
  • checkpoint 优化 + 长跑稳定性验证。

6. 交付图表

  • E2E timeline。
  • per-stage time breakdown。
  • per-rank utilization heatmap。
  • memory timeline。
  • feature ablation table。
  • MFU / SMA 与 stage idle time 的相关性图。

7. 待验证项

  • Ascend 平台 MFU / SMA 的准确采集方式。
  • GSPO 优化实践文档中的默认配置、适用硬件和实验口径。
  • 内部 vLLM 特性的开关、依赖和真实收益。
  • 不同长度分布下各特性收益是否稳定。

评论