Prhub

#25690 [Fix] Try to fix error caused by latest cutedsl packages

原始 PR 作者 Fridge003 合并时间 2026-05-19 07:51 文件变更 2 提交数 4 评论 3 代码增减 +21 / -4

执行摘要

修复新版 cutdsl 包导致的 CI 错误

根据 PR body 关联的 CI 运行日志(https://github.com/sgl-project/sglang/actions/runs/26055697810/job/76604443741)和 vLLM 类似 issue(https://github.com/vllm-project/vllm/pull/40082#issuecomment-4349406309),最新 cutdsl 包的 cu13 extras 会在安装时额外拉取 -libs-base 和 -libs-cu13 两个 wheel,两者写入相同路径但内容不同,导致 GPUModuleOp signature TypeError。

作为基础设施修复,建议合并。如果团队使用其他 CUDA 版本(如 cu12),需确认此类 extras 标记是否适用。

讨论亮点

无 review 评论,讨论仅限 CI 修复本身。

实现拆解

  1. 配置依赖改为带 extras 的版本:在 python/pyproject.toml 中,将 flashinfer_python==0.6.11.post1 改为 flashinfer_python[cu13]==0.6.11.post1,将 nvidia-cutlass-dsl==4.5.0 改为 nvidia-cutlass-dsl[cu13]==4.5.0
  2. 调整版本提取正则表达式:在 scripts/ci/cuda/ci_install_dependency.sh 中,修改 flashinfer_pythonflashinfer_cubin 的版本提取正则,支持可选 extras 部分(如 [cu13]),确保能正确匹配带 extras 的版本字符串。
  3. 新增函数 purge_cutlass_libs_base:该函数卸载冲突的 nvidia-cutlass-dsl-libs-base 包,然后从 pyproject.toml 提取 nvidia-cutlass-dsl 的版本,强制重装对应的 nvidia-cutlass-dsl-libs-cu13 包,确保 cu13 风格的绑定文件(如 _gpu_ops_gen.py)覆盖 base 风格的文件。
  4. 在安装流程中插入新步骤:在 main() 函数的安装顺序中,在 download_flashinfer_cache 之后、stabilize_flashinfer_jit_paths 之前调用 purge_cutlass_libs_base,确保依赖冲突在后续步骤前被解决。
文件 模块 状态 重要度
scripts/ci/cuda/ci_install_dependency.sh CI 脚本 modified 4.61
python/pyproject.toml 项目配置 modified 3.25

关键符号

purge_cutlass_libs_base

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

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

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

风险与影响

属于纯粹的基础设施修复,不涉及任何源码逻辑变更。风险极低:如果 cu13 extras 在未来版本中被移除,可能需要重新调整;CI 脚本中的 $PIP_UNINSTALL_CMD$PIP_CMD 变量需确保在 CI 环境中正确设置。无安全、性能、兼容性风险。

直接修复了因新版 cutdsl 包引入的 CI 失败问题,影响范围仅限于 CI 环境和安装了特定版本 nvidia-cutlass-dsl 的开发环境。用户端无感知,测试流程恢复稳定。

依赖版本兼容 CI 环境依赖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论