已关闭
[Requirement|需求建议]: engram算子支持训练 #3838
luozhonglin创建于  7月20日关闭于  7月25日
luozhonglin
luozhonglin
7月20日 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Backgroud(背景信息)

在大模型推理中,部分 token 可以不用npu计算得到,可以通过提前的buffer缓存去取出该部分token。常规流程中这些数据需要在 NPU
上重新计算一遍,占用推理时间。当前库上engram算子只支持推理,无法支持训练。

本次提交的 engram_fetch / engram_fetch_grad 分别为正向和反向算子,支持训练。

Benefit / Necessity (价值/作用)

降低推理时延:对于可预的 token 数据,不再走 NPU 全流程推理,而是直接从 CPU 映射的 Engram Buffer 中 fetch,用内存访问代替重复计算,减少端到端推理耗时

Design(设计方案)

Engram Fetch 路径训练化。前向复用推理同一个 EngramFetch 接口(aclnnEngramFetch issue + aclnnEngramFetchWait wait),由 ElasticBuffer(with_grad=True) 切训练模式——不新造前向算子、不改用户签名;训练态额外产出 save-for-backward(作为可选输出,推理传 nullptr)。反向是唯一新算子 EngramFetchBackward(单融合 kernel)。

likedislike
luozhonglinluozhonglin
7月20日 修改了issue 的描述
luozhonglin
luozhonglin
7月20日 评论:

/assign

likedislike
CANN-robotCANN-robot成员
7月20日 将 luozhonglin222 设为负责人
luozhonglinluozhonglin
7月23日 关联了pull request:engram support training
CANN-robotCANN-robot成员
7月25日 关闭了 issue
CANN-robotCANN-robot成员
7月25日 添加了label:resolved
luozhonglinluozhonglin
7月30日 关联了pull request:engram torch api
luozhonglinluozhonglin
7月30日 删除了关联的pull request:engram torch api
luozhonglinluozhonglin
8月3日 关联了pull request:engram支持跨超
luozhonglinluozhonglin
8月11日 关联了pull request:engram支持UBG+资料修改
luozhonglinluozhonglin
8月14日 关联了pull request:engram反向增加校验
luozhonglinluozhonglin
8月20日 关联了pull request:engram反向性能优化
luozhonglinluozhonglin
8月24日 删除了关联的pull request:engram反向性能优化
luozhonglinluozhonglin
8月24日 关联了pull request:engram反向性能优化
luozhonglinluozhonglin
8月24日 删除了关联的pull request:engram反向性能优化
luozhonglinluozhonglin
8月24日 关联了pull request:engram反向性能优化
luozhonglinluozhonglin
8月24日 删除了关联的pull request:engram反向性能优化
luozhonglinluozhonglin
8月24日 关联了pull request:engram反向性能优化