已关闭
[Requirement|需求建议]: 【社区任务】AssignSub算子AscendC实现贡献 #2277
ิีิีีึีึีึีึ创建于 7月21日关闭于 7月27日
ิีิีีึีึีึีึ
7月21日 评论:
7月21日 评论:
/assign


7月21日 将 qq_64858158 设为负责人
7月21日 关联了pull request:docs: 新增assignsub算子实现
7月27日 关闭了 issue
7月27日 添加了label:resolved
/assign


Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
一、背景信息
AssignSub算子实现变量减法赋值操作,对应TensorFlow中的
tf.assign_sub接口,计算var = var - value并将结果写入输出。该算子是训练过程中参数更新的基础原子操作,广泛用于优化器(如SGD、Adam)的权重更新步骤。当前CANN内置的AssignSub仅有ascend950平台的DAG实现,本需求为Atlas A2/A3训练系列产品提供高性能的AscendC实现。
二、价值/作用
weight -= lr * grad直接依赖AssignSub,缺少该算子会导致训练流程中断或性能劣化三、设计方案
3.1 使能方式
aclnnAssignSub接口)3.2 总体设计
计算公式:
var_out = var - value对于int8/uint8类型,减法结果按模256环绕(与TBE行为对齐):
3.2.1 算子支持的数据类型
var和value的数据类型必须一致,输出类型与输入一致。
3.2.2 host侧设计
InferShape:输出shape与输入var完全一致。
Tiling策略:
platform_ascendc::PlatformAscendC动态获取核数和UB大小3.2.3 kernel侧设计
整体流水:CopyIn → Compute → CopyOut(三级流水,双缓冲)
分类型计算策略:
int8/uint8模256环绕实现:
数据搬运优化:
3.3 支持硬件
3.4 算子约束限制
💡 备注