| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 12 天前 | |
fix(math): release resources on init failure in brc aclnn examples Co-authored-by: xjh2527<522024330101@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4633 merge fix/init-resource-leak-brc-ifaces into master fix(math): release resources on init failure in brc aclnn examples Created-by: xjh2527 Commit-by: xjh2527 Merged-by: cann-robot Description: ## 描述 修复 ops-math 仓库中 BRC(二元广播计算)类算子调用示例在初始化失败场景下资源释放不完整的问题。 - aclrtSetDevice 失败时,在返回前调用 aclFinalize,释放已初始化的 ACL 资源。 - aclrtCreateStream 失败时,在返回前依次调用 aclrtResetDevice 和 aclFinalize,释放已设置的 Device 及 ACL 资源。 - 保留原有 CHECK_RET 写法和正常执行路径的资源释放顺序。 - 同步修改文档示例和对应的可执行示例源码,保证两处代码一致。 本次修改参考 ops-nn PR #8603(aclnnSoftmax)的修复方式,仅补齐资源释放逻辑,不涉及算子 Tiling、Kernel 和计算功能变更。修复范围严格对应 Issue #2653 中描述的 BRC 算子 ACLNN 接口清单,逐接口匹配对应的 docs/aclnn*.md 文档与 examples/test_aclnn_*.cpp 示例。experimental/ 镜像不在本次范围内。 ## 涉及算子 共 138 个文件(69 个 examples/test_aclnn_*.cpp + 69 个 docs/aclnn*.md),仅覆盖 math/ 和 conversion/ 目录: ### math(120 个文件) - **Add**:aclnnAdd / aclnnAdds / aclnnInplaceAdd / aclnnInplaceAdds - **Sub**:aclnnSub / aclnnSubs / aclnnRsub / aclnnRsubs / aclnnInplaceSub / aclnnInplaceSubs - **Mul / Muls**:aclnnMul / aclnnMuls / aclnnInplaceMul / aclnnInplaceMuls - **Minimum / Maximum**:aclnnMinimum / aclnnMinN / aclnnMaximum / aclnnMaxN - **Signbit**:aclnnSignbit - **Less / LessEqual**:aclnnLtScalar / aclnnLtTensor / aclnnLeScalar / aclnnLeTensor(及 Inplace 变体) - **Greater / GreaterEqual**:aclnnGtScalar / aclnnGtTensor / aclnnGeScalar / aclnnGeTensor(及 Inplace 变体) - **NotEqual / Equal**:aclnnNeScalar / aclnnNeTensor / aclnnLogicalXor / aclnnEqScalar / aclnnEqTensor(及 Inplace 变体) - **Lerp**:aclnnLerp / aclnnLerps / aclnnInplaceLerp / aclnnInplaceLerps - **LogicalAnd / LogicalOr**:aclnnLogicalAnd / aclnnLogicalOr(及 Inplace 变体) - **BitwiseOr / BitwiseAnd / BitwiseXor**:aclnnBitwiseOrScalar / aclnnBitwiseOrTensor / aclnnBitwiseAndScalar / aclnnBitwiseAndTensor / aclnnBitwiseXorScalar / aclnnBitwiseXorTensor(及 Inplace 变体) - **TanhGrad**:aclnnTanhBackward - **Addcmul / Ger / Gcd**:aclnnAddcmul / aclnnGer / aclnnGcd - **SelectV2**:aclnnSWhere - **RealDiv**:aclnnDiv / aclnnDivs / aclnnDivMod / aclnnDivMods(及 Inplace 变体) - **FloorDiv**:aclnnFloorDivide / aclnnFloorDivides(及 Inplace 变体) - **Pow**:aclnnExp2 / aclnnPowTensorScalar / aclnnPowTensorTensor / aclnnPowScalarTensor(及 Inplace 变体) - **Addcdiv**:aclnnAddcdiv / aclnnInplaceAddcdiv - **Mod**:aclnnFmodScalar / aclnnFmodTensor(及 Inplace 变体) - **FloorMod**:aclnnRemainderScalarTensor / aclnnRemainderTensorScalar / aclnnRemainderTensorTensor(及 Inplace 变体) ### conversion(18 个文件) - **ClipByValueV2**:aclnnClamp / aclnnClampMax / aclnnClampMaxTensor / aclnnClampMin / aclnnClampMinTensor / aclnnClampTensor / aclnnHardtanh(及 Inplace 变体) 注:upstream 已用 C++ RAII(StreamPtr / aclGuard)重构的 16 个文件本 PR 跳过,不再重复修改。 ## 关联的Issue Issue #2653:https://gitcode.com/cann/ops-math/issues/2653 ## 测试 - git diff --check:通过。 - pre-commit 全部通过(clang-format / trailing-whitespace / end-of-file-fixer / codespell / markdownlint / OAT 等)。 - CI 流水线全部通过(cann-cla/yes、api-check-pass、ci-pipeline-passed):全平台编译、UT 测试、PreSmoke 均成功。 - 本次仅修改调用示例的异常处理逻辑,未执行 NPU 运行测试。 ## 文档更新 - 更新上述算子 docs/ 目录下的 aclnn*.md 中的调用示例。 - 同步更新 examples/ 目录下的 test_aclnn_*.cpp 可执行示例源码。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4633 | 1 个月前 | |
迁移开源TF插件--math Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge transfer-math into master 迁移开源TF插件--math Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4308 | 2 个月前 | |
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 | 23 天前 | |
math仓算子代码整改 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !881 merge math_op_back_1 into master math仓算子代码整改 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 math仓算子代码整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!881 | 8 个月前 | |
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 | 23 天前 | |
open op ArgMaxV2 ArgMaxWithValue ArgMin ArgMinWithValue BitWiseAnd BitWiseOr LogicalNot MaskedScale Reciprocal Co-authored-by: ChenPengyi<chenpengyi@huawei.com> # message auto-generated for no-merge-commit merge: !588 merge py_docs into master open op ArgMaxV2 ArgMaxWithValue ArgMin ArgMinWithValue BitWiseAnd BitWiseOr LogicalNot MaskedScale Reciprocal Created-by: cpy_123456 Commit-by: ChenPengyi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!588 | 8 个月前 | |
fix(bitwise_and): 修正arch35 ST用例非法数据区间并补充TTK golden与aclnn/e2e/geir用例 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !5907 merge fix/bitwise_and_st into master fix(bitwise_and): 修正arch35 ST用例非法数据区间并补充TTK golden与aclnn/e2e/geir用例 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 描述 **背景**: math/bitwise_and 的 arch35 ST 无法跑通。定位到三个问题: 1. tests/st/arch35/ttk_kernel_bitwise_and_st.csv 有 8 条用例的 input_data_ranges 超出声明 dtype 值域(uint16 负区间、int16/int32 使用 int64 边界值),TTK 输入生成报 INPUT_GEN_FAILURE(8/100 例失败); 2. tests/assets/golden.py 缺失,scripts/ci/ops_st_test.sh 的 check_plugin_assets 失败后直接跳过该算子全部 ST,掩盖了问题 1; 3. tests/st/arch35/ 仅有 kernel 用例,aclnn/e2e/geir 通路无 ST 覆盖。 **方案**(4 个原子提交): - fix(bitwise_and): 修正arch35 kernel ST用例中8条dtype非法的数据区间:无符号负区间映射为同幅度正区间(如 (-10,-2)→(2,10)),int64 边界填充替换为对应 dtype 边界(int16→±32768/32767、int32→2147483647),保持原测试意图;其余 92 行未动。 - fix(bitwise_and): 补充TTK golden测试资产(torch标杆, 覆盖kernel/aclnn/e2e通路):新增 tests/assets/golden.py,golden 统一以 torch.bitwise_and 为标杆,__spec__(TestSpec) 与 legacy __golden__ 双注册;判据 binary_equal(按位运算逐位精确)。逐层对齐三层 dtype 契约:kernel 层严格同 dtype(对齐 tiling 的 GRAPH_FAILED 检查);aclnn 层镜像 op_api 主机检查(PromoteType 提升表已程序化验证与 torch 全 36 组合一致、uint16/32/64 混合按 DT_UNDEFINED 显式拒绝、RegBase 标量 weak-typing、Inplace=out-selfRef 转发语义、cast 入 out);e2e 层保持纯 torch 语义(与框架默认 CPU 同 API 行为零偏差)。 - feat(bitwise_and): 新增arch35 aclnn/e2e/geir三路ST用例各10条:按 ops-test-kit 识别格式补充 ttk_aclnn/ttk_e2e/ttk_geir_bitwise_and_st.csv(CI 按前缀自动发现 aclnn/e2e;geir 经 ttk geir 直跑),覆盖 4 个 aclnn C 接口、7 种 dtype、广播/rank6/rank8/标量属性等场景,全部 ranges 处于 dtype 界内。 - feat(bitwise_and): 补充arch35 aclnn/e2e ST特殊场景用例:aclnn 10→25 条、e2e 10→13 条,新增 bool 通路(LogicalAnd 分支,含 bool&int8 混合提升)、混合 dtype 提升(int8&int32/uint8&int16/int32&int64)、out 窄于 promote 的截断 cast 路径、inplace 混合 dtype(cast 回 self dtype)、标量边界值(int8 -1/uint8 255/uint16 65535/bool True/inplace uint8 0)、rank-0 零维张量、空张量(API IsEmpty 早退路径)、e2e 负标量与设备端混合提升;e2e CSV 补充 input_data_ranges 列(bool 用 (0,1) 区间保证 True/False 混合分布)。geir/kernel 层因算子契约(同 dtype、无 bool)不适用上述特殊组合。 ## 关联的Issue Fixes #3276 https://gitcode.com/cann/ops-math/issues/3276 ## 测试 环境:Ascend 950PR_9589(ascend950/arch35)+ CANN 9.2.0 + TTK v3.0.0(8167baa);算子包经 build.sh --pkg --ops=bitwise_and --soc=ascend950 单独编译部署。 | 测试项 | 命令/入口 | 结果 | |---|---|---| | kernel ST 全量(100 例,修复后 CSV + golden) | scripts/ci/ops_st_test.sh --soc_version=ascend950 --ops=bitwise_and --test_type=kernel | 100/100 PASS,exit 0 | | CI 集成门禁(kernel 100 + aclnn 自动发现) | scripts/ci/ops_st_test.sh --soc_version=ascend950 --ops=bitwise_and | TOTAL 110 / PASSED 110 / PASS RATE 100.00%,exit 0 | | aclnn ST 合并版(25 例:4 接口 × 常规+特殊场景) | ttk aclnn -i ttk_aclnn_bitwise_and_st.csv --plugin math/bitwise_and/tests | 25/25 PASS | | e2e ST 合并版(13 例,torch_npu 2.12.0.post2) | ttk e2e -i ttk_e2e_bitwise_and_st.csv --plugin ... | 13/13 PASS | | geir ST(10 例,GE 图在线编译) | ttk geir -i ttk_geir_bitwise_and_st.csv --plugin ... | 10/10 PASS | | aclnn 泛化回归(外部 l0_functional 用例集 173 例) | ttk aclnn(4 个 CSV) | 173/173 PASS | | golden 离线特殊矩阵 | bool 全通路、8 组混合 dtype ×300 随机对、6 组 inplace 混合 ×400 随机对(对照 C++ promote-compute-cast 流水模拟)、36 组合提升对照 PromoteType 表、标量边界/拒绝路径(uint16+混合→ValueError、float 标量→TypeError、kernel bool/混合→ValueError、out=bool→ValueError)、空张量/0-dim/numpy 兜底 | 全部逐位一致 | | pre-commit(ruff check/format、OAT 合规等,commit 阶段) | pre-commit run --files ... --hook-stage commit | 全部 Passed | 已知边界(记录于 golden.py docstring):TTK 8167baa 对 torch.Tensor.bitwise_and_ 方法形式存在 schema 解析缺陷(alias 回退注入 out= 致设备端 TypeError),e2e 用例采用函数形式规避,Spec 注册保留待上游修复。 ## 文档更新 无 docs/ 目录文档变更;golden.py 内 docstring 记录了三层 dtype 契约与等价性依据。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:测试资产(TTK golden 插件)与 arch35 三路 ST 用例补充(含特殊场景) See merge request: cann/ops-math!5907 | 11 天前 | |
abs等20个算子新增ascend350平台支持 Co-authored-by: ASCEND222<dongfei16@h-partners.com> # message auto-generated for no-merge-commit merge: !5322 merge master into master abs等20个算子新增ascend350平台支持 Created-by: ASCEND222 Commit-by: ASCEND222 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> abs等20个算子新增ascend350平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3028 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5322 | 29 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 12 天前 |
BitwiseAnd
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:计算输入tensor中每个元素和输入标量的按位与结果。输入的tensor与other必须是整型或者BOOL型变量。当输入为BOOL时,计算逻辑与的结果。
-
计算公式:
outi=selfi&otheriout_i = self_i \& other_i outi=selfi&otheri
参数说明
- self(aclTensor*,计算输入):公式中的
self,支持非连续的Tensor,数据格式支持ND,数据维度不支持8维以上。- Ascend 950PR&950DT系列产品:数据类型支持INT16、UINT16、INT32、INT64、INT8、UINT8、UINT32、UINT64、BOOL,且数据类型与other的数据类型需满足数据类型推导规则(参见TensorScalar互推导关系),推导后的数据类型需在支持的数据类型范围内。
- Atlas A2系列产品、Atlas A3系列产品:数据类型支持INT16、UINT16、INT32、INT64、INT8、UINT8、BOOL,且数据类型需要与other满足数据类型推导规则(参见互推导关系),推导后的数据类型需在支持的数据类型范围内。
- other(aclScalar*,计算输入):公式中的
other。- Ascend 950PR&950DT系列产品:数据类型支持INT16、UINT16、INT32、INT64、INT8、UINT8、UINT32、UINT64、BOOL,且数据类型与self的数据类型需满足数据类型推导规则(参见TensorScalar互推导关系),推导后的数据类型需在支持的数据类型范围内。
- Atlas A2系列产品、Atlas A3系列产品:数据类型支持INT16、UINT16、INT32、INT64、INT8、UINT8、BOOL,且数据类型需要与self满足数据类型推导规则(参见互推导关系),推导后的数据类型需在支持的数据类型范围内。
- out(aclTensor*,计算输出):公式中的
out,数据类型需要是self与other推导之后可转换的数据类型(参见互转换关系),shape需要与self保持一致,数据格式支持ND,数据维度不支持8维以上。- Atlas A2系列产品、Atlas A3系列产品:数据类型支持BOOL、INT8、INT16、UINT16、INT32、INT64、UINT8、FLOAT、FLOAT16、DOUBLE、BFLOAT16。
- Ascend 950PR&950DT系列产品:数据类型支持BOOL、INT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、UINT8、FLOAT、FLOAT16、DOUBLE、BFLOAT16、COMPLEX64、COMPLEX128。
约束说明
- 无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_bitwise_and_scalar.cpp | 通过aclnnBitwiseAndScalar接口方式调用BitwiseAndScalar算子。 |
| aclnn接口 | test_aclnn_bitwise_and_tensor.cpp | 通过aclnnBitwiseAndTensor接口方式调用BitwiseAndTensor算子。 |