已关闭
[Requirement|需求建议]: 910b的bitwise_not实现 #1763
zhaohujie创建于 6月2日关闭于 6月23日
zhaohujie
6月2日 评论:
6月2日 评论:
/assign @zhaohujie


6月2日 将 zhaohujie 设为负责人
6月2日 修改标题为 “[Requirement|需求建议]: 910b的bitwise_not实现”,原标题为“[Requirement|需求建议]: 910b的 bitwise_not 实现”
6月2日 修改标题为 “[Requirement|需求建议]: 910b的bitwise_not实现”,原标题为“[Requirement|需求建议]: 910b的 bitwise_not 实现”
6月2日 关联了pull request:feat(bitwise_not): 910b的bitwise_not实现
6月23日 关闭了 issue
6月23日 添加了label:resolved
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
一、背景信息 (必填)
CANN 算子库 ops-math 当前缺少按位取反算子 BitwiseNot 的原生 AscendC 实现:外层 math/bitwise_not 仅为 aclnn-only 转发壳(无
_def.cpp、无 kernel),在 aclnn 层把 BitwiseNot 分解为 l0op::Invert(整型)/ l0op::LogicalNot(BOOL)+ Contiguous/ViewCopy。本在 experimental/math/bitwise_not 贡献一个自带 Kernel/Tiling 的单算子原生实现,OpType BitwiseNot,对外两段式入口 aclnnBitwiseNot,目标芯片 Ascend910B。
二、价值/作用 (必填)
对标
torch.bitwise_not / ~,为 Ascend910B 提供按位取反的原生单算子,覆盖整型与布尔两类语义。相比现有 aclnn 分解路径,单 kernel 实现减少非必要的中间搬运;
实测在访存受限大 shape 下贴 HBM 带宽 roofline,设备侧中等规模较内建路径有 1.1–1.46× 提升、大规模持平。
应用场景:掩码/位标志运算、整型按位逻辑、布尔取反等基础数值计算。
三、设计方案 (必填)
3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)
Aclnn 直调:两段式 aclnnBitwiseNotGetWorkspaceSize + aclnnBitwiseNot(由算子定义自动生成入口)。
图模式(GE):REG_OP(BitwiseNot) proto,单输入 x → 单输出 y。
PyTorch 接入:通过单算子执行路径调用原生 kernel(ST 已提供 torch 适配)。
3.2 总体设计
3.2.1 算子支持的数据类型
INT8 / INT16 / INT32 / INT64 / UINT8 / BOOL(输入输出同 dtype)。
3.2.2 host侧设计
3.2.3 kernel侧设计
主路径 DataCopy(对齐高吞吐)+ 非对齐尾块 DataCopyPad(按原 dtype 元素数写回)。
3.3 支持硬件
Atlas A2 训练/推理系列(Ascend910B,DAV_2201 / arch32)。
3.4 算子约束限制
💡 备注:
精度为 bitwise exact(atol=0 / rtol=0)。