Prhub

#21246 [Fix] Try to fix nvcc compilation error

原始 PR 作者 DarkSharpness 合并时间 2026-03-26 10:59 文件变更 7 提交数 5 评论 16 代码增减 +75 / -9

执行摘要

修复 nvcc 编译错误并扩展多 GPU JIT 内核测试覆盖。

根据 PR body 提供的 CI 失败链接(https://github.com/sgl-project/sglang/actions/runs/23450497021/job/68226180356?pr=21219#step:5:312),修复由内部编译器 bug 引起的 nvcc 编译错误。

建议关注编译错误修复的细节,特别是 C++ 代码变更,以确保在其他编译器环境下无类似问题。同时,验证新增多 GPU 测试的正确性和效率。

讨论亮点

Review 中无评论,仅由 BBuf 批准合并,表明变更已被接受且无争议。

实现拆解

实现分为三部分:

1) 核心修复:在 custom_all_reduce.cuh 中将结构绑定改为显式 get 方法调用,避免 nvcc 编译错误;在 all_reduce.py 中添加 __slots__ 解决 TVM 对象字典冲突。
2) CI 扩展:在 nightly-test-nvidia.ymlpr-test-jit-kernel.yml 中新增 8-GPU H200 测试作业,用于多 GPU JIT 内核测试。
3) 测试和文档更新:修改 test_custom_all_reduce.py 的 CI 注册,更新 test/README.mdtest/run_suite.py 以反映新测试套件。

文件 模块 状态 重要度
python/sglang/jit_kernel/include/sgl_kernel/distributed/custom_all_reduce.cuh JIT 内核 modified 8.0
python/sglang/jit_kernel/all_reduce.py JIT 内核 modified 5.0
.github/workflows/pr-test-jit-kernel.yml CI/CD modified 6.0

关键符号

CustomAllReduceBase::setup ( 在 custom_all_reduce.cuh 中 ) CustomAllReduceObjReal.__init__ ( 在 all_reduce.py 中 )

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

评论区精华

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

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

风险与影响

风险点包括:

1) 编译错误修复可能未覆盖所有编译器版本或场景,需验证跨环境兼容性;
2) 新增多 GPU 测试作业可能增加 CI 执行时间和资源消耗;
3) TVM 对象 slots 更改可能影响序列化或反射功能。

影响范围:

1) 对开发者:修复编译错误,避免开发中断;扩展多 GPU 测试,提升代码质量。
2) 对系统:CI 测试覆盖更全面,可能增加测试稳定性。
3) 对用户:透明,不影响运行时性能。

编译错误修复风险 CI 配置变更 测试覆盖扩展

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论