| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs目录基本概念md文件名改为英文 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !4182 merge master into master docs目录基本概念md文件名改为英文 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2283](https://gitcode.com/cann/ops-math/issues/2283) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4182 | 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 | 21 天前 | |
迁移开源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 个月前 | |
style: 修复代码规范问题 Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4610 merge luo1 into master style: 修复代码规范问题 Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: style: 修复代码规范问题 ## 描述 本次改动包含三处代码规范修复,均不涉及逻辑变更: 1. cdist_grad_apt.cpp: CDIST_GRAD_LAUNCH 宏体包裹 do-while(0),防止宏在 if/else 语句中产生悬挂问题 2. amp_update_scale.h: IsFinite 中位运算表达式补充括号,明确 >> 与 == 的优先级顺序 3. aclnn_div.cpp: promoteType 变量声明与初始化合并为一行,符合"变量应在声明时初始化"的规范要求 ## 关联的Issue 无 ## 测试 未运行编译/单测。三处改动均为纯语法层面的规范调整,不影响运行时逻辑: - do-while(0) 包裹后宏作为单条语句使用,行为不变 - 括号仅明确运算优先级,原表达式已隐式满足该优先级 - 声明与初始化合并,变量值与使用时机不变 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复 See merge request: cann/ops-math!4610 | 24 天前 | |
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 | 7 个月前 | |
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 | 3 个月前 | |
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 | 3 个月前 | |
[bugfix] Align A5 div scalar TrueDiv reciprocal and FloorDiv compute dtype with PyTorch CUDA Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !3342 merge div_bug_fix into master [bugfix] Align A5 div scalar TrueDiv reciprocal and FloorDiv compute dtype with PyTorch CUDA Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 描述 对齐 A5(Ascend950 / DAV_3510 / RegBase)上 div 标量路径与 PyTorch CUDA 的计算口径,含两处修复: 1. TrueDiv 标量计算口径与倒数: - fp16/bf16 self 经 PromoteLowPrecToFloat 提升到 float 再计算,标量不被提前降精。 该提升同时覆盖 aclnnDivs 与 aclnnDivMods mode=0(trueDiv 入口)。 - aclnnDivs 命中 CanUseMuls 倒数乘快路时,原实现 1.0f / other->ToFloat() 先把标量 舍到 float 再取倒数;CUDA BinaryDivTrueKernel 在 cpu-scalar 分支以 high_prec(double) 取倒数再单次舍入到 float。改为 static_cast<float>(1.0 / other->ToDouble()),口径一致。 注: 该倒数乘快路仅存在于 aclnnDivs;aclnnDivMods mode=0 走 RealDiv,无倒数乘。 2. FloorDiv 计算 dtype(aclnnDivMods / aclnnInplaceDivMods mode=2): 原实现对 fp16/bf16 self 推导出的 promoteType 仍为 fp16/bf16,使标量除数被 ConvertToTensor 提前压到低精度;CUDA 在 accscalar_t(half/bf16→float)下计算 floor div 并以 float 精度读取标量。将 PromoteLowPrecToFloat 的提升从仅 MODE_REAL_DIV 扩展到同时覆盖 MODE_FLOOR_DIV,使 fp16/bf16 self + 标量在 float 下 计算、标量保留精度,输出 dtype 不变(末尾 Cast 回 out)。 两处改动均隔离在 RegBase(IsRegBase 门禁)分支内;对整型/bool/complex 为 no-op (PromoteLowPrecToFloat 幂等);A2/A3 非 RegBase 及 trunc 推导均不受影响。 ## 关联的Issue - #2002 ## 测试 新增 Ascend950 平台 UT(math/div/tests/ut/op_api/test_aclnn_div.cpp): - TrueDiv: fp16/bf16/fp32 self + float/double 标量的 aclnnDivs 倒数乘路径,aclnnDivMods mode=0 的 RealDiv 路径,及 inplace 委派路径。 - FloorDiv: fp16/bf16 self + float/double 标量经 aclnnDivMods mode=2 的路径,及 inplace 委派路径。 opapi UT 全量 43/43 通过。数值逐位对齐由真机精度用例覆盖。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3342 | 2 个月前 | |
feat: 新增truncate_div A5 实现 Co-authored-by: ly_cann_coder<liyao152@huawei.com> Co-authored-by: focusforce<gongquanchao@huawei.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !2798 merge truncate_div into master feat: 新增truncate_div A5 实现 Created-by: yefeicoding Commit-by: yefeicoding;ly_cann_coder;focusforce Merged-by: cann-robot Description: ## 描述 新增truncate_div A5 实现 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1740 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2798 | 3 个月前 | |
[feat]Add two aicpu op ReduceAll and Div Co-authored-by: FengHaozhan<fenghaozhan@huawei.com> # message auto-generated for no-merge-commit merge: !2750 merge ReduceAll-Div into master [feat]Add two aicpu op ReduceAll and Div Created-by: FengHaozhan Commit-by: FengHaozhan Merged-by: cann-robot Description: ## 描述 新增 Div 和 ReduceAll 两个 AICPU 算子实现,补充对应的算子定义、AICPU kernel、GE IR 图模式样例以及单元测试。 同步更新 Div、ReduceAll 的 README 和中文算子列表,补充 AI CPU 支持信息与图模式调用说明。 ## 关联的Issue #1566 ## 测试 基于本次代码变更,建议重点验证以下场景: 1. 单元测试 - 验证新增 Div AICPU UT,覆盖基础除法、广播、整型边界等场景。 - 验证新增 ReduceAll AICPU UT,覆盖逻辑归约行为。 2. 功能验证 - 编译并运行 Div 的 GE IR 图模式样例,确认图模式调用链路可用。 - 编译并运行 ReduceAll 的 GE IR 图模式样例,确认图模式调用链路可用。 3. 构建与文档验证 - 验证新增 AICPU 实现、样例和测试代码可参与构建。 - 检查 README 与 docs/zh/op_list.md 的入口和支持信息是否一致。 ## 文档更新 更新了 Div、ReduceAll 的 README,并在 docs/zh/op_list.md 中补充相关算子的 AI CPU 支持说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2750 | 3 个月前 |
Div
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/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算子。 |