# PR #33866 完整报告

- 仓库：`sgl-project/sglang`
- 标题：Fix sgl-deep-ep builder dependencies
- 合并时间：2026-08-07 07:30
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/33866

---

# 执行摘要

- 一句话：修复 sgl-deep-ep 构建依赖并升级 PyTorch 2.13
- 推荐动作：该 PR 规模小但定位精准，值得关注其构建依赖管理的细节：通过显式开启仓库和注册动态链接路径解决 CI 构建问题，以及用环境变量参数化版本断言避免漂移。对于维护发布流水线的工程师，建议精读 Dockerfile 的改动，可作为处理同类构建环境问题的参考。

# 功能与动机

PR body 明确指出根因：x86 CUDA 12.9 和 CUDA 13.0 构建器镜像禁用了 PowerTools，导致依赖安装失败；启用后又因 /usr/local/lib 不在动态链接器搜索路径而失败。同时 SGLang main 已升级到 PyTorch 2.13，为了保证 deep_ep_cpp 扩展的 ABI 兼容，构建、容器与 wheel 元数据必须使用完全一致的版本。

# 实现拆解

按步骤拆解：
1. **Dockerfile 依赖修复 **（docker/sgl-deep-ep.Dockerfile）：在 yum 安装命令中加入 `--enablerepo=powertools`，使 libfabric-devel 可解析；在 GDRCopy 安装后，将 `/usr/local/lib` 写入 `/etc/ld.so.conf.d/gdrcopy.conf` 并执行 `ldconfig`，保证 libgdrapi.so.2 在后续构建中可被发现。
2. **PyTorch 版本统一升级**：Dockerfile 的 `TORCH_VERSION` 参数从 2.11.0 改为 2.13.0；工作流 `.github/workflows/release-whl-deepep.yml` 的环境变量、脚本 `scripts/build_sgl_deepep.sh` 的默认值同步升级，确保构建链路与 wheel 元数据完全一致。
3. **冒烟断言参数化**：Dockerfile 末尾的版本校验改为从 `TORCH_VERSION` 环境变量读取，避免硬编码版本与构建参数漂移。

关键文件：
- `docker/sgl-deep-ep.Dockerfile`（模块 构建镜像；类别 infra；类型 infrastructure）: 核心修复文件：启用 PowerTools 仓库、注册 ldconfig、升级 TORCH_VERSION 到 2.13，并参数化版本断言。
- `.github/workflows/release-whl-deepep.yml`（模块 发布流程；类别 infra；类型 configuration）: 发布工作流中 TORCH_VERSION 环境变量升级到 2.13，与 Dockerfile 保持一致。
- `scripts/build_sgl_deepep.sh`（模块 构建脚本；类别 other；类型 configuration）: 构建脚本默认 TORCH_VERSION 升级到 2.13，确保命令行构建与工作流一致。

关键符号：未识别

## 关键源码片段

### `docker/sgl-deep-ep.Dockerfile`

核心修复文件：启用 PowerTools 仓库、注册 ldconfig、升级 TORCH_VERSION 到 2.13，并参数化版本断言。

```dockerfile
# 构建 GDRCopy 用户态库并注册到动态链接器：
# - 将 /usr/local/lib 写入 /etc/ld.so.conf.d/gdrcopy.conf
# - 运行 ldconfig 刷新缓存，使 libgdrapi.so.2 在镜像内可被发现
# - 校验头文件与动态库均已就绪
RUN git clone --depth 1 --branch "v${GDRCOPY_VERSION}" \
    https://github.com/NVIDIA/gdrcopy.git /opt/gdrcopy \
 && make -C /opt/gdrcopy CUDA="${CUDA_HOME}" prefix=/usr/local lib_install \
 && printf '%s\n' /usr/local/lib > /etc/ld.so.conf.d/gdrcopy.conf \
 && ldconfig \
 && test -f /usr/local/include/gdrapi.h \
 && ldconfig -p | grep -q libgdrapi

```

# 评论区精华

该 PR 无 review 评论或讨论线程。作者在 body 中提供了充分的验证证据，包括 CUDA 12.9/13.0 的 x86 与 aarch64 wheel 构建、twine check、在 B300 上的安装与 import 验证，以及 DeepEP 低延迟测试和 SGLang 测试结果。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险点：
 1) 启用 PowerTools 仓库可能引入额外的包版本差异，但该镜像仅用于构建 wheel，影响有限；
 2) /usr/local/lib 注册到 ldconfig 属于系统级变更，需确保不与镜像既有路径冲突，验证已通过；
 3) PyTorch 版本强制为 2.13.0，若上游依赖未同步更新可能导致构建失败，但作者已按跨仓库契约验证；
 4) 未从该 PR 触发 RC 发布流程，需要后续手动触发才能验证完整发布链路。
 - 影响：影响范围集中在 sgl-deep-ep 的构建与发布基础设施：修复了 x86 manylinux 构建器无法安装依赖的问题，使 CUDA 12.9/13.0 的 x86_64 和 aarch64 wheel 可正常产出；统一了 PyTorch 版本，避免 ABI 不兼容的 wheel 发布。对用户的影响是后续发布的 deep_ep 相关 wheel 将基于 PyTorch 2.13，与 SGLang main 对齐。对团队而言，这次修复打通了 x86 构建链路，降低了后续维护成本。
 - 风险标记：构建依赖修复 , PyTorch 版本升级 , ABI 兼容性

# 关联脉络

- PR #33498 Build and release sgl-deep-ep wheels: 本 PR 是针对该 PR 建立的构建与发布流程的依赖修复。
- PR #28836 Upgrade CUDA PyTorch stack to 2.13: 本 PR 将 DeepEP 构建升级到 PyTorch 2.13，以匹配 SGLang main 的依赖要求。