Prhub

#36149 fix(xpu): read enable_deterministic_inference from the config bag

原始 PR 作者 ShangmingCai 合并时间 2026-08-24 13:56 文件变更 1 提交数 1 评论 2 代码增减 +2 / -1

执行摘要

修复 XPU 后端从配置袋读取确定性推理开关

test/registered/unit/test_chain_read_ratchet.py 在 main 分支上失败,报错显示 XPUAttentionBackend.init 通过 model_runner.server_args.enable_deterministic_inference 读取字段,但该路径返回的是原始 CLI 默认值,而非解析后的值。这源于 #29143 使用的旧拼写与配置袋迁移(#35907/#35910)之间的合并竞争。PR 指出其他所有注意力后端都已通过 get_exec().deterministic 读取该字段,XPU 是最后一个遗留点,也是 srt/ 中唯一对解析字段的借用记录链读取。

值得精读,因为这是一个典型的配置袋迁移遗留问题的修复,展示了如何在 SGLang 中正确读取解析后的配置值。对于维护注意力后端或涉及确定性推理的工程师很有参考价值。

讨论亮点

该 PR 无 review 评论。PR 描述中说明了变更的合理性:其他注意力后端(如 dsa_backend.py:316、flashattention_backend.py:320 等)均已使用 get_exec().deterministic,XPU 是最后一个遗留点。CI 中一次 rerun 测试 test_chain_read_ratchet.py 成功通过。

实现拆解

  1. 在 python/sglang/srt/layers/attention/xpu_backend.py 中,将 num_splits 的赋值从 model_runner.server_args.enable_deterministic_inference 改为 get_exec().deterministic.enable_deterministic_inference。
  2. 同时从 sglang.srt.runtime_context 导入 get_exec,以支持新的读取方式。
  3. 变更仅此一处,没有新增测试,因为现有 ratchet 测试即覆盖该行为,变更后测试转绿。
文件 模块 状态 重要度
python/sglang/srt/layers/attention/xpu_backend.py 注意力后端 modified 4.99

关键符号

XPUAttentionBackend.__init__

关键源码片段

python/sglang/srt/layers/attention/xpu_backend.py core-logic

这是唯一的变更文件,修复了 num_splits 的配置读取逻辑,从 model_runner.server_args 改为 get_exec().deterministic,解决了 ratchet 测试失败并保持与其他后端一致。

# python/sglang/srt/layers/attention/xpu_backend.py
# 该片段展示了 num_splits 的配置读取逻辑,从旧字段改为配置袋读取。# 从 runtime_context 导入 get_exec
from sglang.srt.runtime_context import (
    get_exec, # 新增导入,用于访问配置袋
    get_schedule,
    get_spec,
)# 在 __init__ 中设置 num_splits
self.num_splits = (
    1 if get_exec().deterministic.enable_deterministic_inference else 0
)
# 注释:num_splits == 0 时,内核使用启发式自动确定 split 数量。
# Split-KV 在非确定性分区上执行归约,因此启用确定性推理时固定 num_splits = 1,
# 以保持注意力的归约顺序固定,这与 fa3 后端行为一致。

评论区精华

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

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

风险与影响

本变更仅修改启动时的配置读取路径,不涉及热路径,且默认行为不变(默认关闭时两个拼写结果相同)。但当启用确定性推理时,XPU 行为会从以前可能未固定 num_splits 改变为固定为 1,可能带来性能影响(Split-KV 被禁用)。风险较低,但需要确认启用该标志时性能是否符合预期。

影响范围限于 XPU 注意力后端,主要影响使用确定性推理的用户。变更确保了确定性推理语义的正确性,修复了 ratchet 测试失败。对默认路径无影响。

配置读取路径变更 可能影响确定性推理性能

关联 Issue

#29143 Add intel_xpu to DETERMINISTIC_ATTENTION_BACKEND_CHOICES

完整报告

参与讨论