Prhub

#36639 [CI] Fix Q8KV8 sparse prefill test fixture

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

执行摘要

修复 Q8KV8 稀疏预填充测试夹具

PR body 指出,需要保持 Q8KV8 稀疏预填充夹具与 #35947 缓存构建器重构的兼容性。由于 #35947 改变了后端中缓存池的构建方式,测试夹具中未初始化的 token_to_kv_pool 导致测试失败。

值得快速浏览,了解测试夹具与后端重构的耦合关系。建议关注后续是否还有其他测试需要类似调整。

讨论亮点

Review 讨论较少,作者请求合并以解锁 CI,审查者 mmangkad 批准了变更。

实现拆解

  1. 定位问题:在 test_q8kv8_sparse_prefill_backend.py_make_sparse_prefill_case 函数中,测试创建了 token_to_kv_pool 对象但未将其赋值给后端。
  2. 修复方式:在 token_to_kv_pool 创建后,立即添加 backend.token_to_kv_pool = token_to_kv_pool 赋值语句。
  3. 验证:通过运行测试 test_q8kv8_sparse_prefill_backend.py 确认修复有效,测试通过。
文件 模块 状态 重要度
test/registered/kernels/ops/attention/test_q8kv8_sparse_prefill_backend.py 测试 modified 3.28

关键符号

_make_sparse_prefill_case

关键源码片段

test/registered/kernels/ops/attention/test_q8kv8_sparse_prefill_backend.py test-coverage

修复测试夹具,将 `token_to_kv_pool` 赋值给后端,以适配 #35947 的重构。

# 测试夹具中初始化后端池引用
from types import SimpleNamespace
import torch# 创建后端后,将 token_to_kv_pool 赋值给后端,以便后续逻辑使用
token_to_kv_pool = _TokenToKVPool(
    swa_key_buffer=quant_k_cache,
    extra_key_buffer=extra_k_cache,
    full_to_swa_index_mapping=torch.arange(
        total_slots, dtype=torch.int64, device=device
    ),
    page_size=page_size,
)
backend.token_to_kv_pool = token_to_kv_pool

评论区精华

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

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

风险与影响

该变更仅涉及测试夹具,不影响生产代码。风险极低,但应在 CI 中确保所有后端相关测试通过,防止回归。

影响范围仅限于 Q8KV8 稀疏预填充测试,使 CI 恢复通过。对用户和系统无直接影响。

测试仅适配,无生产代码变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论