已关闭
[Requirement|需求建议]: 910b的zeros_like实现 #1692
zhaohujie创建于  5月28日关闭于  7月30日
zhaohujie
zhaohujie
5月28日 创建

一、背景信息 (必填)

为 Atlas A2 提供 ZerosLike 原生 AI Core 实现;退化 Elementwise(纯写常量 0、不读输入),可作为 A2 写出类 elementwise 算子参考;相比内建 legacy DSL,在 int64 等需类型仿真的场景显著更优(实测 [4096²] 41.56us vs 614.90us,≈14.8×),浮点/小字节场景与内置持平(均近器件写带宽极限)。

二、价值/作用 (必填)

为 Atlas A2 提供 ZerosLike 原生 AI Core 实现;退化 Elementwise(纯写常量 0、不读输入),可作为 A2 写出类 elementwise 算子参考;相比内建 legacy DSL,在 int64 等需类型仿真的场景显著更优(实测 [4096²] 41.56us vs 614.90us,≈14.8×),浮点/小字节场景与内置持平(均近器件写带宽极限)。

三、设计方案 (必填)

3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)
  • aclnn 直调(eager)—— aclnnInplaceZeroGetWorkspaceSize / aclnnInplaceZero 两段式(in-place,selfRef 既入既出),复用 math/zero_op L0 语义。
3.2 总体设计
3.2.1 算子支持的数据类型

8 种 —— FLOAT16/BF16/FLOAT32/INT32/INT64/INT8/UINT8/BOOL(ND);按字节宽度归一 4 桶(1/2/4/8B)。

3.2.2 host侧设计

OpDef AddConfig("ascend910b")、formatAgnostic、opFile.value="zeros_like";InferShape 同形 / InferDataType 同 dtype;Tiling 按输出总字节数以 32B 对齐块多核均衡切分,字节宽度桶设 TilingKey,0 元素保护,workspace=0。

3.2.3 kernel侧设计

退化 Elementwise(纯写 0,不读 x)—— UB 单块 Duplicate(0) 复用 → DataCopy(对齐)/DataCopyPad(尾块)写出;按字节宽度选 uint16/uint32 视图(全 0 二进制等价),int64 拆 2×uint32;V_MTE3 同步;AIV-only。

3.3 支持硬件

Atlas A2 训练/推理系列(Ascend910B,DAV_2201 / arch32)。

3.4 算子约束限制

  • rank 0~8;支持空 tensor / 非连续;
  • 8 种 dtype 走 910b AI Core(L2 接受 13 种超集,余走 AICPU,不在 AI Core 验收范围);
  • 仅 ascend910b(不含 950/A3);
  • 不支持广播;
  • 确定性 bitwise。

💡 备注(选填)

likedislike
zhaohujie
zhaohujie
5月28日 评论:

/assign @zhaohujie

likedislike
CANN-robotCANN-robot成员
5月28日 将 zhaohujie 设为负责人
zhaohujiezhaohujie
5月28日 关联了pull request:feat(zeros_like): 新增 ascend910b (A2) AI Core 支持
zhaohujiezhaohujie
6月2日 修改了issue 的描述
zhaohujiezhaohujie
6月2日 关联了pull request:feat(zeros_like): 910b 新增算子实现 zeros_like
zhaohujiezhaohujie
6月2日 修改标题为 “[Requirement|需求建议]: 910b的zeros_like实现”,原标题为“[Requirement|需求建议]: zeros_like增加910B实现”
zhaohujiezhaohujie
6月2日 修改了issue 的描述
llimwang成员
7月30日 评论:

该 Issue 已超过 20 天未更新,先行关闭以便归档;如仍需跟进请评论或重新打开。

likedislike
Lllimwang成员
7月30日 关闭了 issue