vime 对 AMD Instinct GPU 的 ROCm 支持
vime 对 AMD Instinct GPU 的 ROCm 支持
vLLM 已将其 ROCm 支持集成到 vime(其强化学习 (RL) 框架)中,使得大规模 RL 后训练能够原生运行在 AMD Instinct MI300X 和 MI355X GPU 上。此次集成提供了一个经过验证的端到端流水线,包括一个预构建的容器,从而消除了从源码构建的需求。
vime 架构与设计
vime 基于 slime 框架,采用三阶段、解耦的训练-推理设计。它将 RL 过程分为三个不同的组件:
- Training (Megatron): 管理主训练循环、参数更新以及向 rollout 端同步权重。
- Rollout (vLLM + Router): 处理推理采样,根据奖励或验证器信号生成训练样本。
- Data Buffer: 作为训练和 rollout 之间的桥梁,管理自定义的 rollout 逻辑和 prompt 注入。
AMD Instinct GPU 在 RL 中的硬件优势
RL 后训练是高度内存密集型的,因为它需要同时存储训练端权重 (Megatron 格式) 和推理端 KV caches (vLLM rollouts)。AMD Instinct GPU 针对这一特性进行了优化:
- 高 HBM 容量: MI300X 提供 192 GB 的 HBM3,而 MI355X 提供 288 GB。这种大容量减少了对激进张量并行 (tensor parallelism) 的需求,简化了拓扑结构并提高了集群利用率。
- 卓越的内存带宽: MI300X 提供超过 5 TB/s 的聚合带宽,MI355X 提供 8 TB/s。由于 RL rollouts 受内存带宽限制,更高的吞吐量降低了自回归 token 生成阶段的步长延迟。
- 原生生态系统集成: ROCm 的开源特性使 vime 能够继承现有的 vLLM rollout 栈,而无需单独的代码路径,充分利用了 PyTorch 和 vLLM 对 ROCm 的原生支持。
在 ROCm 上的技术实现
将 vime 引入 AMD 硬件涉及多个关键软件组件的集成:
Megatron-LM Backend
vime 使用了 Megatron-LM 的 ROCm 兼容分支。为了确保兼容性,实现了一个补丁来保护非 CUDA 构建版本中的 CUDA fused-kernel 初始化。该流水线支持在单个 GPU 上进行 HuggingFace 到 torch_dist 的 checkpoint 转换,并利用原生 PyTorch 路径进行梯度累积。
Colocated Weight Synchronization
在共存 (colocated) 模式下,Megatron 和 vLLM 共享同一个 GPU 池。vime 使用进程间通信 (IPC) 在每个优化器步长后将更新后的权重从 Megatron 同步到 vLLM。这在 ROCm 上通过 torch.cuda.get_device_properties(i).uuid 接口实现,该接口为路由提供了稳定且进程一致的设备 UUID。
资源管理与 Ray 集成
GPU 分配通过 HIP_VISIBLE_DEVICES 进行管理。vime 通过设置此变量以及 CUDA_VISIBLE_DEVICES 来确保 Megatron 训练 actor 与 vLLM 子进程之间的一致性。Ray 的 AMD GPU 管理器被配置为遵循这些掩码,并且系统需要提高文件描述符限制 (--ulimit nofile=1048576:1048576) 以大规模生成 actor workers。
MI355X 上的性能基准测试
在 MI355X GPU 上使用 Qwen3-8B 模型进行的测试显示了以下 100 个训练步长的结果:
- 吞吐量: 持续保持在约 4,100
tokens_per_gpu_per_second。随着策略学习到更可预测的输出,吞吐量呈上升趋势,从而允许 vLLM 进行更高效的批处理。 - Logprob 稳定性:
train_rollout_logprob_abs_diff稳定在 0.012 左右。训练与 rollout 对数概率之间如此低的差异表明权重同步成功,且与 NVIDIA 硬件上的结果相当。 - 奖励收敛: 使用
dapo-math-17k数据集,raw_reward从接近 0 上升到约 0.5–0.6,这标志着策略成功学会了偏好验证器所奖励的推理模式。
支持的功能与路线图
当前支持
- GRPO 训练
- 共存模式及异步(不相交 GPU 池)训练与 rollout
- Megatron-LM 训练后端和 vLLM rollout 后端
- 支持 Qwen3 Dense 和 MoE 模型
未来路线图
- 完整的 vLLM Router 和 PD (Prefill-Decode) 解耦支持
- FP8 流水线优化
- 针对 AMD MoE 工作负载的 R3 (Rollout Routing Replay)
- 异步训练的性能优化,以解决内存泄漏和 logprob 分歧问题
- 用于多智能体设置和多轮工具调用的 Agentic RL