| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 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 | 8 天前 | |
Div示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4675 merge raii-div into master Div示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/div/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example div eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(不同舍入模式下的商 0、1、2、1.5、2.5、2.333333 等正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4675 | 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 | 1 个月前 | |
feat: 算子910B~910E区间判断追加IsRegBase()并统一DAV_3510硬编码判断以兼容后续Regbase芯片 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5467 merge q_aclnn_version into master feat: 算子910B~910E区间判断追加IsRegBase()并统一DAV_3510硬编码判断以兼容后续Regbase芯片 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 以 RegBase 架构(NpuArch = DAV_3510,含 Ascend950 及后续 Regbase 芯片)兼容为目标,统一两类芯片判断写法: 1. **区间判断追加**:对 13 个算子 op_api 中 GetSocVersion() >= ASCEND910B && GetSocVersion() <= ASCEND910E 区间判断追加 || IsRegBase(),使 RegBase 平台在 SocVersion 区间之外时也复用 910B 支持分支(放开 BF16 dtype 校验) 2. **硬编码统一**:将 11 个算子文件中 case NpuArch::DAV_3510: 硬编码判断改为 IsRegBase() 谓词,后续 Regbase 芯片(IsRegBase 集合扩展新 arch 值时)无需逐文件修改即可自动命中 ## 修改内容一:区间判断追加(13 个文件,15 处) | 算子 | 文件 | 修改位置 | |------|------|----------| | less | math/less/op_api/aclnn_lt_scalar.cpp | GetDtypeSupportList、GetOutDtypeSupportList(2 处) | | less | math/less/op_api/aclnn_lt_tensor.cpp | GetDtypeSupportList、GetOutDtypeSupportList(2 处) | | less_equal | math/less_equal/op_api/aclnn_le_scalar.cpp | GetOutputDtypeSupportList(1 处) | | logical_or | math/logical_or/op_api/aclnn_logical_or.cpp | CheckSocVersionIsSupportBf16(1 处) | | maximum | math/maximum/op_api/aclnn_maximum.cpp | GetDtypeSupportList(1 处) | | minimum | math/minimum/op_api/aclnn_minimum.cpp | GetDtypeSupportList(1 处) | | mul | math/mul/op_api/aclnn_mul.cpp | GetDtypeSupportList(1 处) | | not_equal | math/not_equal/op_api/aclnn_logical_xor.cpp | CheckSocVersionIsSupportBf16(1 处) | | pow | math/pow/op_api/aclnn_pow.cpp | CheckSocVersionIsSupportBf16(1 处) | | pow | math/pow/op_api/aclnn_pow_tensor_tensor.cpp | CheckSocVersionIsSupportBf16(1 处) | | signbit | math/signbit/op_api/aclnn_signbit.cpp | GetDtypeSupportList(1 处) | | sub | math/sub/op_api/sub.cpp | IsAiCoreSupport(1 处) | | equal | math/tensor_equal/op_api/aclnn_equal.cpp | CheckSocVersionGe910B(1 处) | 其中 sub.cpp、aclnn_pow_tensor_tensor.cpp、aclnn_logical_xor.cpp、aclnn_equal.cpp 补充 #include "op_api/aclnn_check.h"。 pow.cpp 的 IsAiCoreSupport、aclnn_ne_scalar.cpp、aclnn_ne_tensor.cpp:区间判断前已有 if (IsRegBase()) 提前返回分支(追加会造成死条件),经评审不修改。 ## 修改内容二:硬编码判断统一(11 个文件,13 处) ### A类:switch 双 case(DAV_3510 与 DAV_2201 同分支,8处) switch 前置 if (IsRegBase(curArch)) 返回原 DAV_3510 分支列表,删除 case NpuArch::DAV_3510: fall-through 行: - Add:math/add/op_api/add.cpp、aclnn_add.cpp - Sub:math/sub/op_api/aclnn_sub.cpp、aclnn_rsub.cpp - div:math/div/op_api/div.cpp(补 include) - floordiv:math/floor_div/op_api/floordiv.cpp(补 include) - tanhgrad:math/tanh_grad/op_api/aclnn_tanh_backward.cpp - floormod:math/floor_mod/op_api/aclnn_remainder.cpp ### B类:switch 独立 case(DAV_3510 单独返回 REGBASE 专用列表,3处) switch 前置 if (IsRegBase(curArch)) 返回 REGBASE 列表,删除独立 case 块: - mul:math/mul/op_api/mul.cpp(REGBASE_AICORE_DTYPE_SUPPORT_LIST) - equal:math/equal/op_api/aclnn_eq_tensor.cpp、aclnn_eq_scalar.cpp(REGBASE_DTYPE_SUPPORT_LIST) ## 关联的Issue - #3100 (math仓910B~910E区间判断的RegBase兼容遗留清理:isclose恒真条件bug、8个同类判断文件未覆盖IsRegBase) ## 测试 - pre-commit 检查(clang-format/codespell/OAT 等)全部通过(含对修改文件的全量格式化) - 全部修改文件 g++ -fsyntax-only 语法验证通过 - 已触发 compile 编译 - 建议测试项: 1. RegBase(DAV_3510)平台验证上述算子 BF16 输入/输出 dtype 校验与 910B 平台一致 2. Ascend950 平台回归 A/B 类算子 dtype 选择行为不变 3. 回归 910B~910E、910/1980、310/310P 平台行为不受影响 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ### 关联issue - [cann/ops-math#5512(报错 dtype 支持列表双层中括号修复,同改 aclnn_remainder.cpp/eq 系列)](https://gitcode.com/cann/ops-math/pull/5512) - [cann/ops-math#5519(RemainderScalarTensor Regbase 计算类型校验,同改 aclnn_remainder.cpp)](https://gitcode.com/cann/ops-math/pull/5519) - [cann/ops-nn#10101(ops-nn 侧同类 Regbase 判断统一)](https://gitcode.com/cann/ops-nn/pull/10101) See merge request: cann/ops-math!5467 | 18 天前 | |
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 个月前 | |
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 | 4 个月前 | |
refactor: arch35算子Reg级API重命名迁移 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !4468 merge work_8 into master refactor: arch35算子Reg级API重命名迁移 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 将 arch35 架构下 40 个算子 kernel 文件中的 Reg 级 API 名称从旧命名迁移到新命名,与已迁移的算子(xlogy、dawsn、rint、cdist、reduce_all、power 等)保持一致。 涉及的 API 重命名映射: - __local_mem__ → __ubuf__(地址空间限定符统一) - Reg::DataCopy (LoadDist) → Reg::LoadAlign(UB 到寄存器的对齐加载) - Reg::DataCopy (StoreDist) → Reg::StoreAlign(寄存器到 UB 的对齐存储) - Reg::DataCopyUnAlignPre → Reg::LoadUnAlignPre - Reg::DataCopyUnAlign → Reg::LoadUnAlign - Reg::MaskPack → Reg::Pack - Reg::MaskUnPack → Reg::UnPack - Reg::MaskAnd → Reg::And(与已有 Reg::And 通过重载统一) - Reg::CompareScalar → Reg::Compares - Reg::UnalignReg → Reg::UnalignRegForLoad 涉及的算子包括:clip_by_value、clip_by_value_v2、adjacent_difference、bitwise_xor、div、floor_div、floor_mod、lerp、logical_or、mod、pow、signbit、tanh_grad。 此外,adjacent_difference 算子中存在原有的 __local_mem__/__ubuf__ 地址空间限定符不一致问题(左侧声明与右侧转换不匹配),本次重命名一并修复。 ### 改动原因 AscendC SDK 更新了 Reg 级 API 命名规范,将原有的 DataCopy 拆分为语义更明确的 LoadAlign/StoreAlign,并移除了 Mask 系列 API 的 "Mask" 前缀(通过重载统一)。本 PR 将相关算子迁移至新命名。 ### 改动方法 纯机械重命名,无逻辑变更。所有改动均为 1:1 的 API 名称替换,增删行数完全对称(+417 -417)。Load/Store 语义区分基于原有模板参数(LoadDist → LoadAlign, StoreDist → StoreAlign)和参数顺序(寄存器在前为 Load,地址在前为 Store)。 ## 关联的Issue - #2529 ## 测试 待补充:二级冒烟测试、算子泛化测试。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 See merge request: cann/ops-math!4468 | 1 个月前 | |
fix(aicpu): correct op def config for math ops Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !2876 merge opdeffix into master fix(aicpu): correct op def config for math ops Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 修正一批 math 仓 AICPU 算子的 op def 配置信息错误。 本次修改主要覆盖 opsFlag、subTypeOfInferShape、formatAgnostic 等配置项;其中与默认配置一致的场景,优先回收为默认值,减少冗余显式配置。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1633 ## 测试 完成静态检查与配置项比对,确认相关算子的 def 配置修改后符合预期。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2876 | 4 个月前 | |
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 | 1 个月前 | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 1 个月前 | |
产品名变更 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 | 8 天前 |
Div
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | √ |
功能说明
-
接口功能:完成除法计算
-
计算公式:
outi=inputiotheriout_i = \frac{input_i}{other_i} outi=otheriinputi
-
例外说明:当涉及Complex运算时,且分母的模为0时,仍然采用通用的复数计算公式,不做特殊处理,此处表现和CPU/GPU存在差异。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 公式中的input。 | BFLOAT16、FLOAT16、FLOAT、INT32、UINT8、INT8、COMPLEX32、COMPLEX64 | ND |
| x2 | 输入 | 公式中的other。 | BFLOAT16、FLOAT16、FLOAT、INT32、UINT8、INT8、COMPLEX32、COMPLEX64 | - |
| y | 输出 | 公式中的out。 | BFLOAT16、FLOAT16、FLOAT、INT32、UINT8、INT8、COMPLEX32、COMPLEX64 | ND |
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_div | 通过AclnnDiv接口方式调用Div算子。 |
| 图模式调用 | test_geir_div | 通过算子IR构图方式调用Div算子。 |