已合并
【refactor】: 删除dflow中废弃的KvCacheManager #3928
【refactor】: 删除dflow中废弃的KvCacheManager #3928
已合并
lining23666创建于 7月8日
lining23666成员
7月8日

Pull Request

描述

KvCacheManager 整个类的写入端从未连接到任何调用者:

  1. SetDecoderKvCache 从未被调用,导致 decoder_kv_caches_ 始终为空,GetDecoderKvCache() 的 3 处调用均为越界访问(UB)
  2. SaveKvCacheForPrompt/SaveKvBlocksTensor/InitBlockTensors 等写入方法均从未被调用,导致 req_id_to_cache_id_/kv_blocks_tensors_ 等成员变量永远为空,读取端要么 no-op 要么越界 UB

删除整个 KvCacheManager 类及相关代码:

  • 删除 kv_cache_manager.hkv_cache_manager.cpp(整个类,含 17 个方法 + 所有成员变量)
  • send_state.cpp: 删除 QueryPromptKvCache 的 else 分支、CheckKvCacheManagerReq 方法、ReleaseKvCacheForPrompt 的 else 分支
  • send_state.h: 删除 CheckKvCacheManagerReq 声明
  • llm_comm_entity.cpp: 删除 GetRecvAddrsCheckSyncKvMetaInfoQueryKvBlocksTensors 调用分支
  • UT/ST 测试文件: 清理 #include "llm_common/kv_cache_manager.h"

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

  1. 编译 dflow 包:bash build.sh --dflow,确认修改文件在 -Wall -Wextra -Werror 下编译无错误
  2. 运行 UT:ut_built_in_flow_func,92 个用例全部 PASSED
  3. 运行 ST:st_built_in_flow_func,73 个用例全部 PASSED

核对清单

其他信息

KvCacheManager 中存活方法的数据流分析表明:所有写入端方法(SaveKvCacheForPromptSaveKvBlocksTensorAddKvCacheShrinkKvCacheForPrefix 等)均从未被调用,导致读取端方法(QueryPromptKvCacheQueryKvBlocksTensorsReleaseKvCacheForPrompt)因数据源为空而实际为 no-op 或 UB。整个类无实际功能,全部删除。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 lining23666 的贡献)
Llining23666成员
7月8日 创建了 pull request,commit a964b551
atomgit-bot
atomgit-bot
7月8日 评论:

变更摘要

本次 PR 旨在清理 dflow 模块中 decoder KV cache 的废弃代码。由于 SetDecoderKvCache 从未被调用,导致 decoder_kv_caches_ 始终为空,GetDecoderKvCache() 的三处调用均存在越界访问的未定义行为。变更从 KvCacheManager 类中彻底移除了与 decoder KV cache 相关的所有方法声明/定义、成员变量及析构清理逻辑,并同步删除了 LlmCommEntity 中的三个调用点。

主要改动

  • 移除 KvCacheManager 中 8 个 decoder KV cache 方法: 在 kv_cache_manager.hkv_cache_manager.cpp 中删除了 QueryDecoderKvCacheSaveDecoderKvCacheReleaseDecoderKvCacheReleaseDecoderKvCachesSetDecoderKvCacheGetDecoderKvCacheClearDecoderKvCacheGetDecoderKvCacheCount 的声明与定义。
  • 移除 KvCacheManager 中 2 个 decoder 相关成员变量: 删除了 decoder_kv_caches_std::vector<std::shared_ptr<FlowMsg>>)和 decoder_req_to_kv_cache_std::unordered_map),并将 mutex_ 的注释从 "decoder and prompt kv map" 修正为 "prompt kv map"。
  • 精简 KvCacheManager 析构函数: 在 ~KvCacheManager() 中移除了 ClearDecoderKvCache() 调用及 decoder_req_to_kv_cache_.clear() 清理语句,仅保留 ClearPromptKvCache()kv_blocks_tensors_.clear()
  • 删除 LlmCommEntity 中 3 处 decoder KV cache 调用点: 在 llm_comm_entity.cppReceiveKvCacheGetRecvAddrsCheckSyncKvMetaInfo 三个函数中,移除了基于 !enable_paged_attention_ 条件分支内对 KvCacheManager::GetInstance().GetDecoderKvCache()SaveDecoderKvCache() 的调用代码。
