已关闭
[Requirement|需求建议]: 新增engram_fetch && engram_fetch_wait算子 #3385
wuchenhao123创建于 6月28日关闭于 6月29日
6月28日 添加了label:requirement
wuchenhao123
6月28日 评论:
6月28日 评论:
/assign


CANN-robot
6月28日 评论:
6月28日 评论:
6月28日 关联了pull request:新增engram_fetch 核函数 && engram_fetch_wait算子
6月29日 关闭了 issue
6月29日 添加了label:resolved
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
在大模型推理中,部分 token 可以不用npu计算得到,可以通过提前的buffer缓存去取出该部分token。常规流程中这些数据需要在 NPU
上重新计算一遍,占用推理时间。
本次提交的 engram_fetch / engram_fetch_wait 算子解决的问题是:绕过 NPU 计算,将这部分数据提前放入 Engram Buffer(CPU 侧映射到 Device
地址空间的内存池),推理时直接通过 indices 从 Engram 中 fetch 对应数据到输出张量,省去这些 token 的推理计算。
两个算子配合工作:engram_fetch 按索引从 Engram Buffer 异步拉取数据到 Device GM(本地 DMA + 跨 rank RDMA),engram_fetch_wait 等待所有异步操作完成。
Benefit / Necessity (价值/作用)
降低推理时延:对于可预的 token 数据,不再走 NPU 全流程推理,而是直接从 CPU 映射的 Engram Buffer 中 fetch,用内存访问代替重复计算,减少端到端推理耗时。
Design(设计方案)
engram_fetch:
engram_fetch_wait:
-对其他 rank 调用 hcomm.Drain() 等待 RDMA 完成