Prhub

#34254 [NPU] Modified kernel tag version to 8.10

原始 PR 作者 huangxiaojun15 合并时间 2026-08-10 19:40 文件变更 3 提交数 3 评论 5 代码增减 +3 / -3

执行摘要

NPU 内核包 tag 更新至 2026.8.10

PR body 原文:“Update the tag version from 7.24 to 8.10 to align with the latest release version.” 即让 NPU 场景使用的 sgl-kernel-npu 预编译内核包与官方最新 Release 对齐,避免 CI 与发布镜像继续使用旧版内核。需要指出:body 中写的 7.24 与实际补丁不一致,真实改动是 2026.7.27 → 2026.8.10。

值得快速浏览而非精读。可作为 NPU 发布流程中“CI 与镜像依赖版本同步”的典型案例:三处 tag 必须保持一致。阅读时可留意版本号表述不一致(body 7.24、评论 7.27、实际 2026.7.27)对后续追溯的影响,以及是否应把发行版本集中到单一配置源或增加自动化校验。

讨论亮点

唯一的 review 评论来自作者本人的 self-review,在 .github/workflows/release-docker-npu.yml 第 1 行注明 “Update the tag version from 7.27 to 8.10”,与 PR body 中 “7.24 → 8.10” 的表述不一致;结合补丁内容可确认实际版本为 2026.7.27 → 2026.8.10,body 中的 7.24 为笔误。该差异未被其他 reviewer 讨论或要求修正,合并时以代码为准。

实现拆解

  1. 更新正式发行镜像构建参数:在 .github/workflows/release-docker-npu.ymlbuild-args 中,将 SGLANG_KERNEL_NPU_TAG2026.7.27 改为 2026.8.10,同时保留 CANN_VERSIONDEVICE_TYPESGLANG_TAG 等参数。
  2. 同步更新 nightly 发行镜像:在 .github/workflows/release-docker-npu-nightly.yml 中做相同修改,保证每日构建与正式发布使用同一内核版本。
  3. 同步更新 CI 依赖安装:在 scripts/ci/npu/npu_ci_install_dependency.sh 中把 SGLANG_KERNEL_NPU_TAG 变量改为 "2026.8.10",该变量用于拼接 GitHub Release 下载 URL 与 zip 包名。
  4. 配套测试与验证:无新增测试。PR body 声明不涉及精度与性能测试;实际有效性依赖新 tag 的 Release 存在且与当前环境(py311、CANN 9.0.0)匹配。
文件 模块 状态 重要度
.github/workflows/release-docker-npu.yml 构建流水线 modified 2.95
.github/workflows/release-docker-npu-nightly.yml 构建流水线 modified 2.55
scripts/ci/npu/npu_ci_install_dependency.sh 依赖安装 modified 2.95

关键源码片段

.github/workflows/release-docker-npu.yml configuration

正式 NPU 发行镜像的构建配置,build-args 中 SGLANG_KERNEL_NPU_TAG 直接决定镜像内安装的 sgl-kernel-npu 内核包版本,是本次升级的核心入口。

# .github/workflows/release-docker-npu.yml
# NPU 发行镜像构建:通过 build-args 注入 sgl-kernel-npu 的版本 tag。
# 该值与 scripts/ci/npu/npu_ci_install_dependency.sh 中的 SGLANG_KERNEL_NPU_TAG 必须保持一致,
# 否则 CI 与发布镜像会使用不同版本的内核包。
build-args: |
  SGLANG_KERNEL_NPU_TAG=2026.8.10
  CANN_VERSION=${{ matrix.cann_version }}
  DEVICE_TYPE=${{ matrix.device_type }}
  SGLANG_TAG=${{ steps.version.outputs.version }}
scripts/ci/npu/npu_ci_install_dependency.sh configuration

NPU CI 依赖安装脚本通过该 tag 拼接下载 URL 并解压预编译内核包,直接影响 CI 环境能否获得新版本内核,是 CI 侧的关键修改点。

# scripts/ci/npu/npu_ci_install_dependency.sh
# 指定 sgl-kernel-npu 预编译包的 Release tag,升级到 2026.8.10 以对齐最新发布版本。
# 该变量会被拼接进下载 URL 与 zip 包名,因此必须与 GitHub Releases 中实际存在的 tag 完全一致,
# 同时需匹配当前 CI 环境(py311、CANN 9.0.0、DEVICE_TYPE 与架构)。
SGLANG_KERNEL_NPU_TAG="2026.8.10"# 下载并解压对应 tag 的预编译内核包
mkdir sgl-kernel-npu
(cd sgl-kernel-npu && wget "${GITHUB_PROXY_URL:=""}https://github.com/sgl-project/sgl-kernel-npu/releases/download/${SGLANG_KERNEL_NPU_TAG}/sgl-kernel-npu-${SGLANG_KERNEL_NPU_TAG}-torch${PYTORCH_VERSION}-py311-cann9.0.0-${DEVICE_TYPE}-$(arch).zip" \
  && unzip ./sgl-kernel-npu-${SGLANG_KERNEL_NPU_TAG}-torch${PYTORCH_VERSION}-py311-cann9.0.0-${DEVICE_TYPE}-$(arch).zip)

评论区精华

版本号表述不一致:body 写 7.24,评论写 7.27 question

作者在 PR body 中写“从 7.24 更新到 8.10”,随后对 `.github/workflows/release-docker-npu.yml` 发表 self-review 评论“Update the tag version from 7.27 to 8.10”,实际补丁内容为 2026.7.27 → 2026.8.10。

结论:没有引发技术讨论;合并时以代码为准,即 2026.7.27 → 2026.8.10,body 中的 7.24 属于笔误。 · 已解决

风险与影响

  1. 外部 Release 可用性风险:npu_ci_install_dependency.sh 会直接下载 sgl-kernel-npu-2026.8.10-...zip,若该 Release tag 尚未发布或包体损坏,NPU CI 将整体失败;两个 Docker workflow 的 build-args 同样会在镜像构建阶段因拉取失败而中断。
  2. 版本同步维护风险:CI 脚本与两个 workflow 共 3 处 tag 需要人工同步修改,本次 PR 已覆盖全部 3 处,但后续升级仍依赖人工,缺少自动化校验或单一配置源。
  3. 兼容性风险:新内核包若依赖更高的 CANN 版本或改变算子行为,可能影响 NPU 精度与性能;PR 未提供相关验证,属纯 tag 升级,风险较低。

影响范围集中在 NPU 通道:日常与 nightly 的 NPU Docker 镜像发布,以及 NPU CI 的依赖安装阶段。影响程度中等偏低——新 tag 可用时对用户无感知;若新 tag 不可用,将阻断 NPU 镜像发布与 CI 流水线。对团队而言,NPU 维护者需确认 2026.8.10 的 sgl-kernel-npu Release 与当前 CANN、设备组合的兼容性,并保持 CI 与镜像两处版本引用一致。

依赖外部 Release tag 版本号表述不一致 CI 与镜像版本人工同步

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论