| Files | Last commit | Last update |
|---|---|---|
bitwise_and新增int8/uint8/uint32/uint64数据类型支持 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !5321 merge bitwise-and-align-dtype-with-bitwise-or into master bitwise_and新增int8/uint8/uint32/uint64数据类型支持 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 修改背景 bitwise_and 系列算子(BitwiseAndTensor / BitwiseAndScalar / InplaceBitwiseAndTensor / InplaceBitwiseAndScalar)此前仅支持 int16 / uint16 / int32 / int64 四种整型,同族算子 bitwise_or 已支持全部 8 种整型;uint32 / uint64 等按位与场景(如权重打包、掩码计算)无法走 NPU AICore 加速路径。 ## 修改内容 **kernel 侧**(Ascend 950 / arch35) - op_host/bitwise_and_def.cpp:x1/x2/y 类型注册从 4 种整型扩展为 8 种 - op_host/config/ascend950/bitwise_and_binary.json:新增 int8/uint8/uint32/uint64 四个 binary 条目 - op_host/arch35/bitwise_and_tiling.cpp:DoOpTiling 新增 4 个 dtype 模板分支 **l0 层** - op_api/bitwiseand.cpp:新增 ASCEND950_AICORE_DTYPE_SUPPORT_LIST(8 种整型全走 AICore),IsAiCoreSupport 按 910B(DAV_2201)/ RegBase(950)/ 其他 三类分别查表,对齐 bitwise_or 的既有分派结构;910B 与其余硬件的支持列表不变 **aclnn 侧** - aclnn_bitwise_and_tensor.cpp:接口 DTYPE_SUPPORT_LIST 扩展为 9 种(BOOL + 8 整型,与 bitwise_or 一致) - aclnn_bitwise_and_scalar.cpp:新增 REGBASE_DTYPE_SUPPORT_LIST(950 上 scalar 支持 uint32/uint64),非 RegBase 平台维持原 7 种列表,与 bitwise_or 一致 - 计算与推导路径保持存量实现不变(按双输入推导类型计算后转换到 out) **测试与文档** - UT 用例 12→26:新增 tensor uint32/uint64、950 scalar uint32/uint64 门禁(接受 / 910B 拒绝)、int→bool out 拒绝、混合无符号 u32|u64 拒绝、收窄 / 升宽 / inplace / 弱标量等接受面锚点 - README 与 4 个 aclnn 接口文档同步 uint32/uint64 类型说明 ## 验证情况 1. **双平台 UT**:--soc=ascend950 与 --soc=ascend910b 均 26/26 通过 2. **950 真机 kernel ST**(Ascend950PR,0 容差精确比对):新增 dtype 6/6 PASS(int8/uint8/uint32/uint64 + uint32/uint64 广播);存量 ST 回归 96/100 PASS,4 例 INPUT_GEN_FAILURE 为存量 csv 脏数据(int16/int32 输入配 int64 极值范围),已在 builtin 实现上复现确认与本改动无关 3. **950 真机 aclnn ST**:7/7 PASS(BOOL 回归 + uint32/uint64 tensor/广播/scalar + inplace,torch 2.12 CPU golden 逐位比对) 4. pre-commit 全 hooks 通过(clang-format / codespell / OAT 开源合规) ## 风险说明 - 既有 7 种 dtype(含 BOOL)在所有平台的计算与执行路径与改动前完全一致,零回归;计算类型推导逻辑未做任何改动 - tensor 接口 uint32/uint64 为全平台接受列表(950 走 AICore,其他硬件经 AICPU 兜底)、scalar 接口 uint32/uint64 仅 950 接受——两者均与 bitwise_or 既有口径一致 ## 关联的Issue - #3049:bitwise_and 系列算子支持 uint32/uint64 数据类型(对齐 bitwise_or) See merge request: cann/ops-math!5321 | 1 month ago | |
fix(bitwise_and): 资料与业务代码一致性整改 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !6375 merge fix/bitwise_and_doc_code_consistency into master fix(bitwise_and): 资料与业务代码一致性整改 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 关联 Issue - #3590 ## 修改原因 math/bitwise_and 的资料与业务代码能力存在不一致:aclnnBitwiseAndTensorOut 系列接口漏支持 UINT32/UINT64、文档 dtype 与错误码和实现不符、两篇 Inplace 文档的 310P 支持标注与自身注释自相矛盾。本 MR 在**上板实测**后做一致性整改。 ## 主要修改 **1. 补齐 RegBase 接口能力(核心)** - aclnnBitwiseAndTensorOut / aclnnInplaceBitwiseAndTensorOut(仅 Ascend 950 系列可用)的 DTYPE_SUPPORT_LIST 由 7 种扩为 9 种(补 UINT32/UINT64),与 aclnnBitwiseAndTensor、torch.bitwise_and 对齐,消除**漏支持**; - 资料同步:aclnn_bitwiseand.h(self/other 7→9、out 7→15)、aclnnBitwiseAndTensorOut&aclnnInplaceBitwiseAndTensorOut.md(self/other 7→9、out 9→15),错误码表补两条“数据格式需保持一致”。 **2. 修正 310P 支持标注(仅资料口径,不动代码)** - aclnnInplaceBitwiseAndScalar.md、aclnnInplaceBitwiseAndTensor.md 的「Atlas推理系列产品」由“不支持”改为“支持”:与文档自身 dtype 注记自洽(310P 属支持产品、仅不支持 UINT32/UINT64),且与 bitwise_or / bitwise_xor / logical_and 全家族 Inplace 口径一致;业务代码无任何 310P 专属限制。两篇文档下方 dtype 注记保持原样。 **3. 通用资料纠错(与产品无关)** - 计算公式:标量接口 out_i = self_i & other、Inplace 张量接口 selfRef_i = selfRef_i & other_i;输入推导链接改为 deduction_relationship; - **带 out 接口的口径对齐**:aclnnBitwiseAndScalar.md 的 out 数据类型由 11 种补为 15 种(补 UINT32、UINT64、COMPLEX64、COMPLEX128),与同族 bitwise_or / bitwise_xor 的 Scalar 类文档逐字一致;aclnnBitwiseAndTensor.md 的 out(9 种)与两位兄弟的 Tensor 类文档保持一致,未改动; - 错误码表头统一“返回值”,修正越界与空指针行;README 的功能说明与「描述」列收敛为与其他算子一致(详见下条),并补齐两个 *TensorOut 样例链接; - README「参数说明」由 - self(aclTensor*,计算输入) 列表式改为与仓库标准一致的五列参数表(参数名 / 输入、输出、属性 / 描述 / 数据类型 / 数据格式),**参数说明内不再体现 aclTensor、aclScalar 类型标注**(与 bitwise_or/bitwise_xor 及全仓 189 个表格式 README 一致);dtype 口径以“支持列表 + 按产品注解”表达,并按 产品支持情况 里所有 √ 的产品补齐注解覆盖(950 落在表内支持列表;Atlas A3、Atlas A2、Atlas推理系列产品、Atlas训练系列产品 由表后注解给出不支持项,与本文档 aclnnBitwiseAndScalar.md 的 dtype 注记口径逐字一致),原内容不删减; - README 收敛为与其他算子写法一致:功能说明去掉 (Tensor-Tensor 与 Tensor-Scalar 两种形式) 枚举(全仓 236 个 README 中仅此 1 例),计算公式改为 当other为张量时 / 当other为标量时;「描述」列删除属于 API 文档的子句(支持非连续的Tensor、数据维度不支持8维以上),并去掉 other/out 里的 Tensor-Tensor形式/Tensor-Scalar形式 表述与 broadcast关系/互转换关系 子句(去掉限定词后这些子句在标量接口下会失真)—— 三列「描述」与同族 bitwise_or/bitwise_xor **逐字一致**;相关信息由本算子 5 篇 API 文档的「使用说明」「维度(shape)」「非连续Tensor」专列及 README 的约束说明承载,无信息丢失。 **4. 样例与测试** - 样例:新增两个 *TensorOut 样例;并补齐此前缺失的 aclnnInplaceBitwiseAndScalar / aclnnInplaceBitwiseAndTensor 两个样例,README 调用说明表随之从 2 行补到 **6 行**(与 docs/zh/op_api_list.md 的接口顺序一致;兄弟算子 bitwise_or 的 Inplace 接口也都有样例); - 测试:新增 RegBase dtype / 维度 / 格式契约 UT(8 例); - golden.py 注册 *TensorOut golden,并按 TTK TestSpec 补 third_party 三方标杆;新增 5 条 ST 用例;修正 arch35 ST 整数 dtype 取值范围与精度容差; - 删除 tests/ut/op_host/op_api 下 3 个**从未参与编译的死文件**(依据:该目录 CMakeLists 为占位、无 add_modules_ut_sources;op_host UT 仅 GLOB test_*_tiling.cpp、op_api UT 仅扫 tests/ut/op_api;全仓零引用)。README 只引用 examples/ 与 docs/,不引用 tests/,样例链接不受影响。 **5. 清理** - 6 个头 / 源文件 clang-format 对齐、去掉 CMakeLists 末尾空行、新增文件版权年份统一 2026(纯格式,无语义变化)。 ## 上板验证(Ascend950PR_9589) | 通路 | 结果 | |---|---| | aclnn ST(30 例) | **30/30 PASS** | | e2e ST(13 例) | **13/13 PASS** | | dtype 契约 UT(8 例) | **8/8 PASSED** | - 精度口径:精确算符 ((0,0),) + absolute_precision=1e-08;950 上 9×9 输入 × 15 种 out 组合穷举与 torch.bitwise_and 零差异; - 新增 4 个样例上板执行结果与预期一致:*TensorOut 两个样例输出 {0,1,2,3,0,1,4,4};aclnnInplaceBitwiseAndTensor 样例原地写回 {0,1,2,3,0,1,4,4}、aclnnInplaceBitwiseAndScalar 样例原地写回 {4,0,2,2}; - pre-commit run --files <变更文件> 全部通过。 ## 范围说明 - dtype 口径调整只落在 RegBase(两个 *TensorOut 接口仅 950 可用,与 docs/zh/op_api_list.md 第 66 行 A2/A3 列为 - 一致);非 RegBase 仅上述两处支持标注纠错,**不改动 dtype 口径与业务代码逻辑**; - 以下两条**本 MR 有意不做改动**,以避免影响其他芯片(非 RegBase)的既有行为:① aclnn_bitwise_and_tensor.cpp 是否补 IsRegBase() 区分(现状与 bitwise_or 一致,bitwise_xor 已两侧区分);② 两篇 Tensor 文档是否补「非 RegBase 不支持 UINT32、UINT64」注记。二者属非 RegBase 的 dtype 口径,需产品裁定与相应产品上板实测后另行处理。 See merge request: cann/ops-math!6375 | 22 days ago | |
bitwise_and新增int8/uint8/uint32/uint64数据类型支持 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !5321 merge bitwise-and-align-dtype-with-bitwise-or into master bitwise_and新增int8/uint8/uint32/uint64数据类型支持 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 修改背景 bitwise_and 系列算子(BitwiseAndTensor / BitwiseAndScalar / InplaceBitwiseAndTensor / InplaceBitwiseAndScalar)此前仅支持 int16 / uint16 / int32 / int64 四种整型,同族算子 bitwise_or 已支持全部 8 种整型;uint32 / uint64 等按位与场景(如权重打包、掩码计算)无法走 NPU AICore 加速路径。 ## 修改内容 **kernel 侧**(Ascend 950 / arch35) - op_host/bitwise_and_def.cpp:x1/x2/y 类型注册从 4 种整型扩展为 8 种 - op_host/config/ascend950/bitwise_and_binary.json:新增 int8/uint8/uint32/uint64 四个 binary 条目 - op_host/arch35/bitwise_and_tiling.cpp:DoOpTiling 新增 4 个 dtype 模板分支 **l0 层** - op_api/bitwiseand.cpp:新增 ASCEND950_AICORE_DTYPE_SUPPORT_LIST(8 种整型全走 AICore),IsAiCoreSupport 按 910B(DAV_2201)/ RegBase(950)/ 其他 三类分别查表,对齐 bitwise_or 的既有分派结构;910B 与其余硬件的支持列表不变 **aclnn 侧** - aclnn_bitwise_and_tensor.cpp:接口 DTYPE_SUPPORT_LIST 扩展为 9 种(BOOL + 8 整型,与 bitwise_or 一致) - aclnn_bitwise_and_scalar.cpp:新增 REGBASE_DTYPE_SUPPORT_LIST(950 上 scalar 支持 uint32/uint64),非 RegBase 平台维持原 7 种列表,与 bitwise_or 一致 - 计算与推导路径保持存量实现不变(按双输入推导类型计算后转换到 out) **测试与文档** - UT 用例 12→26:新增 tensor uint32/uint64、950 scalar uint32/uint64 门禁(接受 / 910B 拒绝)、int→bool out 拒绝、混合无符号 u32|u64 拒绝、收窄 / 升宽 / inplace / 弱标量等接受面锚点 - README 与 4 个 aclnn 接口文档同步 uint32/uint64 类型说明 ## 验证情况 1. **双平台 UT**:--soc=ascend950 与 --soc=ascend910b 均 26/26 通过 2. **950 真机 kernel ST**(Ascend950PR,0 容差精确比对):新增 dtype 6/6 PASS(int8/uint8/uint32/uint64 + uint32/uint64 广播);存量 ST 回归 96/100 PASS,4 例 INPUT_GEN_FAILURE 为存量 csv 脏数据(int16/int32 输入配 int64 极值范围),已在 builtin 实现上复现确认与本改动无关 3. **950 真机 aclnn ST**:7/7 PASS(BOOL 回归 + uint32/uint64 tensor/广播/scalar + inplace,torch 2.12 CPU golden 逐位比对) 4. pre-commit 全 hooks 通过(clang-format / codespell / OAT 开源合规) ## 风险说明 - 既有 7 种 dtype(含 BOOL)在所有平台的计算与执行路径与改动前完全一致,零回归;计算类型推导逻辑未做任何改动 - tensor 接口 uint32/uint64 为全平台接受列表(950 走 AICore,其他硬件经 AICPU 兜底)、scalar 接口 uint32/uint64 仅 950 接受——两者均与 bitwise_or 既有口径一致 ## 关联的Issue - #3049:bitwise_and 系列算子支持 uint32/uint64 数据类型(对齐 bitwise_or) See merge request: cann/ops-math!5321 | 1 month ago | |
style: 统一算子代码格式并规范License头声明 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6326 merge ccc_1013 into master style: 统一算子代码格式并规范License头声明 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次提交对 math 与 conversion 目录下 13 个算子进行统一的代码格式整改,不涉及功能逻辑变更: 1. 统一 clang-format 代码格式:函数体、参数列表、REG_OP 宏、初始化列表、空函数体等按 clang-format 风格重排。 2. 规范 License 头声明:framework 下 CMakeLists 与 ONNX 插件源文件头统一为标准格式,并修正 License 文本(补充 OR)。 3. 修复文件末尾换行符:补齐缺失的末尾换行。 4. 统一 Python 文档字符串风格:golden.py 中 ''' 调整为 """。 涉及算子:clip_by_value、clip_by_value_v2、addcdiv、addcmul、bitwise_and、bitwise_or、bitwise_xor、floor_mod、lerp、logical_and、logical_or、mod、pow,以及 tests/ut/op_host/CMakeLists.txt。 ## 关联的Issue - #3651 ## 测试 本次仅代码格式调整,无逻辑变更;UT/ST 用例同步格式化,不影响用例语义与预期结果。 ## 文档更新 无 ## 类型标签 - [x] 其他,请描述:代码格式整改 See merge request: cann/ops-math!6326 | 20 days ago | |
fix(bitwise_and): 资料与业务代码一致性整改 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !6375 merge fix/bitwise_and_doc_code_consistency into master fix(bitwise_and): 资料与业务代码一致性整改 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 关联 Issue - #3590 ## 修改原因 math/bitwise_and 的资料与业务代码能力存在不一致:aclnnBitwiseAndTensorOut 系列接口漏支持 UINT32/UINT64、文档 dtype 与错误码和实现不符、两篇 Inplace 文档的 310P 支持标注与自身注释自相矛盾。本 MR 在**上板实测**后做一致性整改。 ## 主要修改 **1. 补齐 RegBase 接口能力(核心)** - aclnnBitwiseAndTensorOut / aclnnInplaceBitwiseAndTensorOut(仅 Ascend 950 系列可用)的 DTYPE_SUPPORT_LIST 由 7 种扩为 9 种(补 UINT32/UINT64),与 aclnnBitwiseAndTensor、torch.bitwise_and 对齐,消除**漏支持**; - 资料同步:aclnn_bitwiseand.h(self/other 7→9、out 7→15)、aclnnBitwiseAndTensorOut&aclnnInplaceBitwiseAndTensorOut.md(self/other 7→9、out 9→15),错误码表补两条“数据格式需保持一致”。 **2. 修正 310P 支持标注(仅资料口径,不动代码)** - aclnnInplaceBitwiseAndScalar.md、aclnnInplaceBitwiseAndTensor.md 的「Atlas推理系列产品」由“不支持”改为“支持”:与文档自身 dtype 注记自洽(310P 属支持产品、仅不支持 UINT32/UINT64),且与 bitwise_or / bitwise_xor / logical_and 全家族 Inplace 口径一致;业务代码无任何 310P 专属限制。两篇文档下方 dtype 注记保持原样。 **3. 通用资料纠错(与产品无关)** - 计算公式:标量接口 out_i = self_i & other、Inplace 张量接口 selfRef_i = selfRef_i & other_i;输入推导链接改为 deduction_relationship; - **带 out 接口的口径对齐**:aclnnBitwiseAndScalar.md 的 out 数据类型由 11 种补为 15 种(补 UINT32、UINT64、COMPLEX64、COMPLEX128),与同族 bitwise_or / bitwise_xor 的 Scalar 类文档逐字一致;aclnnBitwiseAndTensor.md 的 out(9 种)与两位兄弟的 Tensor 类文档保持一致,未改动; - 错误码表头统一“返回值”,修正越界与空指针行;README 的功能说明与「描述」列收敛为与其他算子一致(详见下条),并补齐两个 *TensorOut 样例链接; - README「参数说明」由 - self(aclTensor*,计算输入) 列表式改为与仓库标准一致的五列参数表(参数名 / 输入、输出、属性 / 描述 / 数据类型 / 数据格式),**参数说明内不再体现 aclTensor、aclScalar 类型标注**(与 bitwise_or/bitwise_xor 及全仓 189 个表格式 README 一致);dtype 口径以“支持列表 + 按产品注解”表达,并按 产品支持情况 里所有 √ 的产品补齐注解覆盖(950 落在表内支持列表;Atlas A3、Atlas A2、Atlas推理系列产品、Atlas训练系列产品 由表后注解给出不支持项,与本文档 aclnnBitwiseAndScalar.md 的 dtype 注记口径逐字一致),原内容不删减; - README 收敛为与其他算子写法一致:功能说明去掉 (Tensor-Tensor 与 Tensor-Scalar 两种形式) 枚举(全仓 236 个 README 中仅此 1 例),计算公式改为 当other为张量时 / 当other为标量时;「描述」列删除属于 API 文档的子句(支持非连续的Tensor、数据维度不支持8维以上),并去掉 other/out 里的 Tensor-Tensor形式/Tensor-Scalar形式 表述与 broadcast关系/互转换关系 子句(去掉限定词后这些子句在标量接口下会失真)—— 三列「描述」与同族 bitwise_or/bitwise_xor **逐字一致**;相关信息由本算子 5 篇 API 文档的「使用说明」「维度(shape)」「非连续Tensor」专列及 README 的约束说明承载,无信息丢失。 **4. 样例与测试** - 样例:新增两个 *TensorOut 样例;并补齐此前缺失的 aclnnInplaceBitwiseAndScalar / aclnnInplaceBitwiseAndTensor 两个样例,README 调用说明表随之从 2 行补到 **6 行**(与 docs/zh/op_api_list.md 的接口顺序一致;兄弟算子 bitwise_or 的 Inplace 接口也都有样例); - 测试:新增 RegBase dtype / 维度 / 格式契约 UT(8 例); - golden.py 注册 *TensorOut golden,并按 TTK TestSpec 补 third_party 三方标杆;新增 5 条 ST 用例;修正 arch35 ST 整数 dtype 取值范围与精度容差; - 删除 tests/ut/op_host/op_api 下 3 个**从未参与编译的死文件**(依据:该目录 CMakeLists 为占位、无 add_modules_ut_sources;op_host UT 仅 GLOB test_*_tiling.cpp、op_api UT 仅扫 tests/ut/op_api;全仓零引用)。README 只引用 examples/ 与 docs/,不引用 tests/,样例链接不受影响。 **5. 清理** - 6 个头 / 源文件 clang-format 对齐、去掉 CMakeLists 末尾空行、新增文件版权年份统一 2026(纯格式,无语义变化)。 ## 上板验证(Ascend950PR_9589) | 通路 | 结果 | |---|---| | aclnn ST(30 例) | **30/30 PASS** | | e2e ST(13 例) | **13/13 PASS** | | dtype 契约 UT(8 例) | **8/8 PASSED** | - 精度口径:精确算符 ((0,0),) + absolute_precision=1e-08;950 上 9×9 输入 × 15 种 out 组合穷举与 torch.bitwise_and 零差异; - 新增 4 个样例上板执行结果与预期一致:*TensorOut 两个样例输出 {0,1,2,3,0,1,4,4};aclnnInplaceBitwiseAndTensor 样例原地写回 {0,1,2,3,0,1,4,4}、aclnnInplaceBitwiseAndScalar 样例原地写回 {4,0,2,2}; - pre-commit run --files <变更文件> 全部通过。 ## 范围说明 - dtype 口径调整只落在 RegBase(两个 *TensorOut 接口仅 950 可用,与 docs/zh/op_api_list.md 第 66 行 A2/A3 列为 - 一致);非 RegBase 仅上述两处支持标注纠错,**不改动 dtype 口径与业务代码逻辑**; - 以下两条**本 MR 有意不做改动**,以避免影响其他芯片(非 RegBase)的既有行为:① aclnn_bitwise_and_tensor.cpp 是否补 IsRegBase() 区分(现状与 bitwise_or 一致,bitwise_xor 已两侧区分);② 两篇 Tensor 文档是否补「非 RegBase 不支持 UINT32、UINT64」注记。二者属非 RegBase 的 dtype 口径,需产品裁定与相应产品上板实测后另行处理。 See merge request: cann/ops-math!6375 | 22 days ago | |
fix(bitwise_and): 资料与业务代码一致性整改 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !6375 merge fix/bitwise_and_doc_code_consistency into master fix(bitwise_and): 资料与业务代码一致性整改 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 关联 Issue - #3590 ## 修改原因 math/bitwise_and 的资料与业务代码能力存在不一致:aclnnBitwiseAndTensorOut 系列接口漏支持 UINT32/UINT64、文档 dtype 与错误码和实现不符、两篇 Inplace 文档的 310P 支持标注与自身注释自相矛盾。本 MR 在**上板实测**后做一致性整改。 ## 主要修改 **1. 补齐 RegBase 接口能力(核心)** - aclnnBitwiseAndTensorOut / aclnnInplaceBitwiseAndTensorOut(仅 Ascend 950 系列可用)的 DTYPE_SUPPORT_LIST 由 7 种扩为 9 种(补 UINT32/UINT64),与 aclnnBitwiseAndTensor、torch.bitwise_and 对齐,消除**漏支持**; - 资料同步:aclnn_bitwiseand.h(self/other 7→9、out 7→15)、aclnnBitwiseAndTensorOut&aclnnInplaceBitwiseAndTensorOut.md(self/other 7→9、out 9→15),错误码表补两条“数据格式需保持一致”。 **2. 修正 310P 支持标注(仅资料口径,不动代码)** - aclnnInplaceBitwiseAndScalar.md、aclnnInplaceBitwiseAndTensor.md 的「Atlas推理系列产品」由“不支持”改为“支持”:与文档自身 dtype 注记自洽(310P 属支持产品、仅不支持 UINT32/UINT64),且与 bitwise_or / bitwise_xor / logical_and 全家族 Inplace 口径一致;业务代码无任何 310P 专属限制。两篇文档下方 dtype 注记保持原样。 **3. 通用资料纠错(与产品无关)** - 计算公式:标量接口 out_i = self_i & other、Inplace 张量接口 selfRef_i = selfRef_i & other_i;输入推导链接改为 deduction_relationship; - **带 out 接口的口径对齐**:aclnnBitwiseAndScalar.md 的 out 数据类型由 11 种补为 15 种(补 UINT32、UINT64、COMPLEX64、COMPLEX128),与同族 bitwise_or / bitwise_xor 的 Scalar 类文档逐字一致;aclnnBitwiseAndTensor.md 的 out(9 种)与两位兄弟的 Tensor 类文档保持一致,未改动; - 错误码表头统一“返回值”,修正越界与空指针行;README 的功能说明与「描述」列收敛为与其他算子一致(详见下条),并补齐两个 *TensorOut 样例链接; - README「参数说明」由 - self(aclTensor*,计算输入) 列表式改为与仓库标准一致的五列参数表(参数名 / 输入、输出、属性 / 描述 / 数据类型 / 数据格式),**参数说明内不再体现 aclTensor、aclScalar 类型标注**(与 bitwise_or/bitwise_xor 及全仓 189 个表格式 README 一致);dtype 口径以“支持列表 + 按产品注解”表达,并按 产品支持情况 里所有 √ 的产品补齐注解覆盖(950 落在表内支持列表;Atlas A3、Atlas A2、Atlas推理系列产品、Atlas训练系列产品 由表后注解给出不支持项,与本文档 aclnnBitwiseAndScalar.md 的 dtype 注记口径逐字一致),原内容不删减; - README 收敛为与其他算子写法一致:功能说明去掉 (Tensor-Tensor 与 Tensor-Scalar 两种形式) 枚举(全仓 236 个 README 中仅此 1 例),计算公式改为 当other为张量时 / 当other为标量时;「描述」列删除属于 API 文档的子句(支持非连续的Tensor、数据维度不支持8维以上),并去掉 other/out 里的 Tensor-Tensor形式/Tensor-Scalar形式 表述与 broadcast关系/互转换关系 子句(去掉限定词后这些子句在标量接口下会失真)—— 三列「描述」与同族 bitwise_or/bitwise_xor **逐字一致**;相关信息由本算子 5 篇 API 文档的「使用说明」「维度(shape)」「非连续Tensor」专列及 README 的约束说明承载,无信息丢失。 **4. 样例与测试** - 样例:新增两个 *TensorOut 样例;并补齐此前缺失的 aclnnInplaceBitwiseAndScalar / aclnnInplaceBitwiseAndTensor 两个样例,README 调用说明表随之从 2 行补到 **6 行**(与 docs/zh/op_api_list.md 的接口顺序一致;兄弟算子 bitwise_or 的 Inplace 接口也都有样例); - 测试:新增 RegBase dtype / 维度 / 格式契约 UT(8 例); - golden.py 注册 *TensorOut golden,并按 TTK TestSpec 补 third_party 三方标杆;新增 5 条 ST 用例;修正 arch35 ST 整数 dtype 取值范围与精度容差; - 删除 tests/ut/op_host/op_api 下 3 个**从未参与编译的死文件**(依据:该目录 CMakeLists 为占位、无 add_modules_ut_sources;op_host UT 仅 GLOB test_*_tiling.cpp、op_api UT 仅扫 tests/ut/op_api;全仓零引用)。README 只引用 examples/ 与 docs/,不引用 tests/,样例链接不受影响。 **5. 清理** - 6 个头 / 源文件 clang-format 对齐、去掉 CMakeLists 末尾空行、新增文件版权年份统一 2026(纯格式,无语义变化)。 ## 上板验证(Ascend950PR_9589) | 通路 | 结果 | |---|---| | aclnn ST(30 例) | **30/30 PASS** | | e2e ST(13 例) | **13/13 PASS** | | dtype 契约 UT(8 例) | **8/8 PASSED** | - 精度口径:精确算符 ((0,0),) + absolute_precision=1e-08;950 上 9×9 输入 × 15 种 out 组合穷举与 torch.bitwise_and 零差异; - 新增 4 个样例上板执行结果与预期一致:*TensorOut 两个样例输出 {0,1,2,3,0,1,4,4};aclnnInplaceBitwiseAndTensor 样例原地写回 {0,1,2,3,0,1,4,4}、aclnnInplaceBitwiseAndScalar 样例原地写回 {4,0,2,2}; - pre-commit run --files <变更文件> 全部通过。 ## 范围说明 - dtype 口径调整只落在 RegBase(两个 *TensorOut 接口仅 950 可用,与 docs/zh/op_api_list.md 第 66 行 A2/A3 列为 - 一致);非 RegBase 仅上述两处支持标注纠错,**不改动 dtype 口径与业务代码逻辑**; - 以下两条**本 MR 有意不做改动**,以避免影响其他芯片(非 RegBase)的既有行为:① aclnn_bitwise_and_tensor.cpp 是否补 IsRegBase() 区分(现状与 bitwise_or 一致,bitwise_xor 已两侧区分);② 两篇 Tensor 文档是否补「非 RegBase 不支持 UINT32、UINT64」注记。二者属非 RegBase 的 dtype 口径,需产品裁定与相应产品上板实测后另行处理。 See merge request: cann/ops-math!6375 | 22 days ago | |
fix(bitwise_and): 资料与业务代码一致性整改 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !6375 merge fix/bitwise_and_doc_code_consistency into master fix(bitwise_and): 资料与业务代码一致性整改 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 关联 Issue - #3590 ## 修改原因 math/bitwise_and 的资料与业务代码能力存在不一致:aclnnBitwiseAndTensorOut 系列接口漏支持 UINT32/UINT64、文档 dtype 与错误码和实现不符、两篇 Inplace 文档的 310P 支持标注与自身注释自相矛盾。本 MR 在**上板实测**后做一致性整改。 ## 主要修改 **1. 补齐 RegBase 接口能力(核心)** - aclnnBitwiseAndTensorOut / aclnnInplaceBitwiseAndTensorOut(仅 Ascend 950 系列可用)的 DTYPE_SUPPORT_LIST 由 7 种扩为 9 种(补 UINT32/UINT64),与 aclnnBitwiseAndTensor、torch.bitwise_and 对齐,消除**漏支持**; - 资料同步:aclnn_bitwiseand.h(self/other 7→9、out 7→15)、aclnnBitwiseAndTensorOut&aclnnInplaceBitwiseAndTensorOut.md(self/other 7→9、out 9→15),错误码表补两条“数据格式需保持一致”。 **2. 修正 310P 支持标注(仅资料口径,不动代码)** - aclnnInplaceBitwiseAndScalar.md、aclnnInplaceBitwiseAndTensor.md 的「Atlas推理系列产品」由“不支持”改为“支持”:与文档自身 dtype 注记自洽(310P 属支持产品、仅不支持 UINT32/UINT64),且与 bitwise_or / bitwise_xor / logical_and 全家族 Inplace 口径一致;业务代码无任何 310P 专属限制。两篇文档下方 dtype 注记保持原样。 **3. 通用资料纠错(与产品无关)** - 计算公式:标量接口 out_i = self_i & other、Inplace 张量接口 selfRef_i = selfRef_i & other_i;输入推导链接改为 deduction_relationship; - **带 out 接口的口径对齐**:aclnnBitwiseAndScalar.md 的 out 数据类型由 11 种补为 15 种(补 UINT32、UINT64、COMPLEX64、COMPLEX128),与同族 bitwise_or / bitwise_xor 的 Scalar 类文档逐字一致;aclnnBitwiseAndTensor.md 的 out(9 种)与两位兄弟的 Tensor 类文档保持一致,未改动; - 错误码表头统一“返回值”,修正越界与空指针行;README 的功能说明与「描述」列收敛为与其他算子一致(详见下条),并补齐两个 *TensorOut 样例链接; - README「参数说明」由 - self(aclTensor*,计算输入) 列表式改为与仓库标准一致的五列参数表(参数名 / 输入、输出、属性 / 描述 / 数据类型 / 数据格式),**参数说明内不再体现 aclTensor、aclScalar 类型标注**(与 bitwise_or/bitwise_xor 及全仓 189 个表格式 README 一致);dtype 口径以“支持列表 + 按产品注解”表达,并按 产品支持情况 里所有 √ 的产品补齐注解覆盖(950 落在表内支持列表;Atlas A3、Atlas A2、Atlas推理系列产品、Atlas训练系列产品 由表后注解给出不支持项,与本文档 aclnnBitwiseAndScalar.md 的 dtype 注记口径逐字一致),原内容不删减; - README 收敛为与其他算子写法一致:功能说明去掉 (Tensor-Tensor 与 Tensor-Scalar 两种形式) 枚举(全仓 236 个 README 中仅此 1 例),计算公式改为 当other为张量时 / 当other为标量时;「描述」列删除属于 API 文档的子句(支持非连续的Tensor、数据维度不支持8维以上),并去掉 other/out 里的 Tensor-Tensor形式/Tensor-Scalar形式 表述与 broadcast关系/互转换关系 子句(去掉限定词后这些子句在标量接口下会失真)—— 三列「描述」与同族 bitwise_or/bitwise_xor **逐字一致**;相关信息由本算子 5 篇 API 文档的「使用说明」「维度(shape)」「非连续Tensor」专列及 README 的约束说明承载,无信息丢失。 **4. 样例与测试** - 样例:新增两个 *TensorOut 样例;并补齐此前缺失的 aclnnInplaceBitwiseAndScalar / aclnnInplaceBitwiseAndTensor 两个样例,README 调用说明表随之从 2 行补到 **6 行**(与 docs/zh/op_api_list.md 的接口顺序一致;兄弟算子 bitwise_or 的 Inplace 接口也都有样例); - 测试:新增 RegBase dtype / 维度 / 格式契约 UT(8 例); - golden.py 注册 *TensorOut golden,并按 TTK TestSpec 补 third_party 三方标杆;新增 5 条 ST 用例;修正 arch35 ST 整数 dtype 取值范围与精度容差; - 删除 tests/ut/op_host/op_api 下 3 个**从未参与编译的死文件**(依据:该目录 CMakeLists 为占位、无 add_modules_ut_sources;op_host UT 仅 GLOB test_*_tiling.cpp、op_api UT 仅扫 tests/ut/op_api;全仓零引用)。README 只引用 examples/ 与 docs/,不引用 tests/,样例链接不受影响。 **5. 清理** - 6 个头 / 源文件 clang-format 对齐、去掉 CMakeLists 末尾空行、新增文件版权年份统一 2026(纯格式,无语义变化)。 ## 上板验证(Ascend950PR_9589) | 通路 | 结果 | |---|---| | aclnn ST(30 例) | **30/30 PASS** | | e2e ST(13 例) | **13/13 PASS** | | dtype 契约 UT(8 例) | **8/8 PASSED** | - 精度口径:精确算符 ((0,0),) + absolute_precision=1e-08;950 上 9×9 输入 × 15 种 out 组合穷举与 torch.bitwise_and 零差异; - 新增 4 个样例上板执行结果与预期一致:*TensorOut 两个样例输出 {0,1,2,3,0,1,4,4};aclnnInplaceBitwiseAndTensor 样例原地写回 {0,1,2,3,0,1,4,4}、aclnnInplaceBitwiseAndScalar 样例原地写回 {4,0,2,2}; - pre-commit run --files <变更文件> 全部通过。 ## 范围说明 - dtype 口径调整只落在 RegBase(两个 *TensorOut 接口仅 950 可用,与 docs/zh/op_api_list.md 第 66 行 A2/A3 列为 - 一致);非 RegBase 仅上述两处支持标注纠错,**不改动 dtype 口径与业务代码逻辑**; - 以下两条**本 MR 有意不做改动**,以避免影响其他芯片(非 RegBase)的既有行为:① aclnn_bitwise_and_tensor.cpp 是否补 IsRegBase() 区分(现状与 bitwise_or 一致,bitwise_xor 已两侧区分);② 两篇 Tensor 文档是否补「非 RegBase 不支持 UINT32、UINT64」注记。二者属非 RegBase 的 dtype 口径,需产品裁定与相应产品上板实测后另行处理。 See merge request: cann/ops-math!6375 | 22 days ago | |
fix(bitwise_and): 资料与业务代码一致性整改 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !6375 merge fix/bitwise_and_doc_code_consistency into master fix(bitwise_and): 资料与业务代码一致性整改 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 关联 Issue - #3590 ## 修改原因 math/bitwise_and 的资料与业务代码能力存在不一致:aclnnBitwiseAndTensorOut 系列接口漏支持 UINT32/UINT64、文档 dtype 与错误码和实现不符、两篇 Inplace 文档的 310P 支持标注与自身注释自相矛盾。本 MR 在**上板实测**后做一致性整改。 ## 主要修改 **1. 补齐 RegBase 接口能力(核心)** - aclnnBitwiseAndTensorOut / aclnnInplaceBitwiseAndTensorOut(仅 Ascend 950 系列可用)的 DTYPE_SUPPORT_LIST 由 7 种扩为 9 种(补 UINT32/UINT64),与 aclnnBitwiseAndTensor、torch.bitwise_and 对齐,消除**漏支持**; - 资料同步:aclnn_bitwiseand.h(self/other 7→9、out 7→15)、aclnnBitwiseAndTensorOut&aclnnInplaceBitwiseAndTensorOut.md(self/other 7→9、out 9→15),错误码表补两条“数据格式需保持一致”。 **2. 修正 310P 支持标注(仅资料口径,不动代码)** - aclnnInplaceBitwiseAndScalar.md、aclnnInplaceBitwiseAndTensor.md 的「Atlas推理系列产品」由“不支持”改为“支持”:与文档自身 dtype 注记自洽(310P 属支持产品、仅不支持 UINT32/UINT64),且与 bitwise_or / bitwise_xor / logical_and 全家族 Inplace 口径一致;业务代码无任何 310P 专属限制。两篇文档下方 dtype 注记保持原样。 **3. 通用资料纠错(与产品无关)** - 计算公式:标量接口 out_i = self_i & other、Inplace 张量接口 selfRef_i = selfRef_i & other_i;输入推导链接改为 deduction_relationship; - **带 out 接口的口径对齐**:aclnnBitwiseAndScalar.md 的 out 数据类型由 11 种补为 15 种(补 UINT32、UINT64、COMPLEX64、COMPLEX128),与同族 bitwise_or / bitwise_xor 的 Scalar 类文档逐字一致;aclnnBitwiseAndTensor.md 的 out(9 种)与两位兄弟的 Tensor 类文档保持一致,未改动; - 错误码表头统一“返回值”,修正越界与空指针行;README 的功能说明与「描述」列收敛为与其他算子一致(详见下条),并补齐两个 *TensorOut 样例链接; - README「参数说明」由 - self(aclTensor*,计算输入) 列表式改为与仓库标准一致的五列参数表(参数名 / 输入、输出、属性 / 描述 / 数据类型 / 数据格式),**参数说明内不再体现 aclTensor、aclScalar 类型标注**(与 bitwise_or/bitwise_xor 及全仓 189 个表格式 README 一致);dtype 口径以“支持列表 + 按产品注解”表达,并按 产品支持情况 里所有 √ 的产品补齐注解覆盖(950 落在表内支持列表;Atlas A3、Atlas A2、Atlas推理系列产品、Atlas训练系列产品 由表后注解给出不支持项,与本文档 aclnnBitwiseAndScalar.md 的 dtype 注记口径逐字一致),原内容不删减; - README 收敛为与其他算子写法一致:功能说明去掉 (Tensor-Tensor 与 Tensor-Scalar 两种形式) 枚举(全仓 236 个 README 中仅此 1 例),计算公式改为 当other为张量时 / 当other为标量时;「描述」列删除属于 API 文档的子句(支持非连续的Tensor、数据维度不支持8维以上),并去掉 other/out 里的 Tensor-Tensor形式/Tensor-Scalar形式 表述与 broadcast关系/互转换关系 子句(去掉限定词后这些子句在标量接口下会失真)—— 三列「描述」与同族 bitwise_or/bitwise_xor **逐字一致**;相关信息由本算子 5 篇 API 文档的「使用说明」「维度(shape)」「非连续Tensor」专列及 README 的约束说明承载,无信息丢失。 **4. 样例与测试** - 样例:新增两个 *TensorOut 样例;并补齐此前缺失的 aclnnInplaceBitwiseAndScalar / aclnnInplaceBitwiseAndTensor 两个样例,README 调用说明表随之从 2 行补到 **6 行**(与 docs/zh/op_api_list.md 的接口顺序一致;兄弟算子 bitwise_or 的 Inplace 接口也都有样例); - 测试:新增 RegBase dtype / 维度 / 格式契约 UT(8 例); - golden.py 注册 *TensorOut golden,并按 TTK TestSpec 补 third_party 三方标杆;新增 5 条 ST 用例;修正 arch35 ST 整数 dtype 取值范围与精度容差; - 删除 tests/ut/op_host/op_api 下 3 个**从未参与编译的死文件**(依据:该目录 CMakeLists 为占位、无 add_modules_ut_sources;op_host UT 仅 GLOB test_*_tiling.cpp、op_api UT 仅扫 tests/ut/op_api;全仓零引用)。README 只引用 examples/ 与 docs/,不引用 tests/,样例链接不受影响。 **5. 清理** - 6 个头 / 源文件 clang-format 对齐、去掉 CMakeLists 末尾空行、新增文件版权年份统一 2026(纯格式,无语义变化)。 ## 上板验证(Ascend950PR_9589) | 通路 | 结果 | |---|---| | aclnn ST(30 例) | **30/30 PASS** | | e2e ST(13 例) | **13/13 PASS** | | dtype 契约 UT(8 例) | **8/8 PASSED** | - 精度口径:精确算符 ((0,0),) + absolute_precision=1e-08;950 上 9×9 输入 × 15 种 out 组合穷举与 torch.bitwise_and 零差异; - 新增 4 个样例上板执行结果与预期一致:*TensorOut 两个样例输出 {0,1,2,3,0,1,4,4};aclnnInplaceBitwiseAndTensor 样例原地写回 {0,1,2,3,0,1,4,4}、aclnnInplaceBitwiseAndScalar 样例原地写回 {4,0,2,2}; - pre-commit run --files <变更文件> 全部通过。 ## 范围说明 - dtype 口径调整只落在 RegBase(两个 *TensorOut 接口仅 950 可用,与 docs/zh/op_api_list.md 第 66 行 A2/A3 列为 - 一致);非 RegBase 仅上述两处支持标注纠错,**不改动 dtype 口径与业务代码逻辑**; - 以下两条**本 MR 有意不做改动**,以避免影响其他芯片(非 RegBase)的既有行为:① aclnn_bitwise_and_tensor.cpp 是否补 IsRegBase() 区分(现状与 bitwise_or 一致,bitwise_xor 已两侧区分);② 两篇 Tensor 文档是否补「非 RegBase 不支持 UINT32、UINT64」注记。二者属非 RegBase 的 dtype 口径,需产品裁定与相应产品上板实测后另行处理。 See merge request: cann/ops-math!6375 | 22 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 1 month ago | ||
| 22 days ago | ||
| 1 month ago | ||
| 20 days ago | ||
| 22 days ago | ||
| 22 days ago | ||
| 22 days ago | ||
| 22 days ago |