Prhub

#29823 [HiCache]fix draft host pool allocator type

原始 PR 作者 huangtingwei9988 合并时间 2026-07-01 19:31 文件变更 1 提交数 1 评论 5 代码增减 +1 / -0

执行摘要

修复 draft host pool allocator 类型

修复 EAGLE draft KV HiCache 使用 Mooncake standalone 存储时的注册失败问题。PR body 中展示了错误日志:DRAFT_ALLOCATOR 为默认的 HostTensorAllocator,导致 Mooncake 注册返回 -1 错误。

建议合并。这是一行关键修复,虽然简单但解决了一个影响 HiCache 与 Mooncake 存储后端兼容性的回归。

讨论亮点

无审查评论,但两位 reviewer 均 approve,表明变更清晰且无争议。

实现拆解

  1. python/sglang/srt/mem_cache/kv_cache_builder.pymaybe_register_hicache_draft 函数中,构造 draft host pool 参数字典 kw 时新增 allocator_type=server_args.hicache_storage_backend 键值对。
  2. 该参数确保 draft host pool 使用与 target host pool 相同的 MooncakeHostTensorAllocator 而非默认的 HostTensorAllocator
  3. 变更仅一行,无其他文件改动。
文件 模块 状态 重要度
python/sglang/srt/mem_cache/kv_cache_builder.py 内存缓存 modified 4.75

关键符号

maybe_register_hicache_draft

关键源码片段

python/sglang/srt/mem_cache/kv_cache_builder.py core-logic

HiCache draft host pool 创建逻辑所在文件,本次修改在第 111 行增加 allocator_type 参数传递。

# python/sglang/srt/mem_cache/kv_cache_builder.py
# 函数 maybe_register_hicache_draft 中构造 draft host pool 参数字典的部分
primary = tree_cache.cache_controller.mem_pool_host
kw = dict(
    host_to_device_ratio=primary.size / pool.size,
    host_size=0,
    page_size=page_size,
    layout=server_args.hicache_mem_layout,
    # 关键修复:增加 allocator_type,确保 draft host pool 使用与 target host pool 相同的存储后端分配器
    # 例如 MooncakeHostTensorAllocator,否则默认 HostTensorAllocator 会导致 Mooncake 注册失败
    allocator_type=server_args.hicache_storage_backend,
)

评论区精华

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

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

风险与影响

风险极低。仅增加一个参数传递,不影响现有逻辑。但缺少对 Mooncake 未启用时 allocator_type 行为是否 fallback 的验证(已在 target pool 中处理)。

仅影响使用 HiCache + Mooncake 存储后端且启用 EAGLE draft 的配置。修复后 draft host pool 能正确在 Mooncake 中注册,避免缓存注册失败导致的运行时错误。

缺少测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论