likedislike
不准确?
atomgit-bot
atomgit-bot
7月8日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
CANN-robotCANN-robot成员
7月8日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月8日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/ge zhanj, xchu42, stevenaw0 (3/2) zhanj (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

lining23666, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
7月8日 将yangyongqiang0606,kobemini,tangqunzhang,xchu42,hugo111,fu-jun2,depeng1994,wqtshg_wt,peiyang,shengnan666,zhangfan_hanq,zhanj,zhujingjing,Mexyy,wangxiaotian995,stevenaw0,yuht9设为评审人
CANN-robotCANN-robot成员
7月8日 将yangyongqiang0606,kobemini,tangqunzhang,xchu42,hugo111,fu-jun2,depeng1994,wqtshg_wt,peiyang,shengnan666,zhangfan_hanq,zhanj,zhujingjing,Mexyy,wangxiaotian995,stevenaw0,yuht9设为审查人
lining23666成员
7月8日 评论:

compile

likedislike
Llining23666成员
7月8日 update merge request[project id: 8824148, iid: 3928, commit_id: 11a2d2a5316527788f66983a7710c64d62d61c7e] virtual merging success
CANN-robotCANN-robot成员
7月8日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月8日 评论:

流水线任务触发成功
任务链接 [36d886adc8d44b0da13299b7bc44141d][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_X86_compiler ✅ SUCCESS >>>>> >>>>>
Compile_X86_executor ✅ SUCCESS >>>>> >>>>>
Compile_X86_dflow ✅ SUCCESS >>>>> >>>>>
UT_Test_dflow ✅ SUCCESS
UT_Test_ge_common ✅ SUCCESS
UT_Test_parser ✅ SUCCESS
UT_Test_python ✅ SUCCESS >>>>>
UT_Test_rt ✅ SUCCESS
UT_Test_acl ✅ SUCCESS
UT_Test_autofuse ✅ SUCCESS
UT_Test_executor ✅ SUCCESS
UT_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_dflow ✅ SUCCESS
ST_Test_ge_common ✅ SUCCESS
ST_Test_parser ✅ SUCCESS
ST_Test_python ✅ SUCCESS >>>>>
ST_Test_rt ✅ SUCCESS
ST_Test_autofuse ✅ SUCCESS
ST_Test_executor ✅ SUCCESS
ST_Test_hetero ✅ SUCCESS
ST_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_autofuse_e2e ✅ SUCCESS
UT_Test_fe ✅ SUCCESS
UT_Test_tefusion ✅ SUCCESS
ST_Test_fe ✅ SUCCESS
ST_Test_tefusion ✅ SUCCESS
ST_Test_ge_common_atc ✅ SUCCESS
UT_Test_Report_graphengine ✅ SUCCESS >>>>>
UT_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
UT_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
ST_Test_Report_graphengine ✅ SUCCESS >>>>>
ST_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
ST_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
UT_Test_Report_fe ✅ SUCCESS >>>>>
ST_Test_Report_fe ✅ SUCCESS >>>>>

[2026-07-08 18:14:16]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月8日 评论:

流水线任务触发成功
任务链接 [6b5a7b5e2cfa4287b4a4696515841f39][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_ARM_compiler ✅ SUCCESS >>>>> >>>>>
Compile_ARM_executor ✅ SUCCESS >>>>> >>>>>
Compile_ARM_dflow ✅ SUCCESS >>>>> >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-07-08 17:47:50]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月8日 评论:

流水线任务触发成功
任务链接 [b2ebf19b206c4ac2a39f992a9bfb64ab][流水线指导]

任务名称状态日志下载链接
codecheck_Pr ✅ SUCCESS
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
codecheck_dt ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS

[2026-07-08 17:46:23]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月8日 添加了label:api-check-pass
此处折叠了7条事件消息 查看更多
CANN-robotCANN-robot成员
7月9日 删除了label:ci-pipeline-passed
CANN-robot
CANN-robot成员
7月9日 评论:

Notification

This pull request has been changed(code update) or closed, so removes the following label(s): ci-pipeline-passed.

likedislike
Llining23666成员
7月9日 修改标题为 “【fix】: 删除dflow中废弃的KvCacheManager”,原标题为“【fix】: 删除dflow中decoder kv cache废弃代码”
Llining23666成员
7月9日 修改了pull request 的描述
Llining23666成员
7月9日 修改了pull request 的描述
lining23666成员
7月9日 评论:

compile

likedislike
Llining23666成员
7月9日 update merge request[project id: 8824148, iid: 3928, commit_id: a11c95c2879158190d880f09e0411da877401410] virtual merging success
CANN-robotCANN-robot成员
7月9日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月9日 评论:

流水线任务触发成功
任务链接 [7a8be4c466504e95bd01a17d869801ff][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_X86_compiler ✅ SUCCESS >>>>> >>>>>
Compile_X86_executor ✅ SUCCESS >>>>> >>>>>
Compile_X86_dflow ✅ SUCCESS >>>>> >>>>>
UT_Test_dflow ✅ SUCCESS
UT_Test_ge_common ✅ SUCCESS
UT_Test_parser ✅ SUCCESS
UT_Test_python ✅ SUCCESS >>>>>
UT_Test_rt ✅ SUCCESS
UT_Test_acl ✅ SUCCESS
UT_Test_autofuse ✅ SUCCESS
UT_Test_executor ✅ SUCCESS
UT_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_dflow ✅ SUCCESS
ST_Test_ge_common ✅ SUCCESS
ST_Test_parser ✅ SUCCESS
ST_Test_python ✅ SUCCESS >>>>>
ST_Test_rt ✅ SUCCESS
ST_Test_autofuse ✅ SUCCESS
ST_Test_executor ✅ SUCCESS
ST_Test_hetero ✅ SUCCESS
ST_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_autofuse_e2e ✅ SUCCESS
UT_Test_fe ✅ SUCCESS
UT_Test_tefusion ✅ SUCCESS
ST_Test_fe ✅ SUCCESS
ST_Test_tefusion ✅ SUCCESS
ST_Test_ge_common_atc ✅ SUCCESS
UT_Test_Report_graphengine ✅ SUCCESS >>>>>
UT_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
UT_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
ST_Test_Report_graphengine ✅ SUCCESS >>>>>
ST_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
ST_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
UT_Test_Report_fe ✅ SUCCESS >>>>>
ST_Test_Report_fe ✅ SUCCESS >>>>>

[2026-07-09 09:38:29]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月9日 评论:

流水线任务触发成功
任务链接 [defac4bb3fd44f6384b4fa60fa81435d][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_ARM_compiler ✅ SUCCESS >>>>> >>>>>
Compile_ARM_executor ✅ SUCCESS >>>>> >>>>>
Compile_ARM_dflow ✅ SUCCESS >>>>> >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-07-09 09:32:11]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月9日 添加了label:api-check-pass
CANN-robotCANN-robot成员
7月9日 删除了label:api-check-pass
CANN-robot
CANN-robot成员
7月9日 评论:

流水线任务触发成功
任务链接 [1c783476975246269366017b9ac44f23][流水线指导]

任务名称状态日志下载链接
codecheck_Pr ✅ SUCCESS
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
codecheck_dt ❌ FAILED >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
likedislike
CANN-robotCANN-robot成员
7月9日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月9日 添加了label:ci-pipeline-failed
CANN-robotCANN-robot成员
7月9日 删除了label:ci-pipeline-failed
CANN-robotCANN-robot成员
7月9日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月9日 评论:

流水线任务触发成功
任务链接 [5d418586b9434b1f997cb72876c0123b][流水线指导]

任务名称状态日志下载链接
codecheck_Pr ✅ SUCCESS
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
codecheck_dt ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS

[2026-07-09 15:13:09]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月9日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月9日 添加了label:ci-pipeline-passed
Llining23666成员
7月9日 修改标题为 “【refactor】: 删除dflow中废弃的KvCacheManager”,原标题为“【fix】: 删除dflow中废弃的KvCacheManager”
xchu42
xchu42成员
7月9日 评论:

/lgtm

likedislike
黄桂军
黄桂军成员
7月9日 评论:

/lgtm

likedislike
黄桂军
黄桂军成员
7月9日 评论:

【MR评价】评价分数:3,
评价意见:
编码规范遵守度:无编码规范问题;
代码设计:不涉及代码设计;
DT质量:基本逻辑DT测试覆盖充足;

likedislike
CANN-robotCANN-robot成员
7月9日 添加了label:lgtm
Llining23666成员
7月9日 update merge request[project id: 8824148, iid: 3928, commit_id: 13a1dbbf68876c6430959d7a730d0c903cd3628d] virtual merging success
zhanj
zhanj成员
7月9日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月9日 添加了label:approved
CANN-robotCANN-robot成员
7月9日 合入了pull request