| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
删除查看源码冗余信息 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6345 merge master into master 删除查看源码冗余信息 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> gitcode支持直接发布md,需要删除acl*.md中查看源码冗余信息 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> acl*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6345 | 1 天前 | |
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 | 2 个月前 | |
refactor: 为公共op_api头文件增加math后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5839 merge refactor/math-prefix-common-headers into master refactor: 为公共op_api头文件增加math后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-math/common/inc/op_api 中的 level2_base.h、level2_base_caculation.h、op_api_def.h 名称缺少仓库标识。在软件包合并交付或公共 include 目录集成时,存在被其他仓库同名文件覆盖,或因 include 路径顺序产生误引用的风险。 本 MR 参考同目录已有的 op_resource_math.h 命名,为三个公共头文件增加 _math 后缀,并通过兼容转发头分阶段迁移现有引用。 ## 修改内容 - 新增 level2_base_math.h、level2_base_caculation_math.h、op_api_def_math.h,作为带仓库标识的正式实现; - 原 level2_base.h、level2_base_caculation.h、op_api_def.h 保留为轻量兼容转发头,避免未迁移代码立即失效; - 新头文件之间的内部依赖统一使用 _math 后缀路径; - 更新 classify_rule.yaml,让 level2_base_math.h 继承原组件及 UT 覆盖率分类; - 将 89 处旧头文件引用迁移到新名称: - level2_base.h:20 处; - level2_base_caculation.h:9 处; - op_api_def.h:60 处; - 当前 MR 共修改 81 个文件,新增 434 行、删除 384 行。 为减少无关格式变化和后续合并冲突,本次未迁移会触发额外 clang-format、尾部空白或 EOF 修复,或组合触发既有 UT 隔离问题的文件。这些文件将拆分到后续 MR 逐步处理。 ## 剩余迁移 当前仓内仍有 67 处旧引用,分布在 65 个唯一文件中,继续通过兼容转发头工作: - level2_base.h:24 个文件; - level2_base_caculation.h:2 个文件; - op_api_def.h:41 个文件。 待旧引用分批迁移完成后,再结合实际打包和安装规则移除兼容转发头。本 MR 不移除旧头文件,也不声明已完成最终软件包去重。 ## 关联的 Issue 关联并在合入后关闭 #3243: https://gitcode.com/cann/ops-math/issues/3243 ## 测试 已完成: - 对本轮新增的 69 个纯引用替换文件逐行检查,80 组增删均仅修改目标 include,无其他代码或格式变化; - 额外纳入 aclnn_log10.cpp 和 aclnn_logdet.cpp,每个文件最终均为 3 行新增、3 行删除,低于 10 行修改阈值;math/sin/op_api/aclnn_sin.cpp 因聚合 UT 存在平台状态泄漏暂缓迁移; - 在 CANN 9.0.0 容器执行完整 pre-commit,尾部空白、EOF、clang-format、codespell 和 OAT 等检查全部通过; - 在 CANN 9.0.0 容器执行 bash build.sh --opapi -j32,全量构建通过; - 成功生成 build/libopapi_math.so,SHA-256:abaa8f8408979d931a8dad09f8e06875722fc42bbdddc72aaf9f14944bc163ea; - classify_rule.yaml 可正常解析,三个旧文件继续作为兼容转发头使用。 ## 文档更新 不涉及用户文档变更。 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码重构 See merge request: cann/ops-math!5839 | 7 天前 | |
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 个月前 | |
feat: 8个算子新增ascend350平台支持(axpy/axpy_v2/bitwise_or/div/gcd/ger/signbit/bitwise_xor) Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !6051 merge ascend350_adapt_w3 into master feat: 8个算子新增ascend350平台支持(axpy/axpy_v2/bitwise_or/div/gcd/ger/signbit/bitwise_xor) Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 第三波 ascend350 平台适配(8 算子 + mod 继承验证): **算子清单**:axpy、axpy_v2、bitwise_or、div、gcd、ger、signbit、bitwise_xor(mod 上游已含 350,验证继承) **适配内容(每个算子四件套)**: 1. def:追加 AddConfig("ascend350")(复用 950 同款 aicoreConfig) 2. config/ascend350/:binary json 整体拷贝自 ascend950(逐字节一致,杜绝手写遗漏) 3. 算子根 CMake:SUPPORT_COMPUTE_UNIT 追加 ascend350;SUPPORT_TILING_DIR 与 COMPUTE_UNIT 数量对齐(arch35) 4. ascendc_config.json:登记 Axpy/AxpyV2/BitwiseOr/Div/Signbit 五条 ascend350(Gcd/Ger/BitwiseXor 950 无条目,对标不新增) **平台一致性**:350 与 950 同 arch35(NpuArch DAV_3510),kernel/tiling/op_api 分派(IsRegBase 集合含 DAV_3510)平台无关或天然命中,无需额外改动。 ## 关联的Issue 无 ## 测试 - Ascend350(A5 环境,cann 9.2.0)build.sh --soc=ascend350 全量编译通过,8 算子产物 .o 齐全(含 truncate_div_apt 连带) - json 注入核验:350 与 950 逐项相同 - mod 四件套上游已含 350,编译验证通过 ## 文档更新 无需更新(平台适配不涉及接口文档变化) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他 ## 关联的Issue - 关联 Issue: #3519 See merge request: cann/ops-math!6051 | 2 天前 | |
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 | 2 个月前 | |
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 个月前 | |
perf(div): aclnnDivs 标量路径在 out 与 self 同 dtype 时跳过冗余 Cast Co-authored-by: wangqi<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !5957 merge perf/div-skip-redundant-cast into master perf(div): aclnnDivs 标量路径在 out 与 self 同 dtype 时跳过冗余 Cast Created-by: wangqi_ai Commit-by: wangqi Merged-by: cann-robot Description: ## 描述 out 与 self 同 dtype 且走倒数乘(Muls)路径时,原实现先插 Cast(self -> fp32) 再 Muls(fp32),最后由输出 Cast 回写,共 3 个 kernel。 Muls 的 bf16/fp16 kernel 内部本身即 bf16/fp16 -> fp32 -> CAST_RINT 回写(见 math/muls/op_kernel/arch35/muls_dag.h 的 MulsOp),与上述链路逐位等价,故该次 Cast 可省,kernel 数 3 -> 1。 out 与 self 不同 dtype 时不可省,否则会引入二次舍入,或提前丢范围/精度。改动仅在 canUseMuls && out == self 时生效,其余路径行为不变。 改动文件: - math/div/op_api/aclnn_div.cpp - math/div/tests/ut/op_api/test_aclnn_div.cpp ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3299 ## 测试 - 构建:bash build.sh -u --opapi --ops=div -j16 --noexec 通过; - UT:math_op_api_ut 70/70 通过,其中新增 5 条: - bf16 / fp16 且 out==self(新 skip-cast 路径); - bf16 / fp16 且 out=fp32(守卫:out≠self 不跳过); - 非连续 bf16 + double 标量(CanUseMuls=false 的 RealDiv 路径回归)。 - 静态检查:pre-commit(trailing-whitespace / end-of-file-fixer / clang-format / codespell / OAT 合规)全部通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5957 | 22 天前 | |
feat: 8个算子新增ascend350平台支持(axpy/axpy_v2/bitwise_or/div/gcd/ger/signbit/bitwise_xor) Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !6051 merge ascend350_adapt_w3 into master feat: 8个算子新增ascend350平台支持(axpy/axpy_v2/bitwise_or/div/gcd/ger/signbit/bitwise_xor) Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 第三波 ascend350 平台适配(8 算子 + mod 继承验证): **算子清单**:axpy、axpy_v2、bitwise_or、div、gcd、ger、signbit、bitwise_xor(mod 上游已含 350,验证继承) **适配内容(每个算子四件套)**: 1. def:追加 AddConfig("ascend350")(复用 950 同款 aicoreConfig) 2. config/ascend350/:binary json 整体拷贝自 ascend950(逐字节一致,杜绝手写遗漏) 3. 算子根 CMake:SUPPORT_COMPUTE_UNIT 追加 ascend350;SUPPORT_TILING_DIR 与 COMPUTE_UNIT 数量对齐(arch35) 4. ascendc_config.json:登记 Axpy/AxpyV2/BitwiseOr/Div/Signbit 五条 ascend350(Gcd/Ger/BitwiseXor 950 无条目,对标不新增) **平台一致性**:350 与 950 同 arch35(NpuArch DAV_3510),kernel/tiling/op_api 分派(IsRegBase 集合含 DAV_3510)平台无关或天然命中,无需额外改动。 ## 关联的Issue 无 ## 测试 - Ascend350(A5 环境,cann 9.2.0)build.sh --soc=ascend350 全量编译通过,8 算子产物 .o 齐全(含 truncate_div_apt 连带) - json 注入核验:350 与 950 逐项相同 - mod 四件套上游已含 350,编译验证通过 ## 文档更新 无需更新(平台适配不涉及接口文档变化) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他 ## 关联的Issue - 关联 Issue: #3519 See merge request: cann/ops-math!6051 | 2 天前 | |
产品名变更 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 | 24 天前 |
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算子。 |