| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
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 个月前 | |
fix: 修复 equal/not_equal/less/less_equal 算子日志拼写/语义/copy-paste 错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !5187 merge fix/comparison-log-audit into master fix: 修复 equal/not_equal/less/less_equal 算子日志拼写/语义/copy-paste 错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 参照 log_audit_report.md,修复 ops-math 仓库比较类算子(equal/not_equal/less/less_equal)的日志拼写、语义及 copy-paste 错误。本 PR 由原 PR #5158 拆分而来(拆分方案:算术/比较/极值/其他 共 4 个 PR),仅修改日志文案/注释,不改动 REG_OP/INPUT/OUTPUT/ATTR 等代码定义。 ### 改动原因 log_audit_report.md 中 ops-math 仓库共发现 107 个日志问题,此前已通过 PR #4779(floor_mod/floor_div)、PR #4949(mod/mul/pow)、PR #5117(bitwise_and)修复了部分。原 PR #5158 一次性提交剩余 33 个文件的修复,为便于评审与独立合入,按算子类别拆分为 4 个 PR。本 PR 为拆分后的第 2 个,覆盖比较类(6 文件)。 ### 改动方法 仅修改日志文案/注释中的拼写、语义、copy-paste 错误,同时按 pre-commit clang-format 要求对文件做格式化。 ### 涉及修复(6 文件) **拼写/语法:** - is not support → is not supported(not_equal) - only support → only supports(equal) **copy-paste/语义:** - less:tag LessTiling → TilingForLess - less_equal:InferShape4Less → InferShape4LessEqual;tag LessEqualTiling → Tiling4LessEqual ## 关联的Issue - #2950 ## 测试 - 仅日志文案/格式修改,无逻辑变更,不影响编译与功能。 - pre-commit 全部代码 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5187 | 2 个月前 | |
abs等算子A5实现 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !495 merge develop into master abs等算子A5实现 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 新增以下算子的A5实现 |序号| 算子 | 功能 | |--|--|--| |1| abs | 为输入张量的每一个元素取绝对值 | |2| add | 对输入完成相加操作 | |3| addcdiv | 张量运算函数,用于执行乘除加组合操作,将张量除法(带缩放)+ 张量加法合并为单个操作 | |4| addcmul | 张量运算函数,用于执行乘除加组合操作,将张量乘法(带缩放)+ 张量加法合并为单个操作 | |5| axpy | 源操作数中每个元素与标量求积后和目的操作数中的对应元素相加 | |6| bincount | 计算非负整数数组中每个数的频率 | |7| ceil | 返回输入tensor中每个元素向上取整的结果 | |8| clip_by_value_v2 | 将输入的所有元素限制在一定范围内 | |9| concat | 用于沿指定维度将多个输入 Tensor 进行拼接,输出包含所有输入数据按顺序拼接后的 Tensor | |10| concat_v2 | 用于沿指定维度将多个输入 Tensor 进行拼接,输出包含所有输入数据按顺序拼接后的 Tensor | |11| equal | 计算两个Tensor是否有相同的大小和元素,返回一个Bool类型 | |12|exp|返回一个新的张量,该张量的每个元素都是输入张量对应元素的指数| |13| fill | 对张量进行填充操作,支持非连续的Tensor操作 | |14| floor | 返回输入Tensor中每个元素向下取整,并将结果回填到输入Tensor中 | |15| floor_div | 完成除法计算,对余数向下取整 | |16| floor_mod | 用于计算两个数的模 | |17| is_neg_inf | 判断输入张量的元素是否为负无穷 | |18| is_pos_inf | 判断输入张量的元素是否为正无穷 | |19| less | 判断输入self中的每个元素是否小于输入other的值,返回一个Bool类型的Tensor | |20| less_equal | 判断输入self中的元素值是否小于等于other的值,并将self的每个元素的值与other值的比较结果写入out中 | |21| logical_and | 对两个输入张量的对应元素执行「与逻辑」判断,输出布尔型张量(True/False) | |22| log | 对输入张量x的元素,逐元素进行对数计算,并将结果保存到输出张量y中 | |23| not_equal | 逐元素比较两个输入张量是否不相等 | |24| ones_like | 返回形状和类型相同的张量,所有元素都设置为1 | |25|sign|对输入的tensor逐元素进行Sign符号函数的运算并输出结果tensor| |26| sqrt | 完成非负数平方根计算,负数情况返回nan | |27| sqrt_grad | 完成梯度平方根计算 | |28| square | 为输入张量的每一个元素计算平方值 | |29| squared_difference | 为第一个输入张量减去第二个输入张量,并计算其平方值 | |30| tanh | 激活函数,返回与输入tensor shape相同的tensor,对输入tensor进行elementwise的计算 | |31| tril | 将输入的self张量的最后二维(按shape从左向右数)沿对角线的右上部分置零 | |32| triu | 将输入的self张量的最后二维(按shape从左向右数)沿对角线的左下部分置零 | |33| zeros_like | 将张量填充为全零 | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!495 | 10 个月前 | |
refactor: 消除 math 算子重复头文件依赖,统一引用 base 仓 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !2969 merge feature/conversion-dedup into master refactor: 消除 math 算子重复头文件依赖,统一引用 base 仓 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 消除 math 目录下 60+ 个算子的重复头文件依赖,将 tiling 基类和模板注册引用统一到 base 仓。 ### 改动原因 math 目录下各算子各自直接 #include tiling_base.h 和 tiling_templates_registry.h,且通过 using namespace Ops::Math::OpTiling 引入全局命名空间: - tiling_base.h 中 TilingBaseClass 已在 base 仓提取为 tiling_base_class.h - tiling_templates_registry.h 中 math 专用注册宏已拆分到 math_tiling_templates_registry.h - using namespace 引入全局命名空间会导致符号冲突风险 ### 改动方法 1. 修正 math_tiling_templates_registry.h 中文件注释和拼写错误 2. 批量更新 math 算子文件的 #include: - tiling_base.h → tiling_base_class.h - tiling_templates_registry.h → math_tiling_templates_registry.h 3. 移除 using namespace Ops::Math::OpTiling,改用显式命名空间: - TilingBaseClass → Ops::Base::TilingBaseClass - TilingRegistry::GetInstance() → Ops::Math::OpTiling::TilingRegistry::GetInstance() ## 关联的Issue - #1682 ## 测试 - 涉及的 math 算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,消除重复头文件依赖 See merge request: cann/ops-math!2969 | 5 个月前 | |
补充exp、sign、log、ones_like、zeros_like、equal、not_equal算子的ut,并优化include Co-authored-by: guanxiaoxiao<guanxiaoxiao2@huawei.com> # message auto-generated for no-merge-commit merge: !620 merge gxx into master 补充exp、sign、log、ones_like、zeros_like、equal、not_equal算子的ut,并优化include Created-by: gxx_gitcode Commit-by: guanxiaoxiao Merged-by: cann-robot Description: ## 描述 补充exp、sign、log、ones_like、zeros_like、equal、not_equal算子的ut,并优化include ## 关联的Issue https://gitcode.com/cann/ops-math/issues/391 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!620 | 9 个月前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 2 个月前 | |
add aclnn golden Co-authored-by: gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !4593 merge 20260812 into master add aclnn golden Created-by: gcw_CRjbEjwl Commit-by: gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子增加aclnn的golden注册函数,由冒烟流水调用,跑新版ttk用例。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 不涉及 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地完成验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/ops-math!4593 | 2 个月前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 2 个月前 | |
修改math仓失效链接 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !1227 merge md_link into master 修改math仓失效链接 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改math仓失效链接 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/718 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!1227 | 8 个月前 |
Equal
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:计算两个Tensor是否有相同的大小和元素,返回一个Bool类型。
-
计算表达式:
out=(self==other)?True:Falseout = (self == other) ? True : False out=(self==other)?True:False
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 公式中的输入self。 | FLOAT、BFLOAT16、FLOAT16、INT32、INT8、UINT8、DOUBLE、INT16、INT64、COMPLEX64、COMPLEX128、QUINT8、QINT8、QINT32、STRING、BOOL | ND |
| x2 | 输入 | 公式中的输入other。 | FLOAT、BFLOAT16、FLOAT16、INT32、INT8、UINT8、DOUBLE、INT16、INT64、COMPLEX64、COMPLEX128、QUINT8、QINT8、QINT32、STRING、BOOL | ND |
| y | 输出 | 公式中的out。 | BOOL | ND |
约束说明
如果计算量过大可能会导致算子执行超时(aicore error类型报错,errorStr为:timeout or trap error),场景为最后2轴合轴小于16,前面的轴合轴超大。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_equal.cpp | 通过aclnnEqual接口方式调用Equal算子。 |
| 图模式调用 | test_geir_equal.cpp | 通过算子IR构图方式调用Equal算子。 |