# PR #41386 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[ROCm] ROCm7.2.2 + profiler fix + AITER 0.1.12.post2
- 合并时间：2026-05-05 02:07
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/41386

---

# 执行摘要

- 一句话：升级 ROCm 至 7.2.2，重建 CLR 修补 profiler
- 推荐动作：建议在后续 PR 中验证 hotfix 的安装路径，补充 `-DCMAKE_INSTALL_PREFIX`；执行 `apt-get clean` 或清理 list 缓存以优化镜像层；在升级到 ROCm 7.2.3 时及时移除临时 hotfix。此 PR 的稀疏检出 + 固定 commit 模式值得借鉴，适合用于上游修复未发布时的临时工单。

# 功能与动机

PR body 说明‘A combination of base libraries that works Including the profiler fix through rocm runtime’，旨在整合一组可用的基础库，使 profiler 修复通过 ROCm runtime 生效。提交信息也明确‘Bump ROCm to 7.2.2; rebuild CLR to fix profiling’。

# 实现拆解

1. **升级基础镜像与依赖版本 **（`docker/Dockerfile.rocm_base`）：将基础镜像标签 `BASE_IMAGE` 从 `rocm/dev-ubuntu-22.04:7.2.1-complete` 升级为 `7.2.2-complete`；将 `AITER_BRANCH` 从 `v0.1.10.post3` 升级为 `v0.1.12.post2`。同时移除 `pytorch/third_party/kineto` 的远程添加与 checkout 操作，因为 profiler 修复已迁移至 CLR。

2. **添加 torch profiler hotfix**（`docker/Dockerfile.rocm_base`）：通过 `git clone --filter=blob:none` 稀疏检出 `rocm-systems` 仓库的特定提交（`35e8c7bf8`），仅包含 `projects/hip` 和 `projects/clr`。然后利用 cmake 构建 CLR 并执行 `make install`，从而将上游 PR #5062 的修复应用到系统。该步骤标记为临时，预期在迁移至 ROCm 7.2.3 后移除。

3. **更新构建配置 **（`.buildkite/release-pipeline.yaml`）：将 `generate-rocm-wheels-root-index` 步骤中的 `VARIANT` 环境变量从 `rocm721` 修改为 `rocm722`，确保仓库索引的版本标签与实际镜像一致。

注意：cmake 命令中仅设置 `-DCMAKE_PREFIX_PATH='/opt/rocm/'`，未设置 `-DCMAKE_INSTALL_PREFIX='/opt/rocm/'`，可能导致 hotfix 无效（见评论区讨论）。

关键文件：
- `docker/Dockerfile.rocm_base`（模块 Docker 镜像；类别 infra；类型 infrastructure）: 主要变更文件：升级 ROCm 基础镜像，添加 CLR 重建 hotfix 修复 profiler，升级 AITER，移除 kineto patch
- `.buildkite/release-pipeline.yaml`（模块 CI 配置；类别 config；类型 configuration）: 更新 ROCm 发布管线的版本变量从 rocm721 到 rocm722

关键符号：未识别

## 关键源码片段

### `docker/Dockerfile.rocm_base`

主要变更文件：升级 ROCm 基础镜像，添加 CLR 重建 hotfix 修复 profiler，升级 AITER，移除 kineto patch

```dockerfile
# 升级 ROCm 基础镜像版本从 7.2.1 到 7.2.2
ARG BASE_IMAGE=rocm/dev-ubuntu-22.04:7.2.2-complete

# 升级 AITER 从 v0.1.10.post3 到 v0.1.12.post2
ARG AITER_BRANCH=v0.1.12.post2

# torch profiler hotfix for 7.2.2: 重建 CLR 并合并上游 PR #5062 的修复
# 此部分将在升级至 ROCm 7.2.3 后移除
RUN apt-get update && apt-get install -y rocm-llvm-dev
RUN pip install CppHeaderParser
RUN git clone --no-checkout --filter=blob:none https://github.com/ROCm/rocm-systems /tmp/rocm-systems && cd /tmp/rocm-systems && git sparse-checkout init --cone && git sparse-checkout set projects/hip projects/clr && git checkout 35e8c7bf8911862e5389509800e65fdf125412b3 && export CLR_DIR=/tmp/rocm-systems/projects/clr && export HIP_DIR=/tmp/rocm-systems/projects/hip && mkdir -p $CLR_DIR/build && cd $CLR_DIR/build && cmake -DHIP_COMMON_DIR=$HIP_DIR -DCMAKE_PREFIX_PATH=/opt/rocm/ -DCLR_BUILD_HIP=ON -DCLR_BUILD_OCL=OFF -DHIP_PLATFORM=amd .. && make -j$(nproc) && make install && rm -rf /tmp/rocm-systems
# 注意：Review 指出缺少 -DCMAKE_INSTALL_PREFIX=/opt/rocm/ 可能导致修复无效
# 同时建议在 apt-get 后清理 /var/lib/apt/lists/* 以优化镜像层

```

# 评论区精华

- **gemini-code-assist**指出 hotfix 的 cmake 命令缺少 `CMAKE_INSTALL_PREFIX`，默认安装到 `/usr/local`，而镜像的 `LD_LIBRARY_PATH` 优先搜索 `/opt/rocm`，因此系统仍会加载原始库，修复可能无效。同时建议将多个 RUN 合并以优化镜像层。

- **Bortlesboat**认可 hotfix 的实现模式（稀疏检出、固定 commit、清理临时目录），但注意到 `apt-get install` 后未清理 `/var/lib/apt/lists/*`，会导致镜像层缓存膨胀。鉴于临时性质认为可接受。

- CLR 重建 hotfix 可能因缺少 CMAKE_INSTALL_PREFIX 而无效 (correctness): PR 已合并，但作者未对此评论做公开回应或修改。hotfix 的有效性仍存疑。
- apt 缓存清理 (other): 确认问题但未修复，评论者认为可接受。

# 风险与影响

- 风险：
 - **Hotfix 可能无效**：如评论区指出，缺少 `CMAKE_INSTALL_PREFIX` 可能导致重建的库未被系统加载，profiler 修复未生效（影响 `docker/Dockerfile.rocm_base` 构建的镜像）。
 - **兼容性风险**：从 ROCm 7.2.1 升级到 7.2.2，以及 AITER 版本跳跃（0.1.10 → 0.1.12），可能引入未预期的行为改变，但 PR 应已通过内部和外部测试。
 - **技术债务**：hotfix 标记为临时，若忘记在 ROCm 7.2.3 升级时移除，将导致冗余的构建步骤和可能的冲突。
 - **镜像体积**：apt 缓存未清理导致 Docker 镜像层略大。
 - 影响：影响范围限定于 ROCm 平台的 CI/CD 构建环境和开发环境。最终用户无直接影响，但确保 ROCm 用户能正常使用 torch profiler 进行性能分析。影响程度中等，因为涉及整个 ROCm 基础镜像的依赖升级和构建流程调整。
 - 风险标记：Hotfix 可能无效 , 缺少 CMAKE_INSTALL_PREFIX, apt 缓存未清理 , 临时修复待移除

# 关联脉络

- 暂无明显关联 PR