Prhub

#32076 Fix Inkling kernel imports after migration

原始 PR 作者 mmangkad 合并时间 2026-07-22 22:09 文件变更 2 提交数 1 评论 2 代码增减 +9 / -6

执行摘要

修复 Inkling JIT 内核迁移后的导入路径

PR #32045 将 Inkling 模型的 JIT 内核从 sglang.jit_kernel 迁移到 sglang.kernels.ops.model.inkling,但遗漏了 python/sglang/srt/models/inkling_common/kernels/comm.pypython/sglang/srt/models/inkling_common/attn.py 中的三处导入路径更新,导致 Inkling 模型无法启动。PR body 明确指出:"Inkling cannot launch after #32045 missed three imports while moving its JIT kernels to sglang.kernels.ops.model.inkling"。

推荐合并。该 PR 是此前 JIT 内核迁移工作(#32045)的补丁,修复了一个阻止 Inkling 模型启动的回归缺陷。变更简洁、验证充分,值得快速跟进。

讨论亮点

无相关 review 讨论。维护者 BBuf 快速批准 ("LGTM, thanks.")。

实现拆解

该 PR 通过两个文件的修改,将三个惰性导入路径从旧 JIT 内核位置迁移到新位置,并同步更新了文档字符串中的引用路径。

  1. python/sglang/srt/models/inkling_common/kernels/comm.py (核心修复)

    • _ar_jit() 函数中,将 from sglang.jit_kernel import inkling_all_reduce 改为 from sglang.kernels.ops.model.inkling import inkling_all_reduce
    • _ar_fused_jit() 函数中,将 from sglang.jit_kernel import inkling_ar_fused 改为 from sglang.kernels.ops.model.inkling import inkling_ar_fused
    • _ar_ssconv_jit() 函数中,将 from sglang.jit_kernel import inkling_ar_scattered_sconv 改为 from sglang.kernels.ops.model.inkling import inkling_ar_scattered_sconv
    • 同步更新了 ar_sconv_norm_fusable()scattered_ar_sconv_fusable() 的文档字符串中内核路径引用。
  2. python/sglang/srt/models/inkling_common/attn.py (文档更新)

    • _fused_attn_prologue_verify() 方法的文档字符串中,将 (jit_kernel/inkling_attn_prologue.py) 更新为 (kernels/ops/model/inkling/inkling_attn_prologue.py)。此时的导入语句本身已在 #32045 中正确更新,这里仅修正注释。

所有变更均为路径字符串替换,无逻辑改动。

文件 模块 状态 重要度
python/sglang/srt/models/inkling_common/kernels/comm.py Inkling 内核 modified 6.01
python/sglang/srt/models/inkling_common/attn.py Inkling 注意力 modified 4.2

关键符号

_ar_jit _ar_fused_jit _ar_ssconv_jit _fused_attn_prologue_verify

关键源码片段

python/sglang/srt/models/inkling_common/kernels/comm.py core-logic

修复核心,包含三处惰性导入路径更新和相关文档字符串修正。

# python/sglang/srt/models/inkling_common/kernels/comm.py@functools.cache
def _ar_jit():
    # 旧路径 : from sglang.jit_kernel import inkling_all_reduce
    # 新路径 : 迁移到 kernels.ops.model.inkling 下
    from sglang.kernels.ops.model.inkling import inkling_all_reduce
    return inkling_all_reduce@functools.cache
def _ar_fused_jit():
    # 旧路径 : from sglang.jit_kernel import inkling_ar_fused
    from sglang.kernels.ops.model.inkling import inkling_ar_fused
    return inkling_ar_fuseddef _ar_ssconv_jit():
    # 旧路径 : from sglang.jit_kernel import inkling_ar_scattered_sconv
    from sglang.kernels.ops.model.inkling import inkling_ar_scattered_sconv
    return inkling_ar_scattered_sconv
python/sglang/srt/models/inkling_common/attn.py documentation

更新文档字符串中内核路径引用,与 comm.py 中的导入保持文档一致。

# python/sglang/srt/models/inkling_common/attn.pydef _fused_attn_prologue_verify(self, q, k, v, forward_batch, log_scaling_tau=None):
    # 旧文档 : (jit_kernel/inkling_attn_prologue.py)
    # 新文档 : (kernels/ops/model/inkling/inkling_attn_prologue.py)
    """Fused target-verify {k/v sconv + save_windows + qk-norm (+ KV store)}
    (kernels/ops/model/inkling/inkling_attn_prologue.py); returns
    ``(q, k, v, did_store)``.
    ...
    """
    from sglang.kernels.ops.model.inkling.inkling_attn_prologue import (
        inkling_attn_prologue_verify,
    )
    # ...

评论区精华

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

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

风险与影响

低风险。变更仅为导入路径字符串修改和文档字符串更新,不涉及任何逻辑或语义变更。核心风险在于是否遗漏了其他文件中的类似导入(但 PR body 确认已覆盖所有遗漏处)。

直接影响 Inkling 模型的可启动性:修复后,Inkling 模型能正常加载其自定义全规约、注意力前导等 JIT 内核。对其他模型无影响。无用户可见的行为变化。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论