| Files | Last commit | Last update |
|---|---|---|
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 | |
BitwiseAnd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4658 merge raii-bitwise_and into master BitwiseAnd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/bitwise_and/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2655 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4658 | 2 months 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 |
|---|---|---|
| 22 days ago | ||
| 2 months ago | ||
| 22 days ago | ||
| 22 days ago | ||
| 22 days ago | ||
| 22 days ago |