文件最后提交记录最后更新时间
supports the realization of next-generation technologies Co-authored-by: ASCEND222<dongfei16@h-partners.com> # message auto-generated for no-merge-commit merge: !812 merge master into master supports the realization of next-generation technologies Created-by: ASCEND222 Commit-by: ASCEND222 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 支持下一代实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!8124 个月前
新增 Acosh/Atanh/Exp 算子 AICPU 实现 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !2781 merge acosh_atanh_exp into master 新增 Acosh/Atanh/Exp 算子 AICPU 实现 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 本次 PR 将 Acosh、Atanh、Exp 三个算子从 canndev 迁移到 ops-math,并新增 AICPU 实现。 ### 主要变更 1. **新增算子 AICPU 实现** - math/acosh/: Acosh 算子(反双曲余弦) - math/atanh/: Atanh 算子(反双曲正切) - math/exp/: Exp 算子(指数函数) 2. **目录结构** - op_graph/<op>_proto.h: IR proto 定义 - op_kernel_aicpu/<op>_aicpu.h/cpp: AICPU 计算核实现 - op_kernel_aicpu/<op>_aicpu_def.cpp: OP_ADD 注册 - op_api/<op>.h/cpp, op_api/aclnn_<op>.h/cpp: aclnn 主机侧 API - tests/ut/op_kernel_aicpu/test_<op>.cpp: AICPU 单元测试 - examples/test_geir_<op>.cpp: 示例代码 3. **测试验证** - AICPU UT: 16/16 PASSED - 自定义算子包构建和安装成功 - Example 执行验证通过(graph 模式) ## 关联的Issue #1577 ## 测试 根据代码变更,测试场景如下: ### 1. AICPU 单元测试 ```bash bash build.sh -u --opkernel_aicpu --ops=acosh,atanh,exp --soc=ascend910b ``` - 验证所有算子的 AICPU 实现正确性 - **结果**: 16/16 PASSED ### 2. 自定义算子包构建 ```bash bash build.sh --pkg --soc=ascend910b --vendor_name=custom --ops=acosh,atanh,exp ``` - 验证算子能正确构建为自定义算子包 - **结果**: 成功生成 cann-ops-math-custom_linux-aarch64.run ### 3. 算子包安装验证 ```bash # 安装 .run 包 ./build_out/cann-ops-math-custom_linux-aarch64.run ``` - 验证算子包能正确安装到 CANN 环境 - **结果**: 安装成功到 /home/developer/Ascend/cann-9.0.0/opp/vendors/custom_math/ ### 4. 算子加载测试 ```bash # 执行 example 验证算子加载 bash build.sh --run_example acosh graph cust --vendor_name=custom --soc=ascend910b bash build.sh --run_example atanh graph cust --vendor_name=custom --soc=ascend910b ``` - 验证算子接口注册成功 - 验证 AICPU 调度路径正确(使用 aicpu_custom_scheduler) - **结果**: 所有算子数学计算正确,AICPU 调度验证通过 ### 5. 日志验证 - 设置 ASCEND_GLOBAL_LOG_LEVEL=0 捕获详细日志 - 确认算子注册日志:Kernel[<Op>] register successfully - 确认算子执行日志:RunCpuKernel[<Op>] success ## 文档更新 - ✅ 更新 docs/zh/op_list.md,新增 Acosh、Atanh、Exp 算子说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:算子迁移 See merge request: cann/ops-math!278113 天前
clean code Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !1521 merge CleanCode0306 into master clean code Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 删除无用的头文件 头文件中禁止向全局命名空间导入符号 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/1323 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!15212 个月前
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!4955 个月前
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!29695 天前
处理 禁止从空指针创建string 告警 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !1655 merge CleanCode_nullptr into master 处理 禁止从空指针创建string 告警 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 处理 禁止从空指针创建string 告警 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/1323 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!16551 个月前
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!28767 天前
新增 Acosh/Atanh/Exp 算子 AICPU 实现 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !2781 merge acosh_atanh_exp into master 新增 Acosh/Atanh/Exp 算子 AICPU 实现 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 本次 PR 将 Acosh、Atanh、Exp 三个算子从 canndev 迁移到 ops-math,并新增 AICPU 实现。 ### 主要变更 1. **新增算子 AICPU 实现** - math/acosh/: Acosh 算子(反双曲余弦) - math/atanh/: Atanh 算子(反双曲正切) - math/exp/: Exp 算子(指数函数) 2. **目录结构** - op_graph/<op>_proto.h: IR proto 定义 - op_kernel_aicpu/<op>_aicpu.h/cpp: AICPU 计算核实现 - op_kernel_aicpu/<op>_aicpu_def.cpp: OP_ADD 注册 - op_api/<op>.h/cpp, op_api/aclnn_<op>.h/cpp: aclnn 主机侧 API - tests/ut/op_kernel_aicpu/test_<op>.cpp: AICPU 单元测试 - examples/test_geir_<op>.cpp: 示例代码 3. **测试验证** - AICPU UT: 16/16 PASSED - 自定义算子包构建和安装成功 - Example 执行验证通过(graph 模式) ## 关联的Issue #1577 ## 测试 根据代码变更,测试场景如下: ### 1. AICPU 单元测试 ```bash bash build.sh -u --opkernel_aicpu --ops=acosh,atanh,exp --soc=ascend910b ``` - 验证所有算子的 AICPU 实现正确性 - **结果**: 16/16 PASSED ### 2. 自定义算子包构建 ```bash bash build.sh --pkg --soc=ascend910b --vendor_name=custom --ops=acosh,atanh,exp ``` - 验证算子能正确构建为自定义算子包 - **结果**: 成功生成 cann-ops-math-custom_linux-aarch64.run ### 3. 算子包安装验证 ```bash # 安装 .run 包 ./build_out/cann-ops-math-custom_linux-aarch64.run ``` - 验证算子包能正确安装到 CANN 环境 - **结果**: 安装成功到 /home/developer/Ascend/cann-9.0.0/opp/vendors/custom_math/ ### 4. 算子加载测试 ```bash # 执行 example 验证算子加载 bash build.sh --run_example acosh graph cust --vendor_name=custom --soc=ascend910b bash build.sh --run_example atanh graph cust --vendor_name=custom --soc=ascend910b ``` - 验证算子接口注册成功 - 验证 AICPU 调度路径正确(使用 aicpu_custom_scheduler) - **结果**: 所有算子数学计算正确,AICPU 调度验证通过 ### 5. 日志验证 - 设置 ASCEND_GLOBAL_LOG_LEVEL=0 捕获详细日志 - 确认算子注册日志:Kernel[<Op>] register successfully - 确认算子执行日志:RunCpuKernel[<Op>] success ## 文档更新 - ✅ 更新 docs/zh/op_list.md,新增 Acosh、Atanh、Exp 算子说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:算子迁移 See merge request: cann/ops-math!278113 天前
适配PG short_soc_version Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !2804 merge mc62 into master 适配PG short_soc_version Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配PG特性,将math仓 mc62cm12a/MC62CM12A 改成 mc62/MC62 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1732 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!28043 天前
doc tools 工具扫描问题修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !1938 merge master into master doc tools 工具扫描问题修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc tools 工具扫描问题修改 See merge request: cann/ops-math!19382 个月前
README.md

Exp

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:返回一个新的张量,该张量的每个元素都是输入张量对应元素的指数。
  • 计算公式:

outi=eselfiout_{i} = e^{self_{i}}

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 待进行exp计算的入参,公式中的self_i。 FLOAT、FLOAT16、BFLOAT16 ND
base 可选属性
  • 用于指定指数运算的底数。
  • 默认值为-1.0。
FLOAT ND
scale 可选属性
  • 用于指定缩放系数。
  • 默认值为1.0。
FLOAT ND
shift 可选属性
  • 用于指定偏移量。
  • 默认值为0.0。
FLOAT ND
y 输出 进行exp计算的出参,公式中的out_i。 FLOAT、FLOAT16、BFLOAT16 ND

约束说明

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_exp 通过aclnnExp&aclnnInplaceExp接口方式调用Exp算子。