# PR #38238 完整报告

- 仓库：`vllm-project/vllm`
- 标题：Removed GPU state confirmation and cleanup steps.
- 合并时间：2026-04-04 04:11
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/38238

---

# 执行摘要
此 PR 移除了 AMD 硬件 CI 测试脚本中的 GPU 状态确认和重置逻辑，以适配 Kubernetes pod 环境。变更简化了 CI 流程，避免了在 Kubernetes 中因无法访问主机级 GPU 状态文件而导致的错误。风险在于非 Kubernetes 环境可能受影响，但鉴于明确的环境适配目标，变更被认为是必要且直接的。

# 功能与动机
移除 GPU 重置功能是因为在 Kubernetes pod 环境中不再适用。如 PR body 所述："In a Kubernetes environment, pods do not have access to the host-level /opt/amdgpu/etc/gpu_state file. GPU device lifecycle is managed by the AMD GPU device plugin and the kubelet -- resetting from within a pod is unsupported." 这解决了在 Kubernetes 中运行 CI 测试时因权限问题导致的失败。

# 实现拆解
仅修改一个文件：`.buildkite/scripts/hardware_ci/run-amd-test.sh`。

**删除内容概述：**

- `wait_for_clean_gpus()` 函数：通过轮询 `/opt/amdgpu/etc/gpu_state` 文件，检查 GPU 是否进入清洁状态，超时则报错。
- 脚本开头的 GPU 状态确认步骤：`echo "--- Confirming Clean Initial State"` 和 `wait_for_clean_gpus` 调用。
- 脚本中的 GPU 重置步骤：`echo "--- Resetting GPUs"`、`echo "reset" > /opt/amdgpu/etc/gpu_state` 和 `wait_for_clean_gpus` 调用。

**关键代码块（已删除）：**
```bash
wait_for_clean_gpus() {
  local timeout=${1:-300}
  local start=$SECONDS
  echo "--- Waiting for clean GPU state (timeout: ${timeout}s)"
  while true; do
    if grep -q clean /opt/amdgpu/etc/gpu_state; then
      echo "GPUs state is \"clean\""
      return
    fi
    if (( SECONDS - start >= timeout )); then
      echo "Error: GPUs did not reach clean state within ${timeout}s" >&2
      exit 1
    fi
    sleep 3
  done
}
```

# 评论区精华
review 中没有实质性技术讨论：
- Claude bot 和 Gemini bot 指出这是 fork 的 PR 且没有 review 评论。
- 两位人工 reviewer（AndreasKaratzas 和 khluu）直接批准，未留评论。

这表明变更被视为直接且必要，无争议。

# 风险与影响
**风险：**

1. **环境依赖变更**：在非 Kubernetes 环境（如裸机或虚拟机）中，移除 GPU 状态管理可能影响测试稳定性，如果 GPU 初始状态不干净，测试可能失败。
2. **缺少替代机制**：没有添加任何替代的 GPU 状态检查或重置逻辑，完全依赖 Kubernetes 环境管理。

**影响：**

1. **范围有限**：仅影响 AMD 硬件 CI 测试脚本，特别是运行在 Kubernetes pod 中的测试。
2. **流程简化**：减少了测试前的等待时间和潜在错误，提升 CI 效率。
3. **无核心影响**：对用户和 vLLM 核心系统无直接影响，纯属基础设施调整。

# 关联脉络
此 PR 是 vLLM 仓库中一系列 CI 和基础设施调整的一部分：
- 与 PR #38941（移除 AMD 镜像构建作业的 soft_fail 配置）和 PR #38585（修复 ROCm Dockerfile 中 pytest 钩子）同属 CI 优化，反映团队在完善 AMD/ROCm 测试流水线。
- 近期历史 PR 显示持续关注多平台支持（如 XPU、CPU、ROCm），此 PR 进一步适配 Kubernetes 环境，符合基础设施现代化趋势。
- 标签 `rocm`、`ci`、`infra`、`v1` 的复用表明它属于 v1 版本的 ROCm 相关基础设施维护。