# PR #38184 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[ROCm][CI] Run Kernels Core Operation Test On MI325 and mitigate flakiness
- 合并时间：2026-04-06 09:42
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/38184

---

# 执行摘要
本 PR 通过在 MI325 平台启用内核核心操作测试，并跳过 MI250 上因量化精度问题导致的 flaky 测试，以提升 CI 稳定性而不放宽测试标准，属于 ROCm 平台测试优化的一部分。

# 功能与动机
动机源自 MI250 平台上 `test_fused_rms_norm_quant` 测试的失败，PR body 中详细列出了 16 个失败案例，原因为量化边界舍入导致的数值精度 flakiness。为避免降低测试容差，作者选择跳过受影响测试，并将默认测试环境切换至 MI325，确保其他测试正常运行。

# 实现拆解
- **平台检测模块**：在 `vllm/platforms/rocm.py` 中添加 `on_gfx90a()` 函数，检测 MI250 硬件，支持条件性逻辑。
- **测试逻辑模块**：在 `tests/kernels/core/test_layernorm.py` 中，通过 `on_mi250` 变量动态设置 `ADD_RESIDUAL` 参数：当在 MI250 平台时，仅包含 `True` 值，跳过 `False` 用例；否则保持原参数列表。
- **CI 配置模块**：修改 `.buildkite/test-amd.yaml`，调整代理池步骤：将 mi250_1 步骤设为 optional，mi325_1 步骤设为非 optional，优化测试执行优先级。

# 评论区精华
- **测试覆盖率争议**：gemini-code-assist[bot] 指出修改 `ADD_RESIDUAL` 会影响 `test_rms_norm` 的覆盖率，建议解耦参数列表。作者 micah-wil 回复 'that's fine'，表示接受此权衡。
- **导入保护与命名**：tjtanaa 强调需在非 ROCm 平台保护导入，避免错误，并建议重命名变量为 `on_mi250`。后续提交中已通过条件导入和重命名修正，如提交 `f0b8a00` 和 `ada50fc`。

# 风险与影响
- **风险**：测试覆盖率降低，可能掩盖 MI250 上的潜在量化 bug；平台检测逻辑若未正确保护，可能导致跨平台兼容性问题；跳过测试而非修复问题，可能延缓根本解决。
- **影响**：对用户无直接影响；系统层面减少 flaky 测试，提高 CI 可靠性；团队需关注测试策略的长期维护，并监控 MI250 硬件上的量化精度。

# 关联脉络
与近期历史 PR 紧密相关，如 #38501（ROCm 量化支持）、#38959（ROCm CI 修复）和 #32694（量化清理），共同推进 ROCm 平台和量化功能的测试与优化，显示 vLLM 项目在 AMD 硬件支持上的持续投入。