Prhub

#23587 ci: fix cu129 wheel tagging + pipefail-abort in install script (follow-up to #23497)

原始 PR 作者 jasperjiaguo 合并时间 2026-04-24 05:52 文件变更 2 提交数 1 评论 2 代码增减 +11 / -15

执行摘要

修复 #23497 引入的 cu129 轮子标签缺失和安装脚本 pipefail 问题

PR #23497在sgl-kernel构建矩阵中恢复cu129后,H系列(cu129)测试机无法加载正确轮子。具体表现为#21985的CI中Install dependencies步骤因pipefail退出,且cu129构建的轮子缺少+cu129标签,导致脚本找不到匹配轮子而静默回退到主分支轮子。

作为#23497的跟进修复,本PR改动小但关键,建议审阅者关注pipefall调优模式的使用。修改内容合理且PR描述清晰,可直接合并。

实现拆解

  1. 修复轮子标签识别sgl-kernel/rename_wheels.sh):在detect_cuda_suffix()函数中添加12.9 → +cu129分支,确保cu129构建的轮子文件名包含+cu129后缀。

  2. 修复pipefail导致脚本提前退出scripts/ci/cuda/ci_install_dependency.sh):在轮子查找管道命令后添加|| true,使ls无匹配时返回空字符串而非退出码2,从而让后续的[ -z "$KERNEL_WHL" ]错误检查正常触发并输出清晰错误。

  3. 移除无标签轮子回退逻辑(同上脚本):删除#23497中添加的fallback逻辑,该逻辑允许安装不带CUDA标签的轮子,但这可能引入ABI不兼容或轮子被PyPI分支覆盖的隐患。现在仅允许版本号完全匹配+cuXYZ的轮子,否则显式报错。

文件 模块 状态 重要度
scripts/ci/cuda/ci_install_dependency.sh CI 脚本 modified 4.23
sgl-kernel/rename_wheels.sh 内核构建 modified 2.89

关键符号

detect_cuda_suffix

关键源码片段

scripts/ci/cuda/ci_install_dependency.sh infrastructure

修复安装脚本中 pipefall 导致的提前退出及移除潜在危险的无标签轮子回退逻辑

# KERNEL_WHL=$(ls ... 2>/dev/null | head -1) # 原代码,无匹配时 ls 返回 2 导致 set -e 退出
# `|| true` swallows `ls`'s exit-2-on-no-match so `set -o pipefail` doesn't abort the
# script before we reach the explicit error check.
KERNEL_WHL=$(ls sgl-kernel/dist/sglang_kernel-${SGL_KERNEL_VERSION_FROM_KERNEL}+${CU_VERSION}-cp310-abi3-manylinux2014_${WHEEL_ARCH}.whl 2>/dev/null | head -1 || true)
if [ -z "$KERNEL_WHL" ]; then
  echo "ERROR: No matching sgl-kernel wheel found ..."
  ls -alh sgl-kernel/dist/
  exit 1
fi

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

本PR仅涉及CI脚本,风险较低。主要风险:修改rename_wheels.sh可能影响其他CUDA版本(12.4/12.8/13.0)的轮子命名,但逻辑与原有分支一致;移除fallback后,如果仍有老旧分支构建无标签轮子,安装会失败,但这种情况应极少且已有明确错误提示。

影响范围:仅影响cu129(H20)测试机的CI流程,其他CUDA版本无行为变化。
影响程度:修复后cu129测试机能够正确识别和使用PR构建的sgl-kernel轮子,避免静默回退到主分支轮子导致的测试假阴性。

CI 脚本变更 非核心逻辑

关联 Issue

#21985 perf: eliminate attention DtoD copy by passing pre-allocated output to FA
#22392 perf: eliminate nvjet memset bubbles via CUTLASS FP8 GEMM
#23497 ci: build sgl-kernel wheels for both cu129 and cu130

完整报告

参与讨论