vllm-project/vllm-ascend

[Contribution] 任务 #12:AscendStore 池化模块 UT 测试补充

Open

#10,659 opened on Jun 18, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)C++ (1,318 forks)github user discovery
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 测试,重点覆盖:

  1. 数据结构层中 ChunkedTokenDatabase 的多层 prepare_value_layerdecode_adaptor_prefill_pp 边界条件、ReqMeta.from_request_trackeris_last_chunk 与 bytes hashes 组合。
  2. 传输线程层中 KVCacheStoreRecvingThread/KVCacheStoreLayerRecvingThread 非零 tp_rank 的 key 轮转逻辑、线程 run() 实际执行流程、store 操作异常容错。
  3. 调度层中 build_connector_metascheduled_cached_reqs(decode/chunked 请求)路径、preempted→resumed 恢复流程、LookupKeyClient 异常处理。
  4. 工作层中 register_kv_caches 完整初始化、start_load_kv 同步路径、wait_for_layer_load/save_kv_layer/wait_for_saveretrieve_layer/store_layer 生成器迭代逻辑、lookup_scheduler
  5. 连接器层中 LookupKeyServer ZMQ 服务线程、requires_piecewise_for_cudagraph 类方法、kv_both 角色行为、use_layerwise=True 完整流程。
  6. 后端抽象层中 MemcacheBackend.set_deviceMmcDirect 枚举值验证、MooncakeBackend fabric memory 路径、各 Backend init 正常初始化 mock 验证。

验收标准

  1. 补充 config_data 层 UT,覆盖 ChunkedTokenDatabase.prepare_value_layer 多层(layer_id>0)场景、decode_adaptor_prefill_pp 多分区边界、ReqMeta.from_request_trackeris_last_chunk/bytes hashes/discard_partial_chunks=False 等组合场景,新增用例不少于 15 个。
  2. 补充 kv_transfer 层 UT,覆盖 KVCacheStoreRecvingThreadKVCacheStoreLayerRecvingThread 非零 tp_rank 的 key 轮转、线程 run() 方法实际执行(含 None 请求和异常处理)、store.put/get 异常容错,新增用例不少于 12 个。
  3. 补充 pool_scheduler 层 UT,覆盖 build_connector_metascheduled_cached_reqs 路径(decode 请求和 chunked 请求)、preempted→resumed 恢复流程、LookupKeyClient 超时/异常场景,新增用例不少于 10 个。
  4. 补充 pool_worker 层 UT,覆盖 register_kv_caches 完整初始化(含 MLA/sparse 模式)、start_load_kv 同步路径、wait_for_layer_load/save_kv_layer/wait_for_saveretrieve_layer/store_layer 生成器迭代逻辑、lookup_scheduler,新增用例不少于 15 个。
  5. 补充 ascend_store_connector 层 UT,覆盖 LookupKeyServer ZMQ 服务线程启动与请求处理、requires_piecewise_for_cudagraph 类方法、kv_both 角色行为、use_layerwise=True 完整 save/load 流程,新增用例不少于 10 个。
  6. 补充 backend 层 UT,覆盖 MemcacheBackend.set_deviceMmcDirect 枚举值验证、MooncakeBackend fabric memory 路径(ASCEND_ENABLE_USE_FABRIC_MEM=1)、各 Backend init 正常初始化 mock 验证,新增用例不少于 8 个。
  7. 所有新增测试通过 CI 流水线(smart-ut),无 lint 错误。
  8. 输出测试覆盖报告,记录每层新增用例数、覆盖的关键路径和边界场景。

对接人

@jyoung6652

认领状态

待认领

建议的替代/修复方案

请根据任务描述提交实现、测试或文档 PR,并在 PR 中关联本 issue 与 #9079;如实现过程中发现任务边界、使用指导或现有行为存在不合理之处,请同步补充说明和最小复现。

欢迎加入社区,感谢您对社区的贡献 🎉!

Contributor guide