Prhub

#46386 Run DeepSeek-V2-Lite prefetch-offload eval eager on ROCm

原始 PR 作者 aarushjain29 合并时间 2026-06-25 01:25 文件变更 1 提交数 3 评论 1 代码增减 +8 / -0

执行摘要

ROCm 上强制 eager 模式避免 HIP graph 解码异常

MI300X 上 deepseek-v2-lite-prefetch-offload-accuracy 夜间测试约 1/5 服务器产生 ~45% 垃圾解码 token,导致 GSM8K 准确率低于 0.25 阈值。作者 bisect 发现 ROCm CLR 7.2.0/7.2.2/7.2.3 存在 HIP graph 捕获/回放回归(问题已在 ROCm/clr#279 跟踪),而 eager 模式始终正确。

该 PR 是典型的临时规避方案,逻辑简单清晰。值得关注的是其根因分析过程展示了如何通过 bisect 定位 HIP graph 回归,以及如何用环境检测实现平台差异化行为。维护者应注意在 ROCm 7.14 后回退。

讨论亮点

审核人 AndreasKaratzas 批准了该 PR,并提醒在 ROCm 7.14 发布后回退此更改。无其他 review 评论或争议。

实现拆解

  1. 检测 ROCm 平台:在 .buildkite/scripts/scheduled_integration_test/deepseek_v2_lite_prefetch_offload.sh 中,通过检查 rocm-smiamd-smi/opt/rocm 目录或 ROCM_PATH 环境变量判断是否为 ROCm 环境。
  2. 添加 --enforce-eager 标志:检测到 ROCm 时,向 EXTRA_ARGS 数组追加 --enforce-eager,使 vllm serve 命令在 ROCm 上强制使用 eager 模式,绕过 HIP graph 的回放问题。
  3. 添加注释与 TODO:在代码中添加注释说明原因和跟踪链接,并标记 TODO 要求在 ROCm 7.14 修复后恢复。
  4. 无其他变更:仅修改了一个测试脚本,未改动 vLLM 核心代码或 CUDA 相关路径。
文件 模块 状态 重要度
.buildkite/scripts/scheduled_integration_test/deepseek_v2_lite_prefetch_offload.sh 测试脚本 modified 4.33

关键源码片段

.buildkite/scripts/scheduled_integration_test/deepseek_v2_lite_prefetch_offload.sh test-coverage

唯一的变更文件,在 ROCm 环境下添加 `--enforce-eager` 标志以绕过 HIP graph 解码异常。

# ROCm 平台检测:优先使用常见命令或目录判断
# 详见 https://github.com/ROCm/clr/issues/279
# TODO(aarushjain29): ROCm 7.14 修复后移除此逻辑
if command -v rocm-smi &> /dev/null || command -v amd-smi &> /dev/null || [[ -d /opt/rocm ]] || [[ -n "${ROCM_PATH:-}" ]]; then
  echo "ROCm platform detected: adding --enforce-eager to avoid HIP-graph decode corruption"
  EXTRA_ARGS+=(--enforce-eager)
fi

该片段位于 EXTRA_ARGS 构建块内,随后与 vllm serve 命令合并,确保仅在 ROCm 上强制 eager 模式。

评论区精华

回退时机 other

审核人 AndreasKaratzas 提到 "Let's remember to revert this once 7.14 lands."

结论:PR 已合并,需要在 ROCm 7.14 发布后回退此变更。 · 已解决

风险与影响

低风险。变更仅作用于 ROCm 平台的测试脚本,且只在 ROCm 环境下生效,CUDA 路径完全不变。强制 eager 模式会降低解码吞吐量,但测试超时窗口仍然满足。主要风险是后续忘记回退,但代码中有明确的 TODO 注释。

影响范围极小:仅影响 DeepSeek-V2-Lite prefetch-offload 测试在 ROCm 平台的运行方式。eager 模式牺牲部分性能,但确保了准确率的确定性,修复了夜间测试的不稳定性。对其他模型、功能或平台无影响。

临时性修复 低风险

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论