Prhub

#36929 Update CUDA 13.4 image to flashinfer 0.6.18rc10, cutedsl 4.8. Fix sgl- wheel unpinning

原始 PR 作者 trevor-m 合并时间 2026-08-29 08:52 文件变更 1 提交数 2 评论 0 代码增减 +27 / -13

执行摘要

更新 cu134 镜像依赖,修复 sgl- wheel 固定问题

PR 动机明确:一是修复本地构建的 sgl-* wheel 被 pip 安装版本替换的问题;二是升级依赖以支持新硬件和 JIT 缓存。具体地,FlashInfer 0.6.18 为 CUDA 13.4 提供了 JIT 缓存,cutedsl 4.8 支持 sm_107 架构,因此需要更新镜像中的依赖版本。

该 PR 是基础设施调整,值得关注其解决 wheel 版本冲突的思路,以及如何通过环境变量和 sed 逻辑管理依赖版本。

讨论亮点

无 review 评论,但 Fridge003 已批准该 PR。

实现拆解

本 PR 仅修改 docker/Dockerfile.cu134 文件,具体变更如下:

  1. 移除对 cutedsl 4.6.2 的架构环境变量设置:删除了 CUTE_DSL_ARCHCUTE_EXPERIMENTAL_DSL_ARCH 的环境变量设置,因为旧版本 cutedsl 没有 sm_107 架构,需要设置这些变量才能运行,而新版本 4.8 已经原生支持 sm_107,不再需要。
  2. 更新依赖版本参数:将 FLASHINFER_VERSION 从 0.6.17 更新为 0.6.18rc10,新增 CUTLASS_DSL_VERSION=4.8.0.dev0 参数,并默认启用 INSTALL_FLASHINFER_JIT_CACHE=1
  3. 修改 pyproject.toml 的 sed 逻辑:在 CUDA 版本为 13.4.0 时,现在会将 flashinfer_python[cu13]==* 替换为指定的 FLASHINFER_VERSION,而不是直接解除版本固定。同时删除了注释中关于 sgl-* wheel 的说明,因为现在不再解除版本固定,本地构建的 wheel 会保持其版本。
  4. 新增对 CUTLASS_DSL_VERSION 的处理:在安装 cutedsl 时,使用指定的版本号,而不是通过 pip install 自动解析。
文件 模块 状态 重要度
docker/Dockerfile.cu134 Dockerfile modified 4.43

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

评论区精华

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

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

风险与影响

主要风险在于 Dockerfile 的 sed 命令是否准确匹配了 pyproject.toml 中的版本模式,如果版本号模式不匹配,可能导致安装失败。此外,升级 cutedsl 到 dev 版本(4.8.0.dev0)可能存在稳定性风险,但鉴于这是为支持 sm_107 架构的必要升级,风险可控。

影响范围仅限于使用 CUDA 13.4 镜像的部署环境,主要是依赖版本升级和 wheel 固定策略的调整,不会影响其他平台。对于依赖该镜像的用户,升级后 FlashInfer 和 cutedsl 的版本会发生变化,可能影响相关功能的稳定性,但整体可控。

缺失测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论