vllm-project/vllm-ascend
View on GitHub[Contribution] 任务 #12:AscendStore 池化模块 UT 测试补充
Open
#10,659 opened on Jun 18, 2026
help wanted
Repository metrics
- Stars
- (2,180 stars)
- PR merge metrics
- (Avg merge 4d 5h) (559 merged PRs in 30d)
Description
在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。
📚 任务问题描述
任务描述
该任务拆分自 #9079,任务 ID:#12。
AscendStore 是 vllm-ascend 池化场景的核心模块,负责 KV Cache 的分布式存储与传输。该模块分为 6 个子层:数据结构层(config_data)、传输线程层(kv_transfer)、调度层(pool_scheduler)、工作层(pool_worker)、连接器层(ascend_store_connector)、后端抽象层(backend)。当前已有 UT 测试覆盖率约 50%~70%,存在大量未覆盖的关键路径和边界场景。
本任务需要针对 6 个子层补充 UT 测试,重点覆盖:
- 数据结构层中
ChunkedTokenDatabase的多层prepare_value_layer、decode_adaptor_prefill_pp边界条件、ReqMeta.from_request_tracker的is_last_chunk与 bytes hashes 组合。 - 传输线程层中
KVCacheStoreRecvingThread/KVCacheStoreLayerRecvingThread非零tp_rank的 key 轮转逻辑、线程run()实际执行流程、store 操作异常容错。 - 调度层中
build_connector_meta的scheduled_cached_reqs(decode/chunked 请求)路径、preempted→resumed 恢复流程、LookupKeyClient异常处理。 - 工作层中
register_kv_caches完整初始化、start_load_kv同步路径、wait_for_layer_load/save_kv_layer/wait_for_save、retrieve_layer/store_layer生成器迭代逻辑、lookup_scheduler。 - 连接器层中
LookupKeyServerZMQ 服务线程、requires_piecewise_for_cudagraph类方法、kv_both角色行为、use_layerwise=True完整流程。 - 后端抽象层中
MemcacheBackend.set_device、MmcDirect枚举值验证、MooncakeBackendfabric memory 路径、各 Backend init 正常初始化 mock 验证。
验收标准
- 补充 config_data 层 UT,覆盖
ChunkedTokenDatabase.prepare_value_layer多层(layer_id>0)场景、decode_adaptor_prefill_pp多分区边界、ReqMeta.from_request_tracker的is_last_chunk/bytes hashes/discard_partial_chunks=False等组合场景,新增用例不少于 15 个。 - 补充 kv_transfer 层 UT,覆盖
KVCacheStoreRecvingThread和KVCacheStoreLayerRecvingThread非零tp_rank的 key 轮转、线程run()方法实际执行(含 None 请求和异常处理)、store.put/get 异常容错,新增用例不少于 12 个。 - 补充 pool_scheduler 层 UT,覆盖
build_connector_meta的scheduled_cached_reqs路径(decode 请求和 chunked 请求)、preempted→resumed 恢复流程、LookupKeyClient超时/异常场景,新增用例不少于 10 个。 - 补充 pool_worker 层 UT,覆盖
register_kv_caches完整初始化(含 MLA/sparse 模式)、start_load_kv同步路径、wait_for_layer_load/save_kv_layer/wait_for_save、retrieve_layer/store_layer生成器迭代逻辑、lookup_scheduler,新增用例不少于 15 个。 - 补充 ascend_store_connector 层 UT,覆盖
LookupKeyServerZMQ 服务线程启动与请求处理、requires_piecewise_for_cudagraph类方法、kv_both角色行为、use_layerwise=True完整 save/load 流程,新增用例不少于 10 个。 - 补充 backend 层 UT,覆盖
MemcacheBackend.set_device、MmcDirect枚举值验证、MooncakeBackendfabric memory 路径(ASCEND_ENABLE_USE_FABRIC_MEM=1)、各 Backend init 正常初始化 mock 验证,新增用例不少于 8 个。 - 所有新增测试通过 CI 流水线(smart-ut),无 lint 错误。
- 输出测试覆盖报告,记录每层新增用例数、覆盖的关键路径和边界场景。
对接人
@jyoung6652
认领状态
待认领
建议的替代/修复方案
请根据任务描述提交实现、测试或文档 PR,并在 PR 中关联本 issue 与 #9079;如实现过程中发现任务边界、使用指导或现有行为存在不合理之处,请同步补充说明和最小复现。
欢迎加入社区,感谢您对社区的贡献 🎉!