Prhub

#36465 [Kernel] Declare the PyTorch ABI dependency in sglang-kernel wheels

原始 PR 作者 kuma-loong 合并时间 2026-08-27 06:24 文件变更 1 提交数 1 评论 0 代码增减 +2 / -2

执行摘要

sglang-kernel 声明 PyTorch ABI 依赖,修复版本组合不兼容。

sglang-kernel 包含针对特定 PyTorch C++ ABI 编译的原生扩展,但 wheel 元数据未声明对 PyTorch 的运行时依赖,导致解析器可安装不兼容组合(如 sglang-kernel 0.4.6.post1 与 PyTorch 2.11.0),导入时出现未解析符号错误。此问题在 issue #36462 中报告,并附有复现步骤和 ABI 映射表。

值得阅读,虽是简单元数据修改,但解决了真实的安装兼容性问题,并且为其他平台(CPU/ROCm/MUSA)提供了分平台声明依赖的参考。

讨论亮点

无讨论,评审人 Fridge003 直接批准。

实现拆解

  1. 修改 python/sglang/kernels/aot/pyproject.toml[build-system] 部分,将 torch>=2.8.0 改为 torch==2.13.0,确保隔离构建环境使用与 CUDA 发布工作流一致的 PyTorch ABI。
  2. 修改 [project] 部分的 dependencies,从空列表改为 ["torch==2.13.0"],使生成的 wheel 元数据声明运行时依赖,阻绝不兼容版本组合。
  3. 该变更仅影响 CUDA 包配置,CPU、ROCm、MUSA 使用独立构建配置,需各自声明 ABI 要求;由于只是元数据改动,不涉及运行代码,故未添加测试。
文件 模块 状态 重要度
python/sglang/kernels/aot/pyproject.toml 内核包 modified 3.65

关键源码片段

python/sglang/kernels/aot/pyproject.toml configuration

核心变更文件,声明 sglang-kernel 对 PyTorch 的 ABI 依赖,修复安装兼容性问题。

[build-system]
requires = [
  "scikit-build-core>=0.10",
  "torch==2.13.0", # 固定构建隔离环境的 PyTorch ABI,避免解析器选择不同版本
  "wheel",
]
build-backend = "scikit_build_core.build"[project]
name = "sglang-kernel"
version = "0.4.6.post1"
dependencies = ["torch==2.13.0"] # 声明运行时依赖,使安装元数据与构建 ABI 一致

评论区精华

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

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

风险与影响

变更将 torch 依赖固定为 2.13.0,可能导致依赖解析器在已有其他版本 torch 的环境中回溯或拒绝安装,但这是预期的兼容性约束。对于非 CUDA 构建不受影响。由于未进行完整 CUDA wheel 构建验证,存在构建环境差异的潜在风险,但元数据校验已通过。

影响范围限于 sglang-kernel 的 CUDA wheel 包安装元数据。用户将从更可靠的依赖解析中受益,避免之前因 ABI 不匹配导致的导入失败。对现有运行代码无影响。

固定版本可能引起依赖冲突 未进行完整构建验证

关联 Issue

#36462 [Bug] sglang-kernel wheels omit required PyTorch ABI dependency metadata

完整报告

参与讨论