| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 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 | 12 天前 | |
Tan示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4859 merge codex/replay-pr-4761-raii-tan into master Tan示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/tan/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4859 | 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 个月前 | |
fix(math): reject private formats for atanh sinh and tan Co-authored-by: leaving__<B24040621@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !5019 merge fix/transfer-test-exception-format-intercept into master fix(math): reject private formats for atanh sinh and tan Created-by: leaving__ Commit-by: leaving__ Merged-by: cann-robot Description: ## 描述 - 为 Atanh、Sinh 和 Tan 的普通及 inplace 接口增加私有 Tensor 格式校验。 - 对不支持的私有格式统一返回参数错误,避免进入后续计算流程。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2843 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5019 | 1 个月前 | |
clean code空文件删除 Co-authored-by: doufloat<baijinxiang@huawei.com> # message auto-generated for no-merge-commit merge: !3656 merge feature/bjx into master clean code空文件删除 Created-by: doufloat Commit-by: doufloat Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以下两文件为空文件: ops/ops-math/math/amp_update_scale/tests/ut/op_host/CMakeLists.txt ops/ops-math/math/tan/op_graph/fusion_pass/.geikeep ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2094 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3656 | 3 个月前 | |
legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 24 天前 | |
[fix] 修复Tan算子极点邻域精度问题 Co-authored-by: wang-xing001<wangxing73@huawei.com> # message auto-generated for no-merge-commit merge: !4982 merge fix/tan-pole-precision into master [fix] 修复Tan算子极点邻域精度问题 Created-by: m0_73979701 Commit-by: wang-xing001 Merged-by: cann-robot Description: ## 描述 修复 Tan 算子在 float32 输入接近奇数倍 pi/2 时的精度问题。 - 使用 SIMT 数学库 tanf 完成高精度规约与奇数象限计算,避免自定义 Cody-Waite 规约和倒数计算在极点邻域放大误差。 - 保留 |x| >= 1e7、Inf、NaN 输入返回 NaN 的既有语义。 - 新增 float32 极点邻域 TTK 回归用例。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2652 ## 测试 - Ascend950PR_9579,CANN 9.2.0:构建 Tan 自定义算子包成功。 - TTK Kernel:tan_float32_pole_regression,1/1 PASS,精度与内存检查通过。 - pre-commit:trailing-whitespace、end-of-file、large-files、merge-conflict、private-key、clang-format、codespell、OAT 全部通过。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4982 | 1 个月前 | |
feat(aicpu): AICPU built-in整包准入manifest机制 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !5693 merge feat/aicpu-builtin-package-manifest into master feat(aicpu): AICPU built-in整包准入manifest机制 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 新增aicpu_builtin_package_manifest.cmake策略文件,控制哪些AICPU算子在整包编译(--pkg)时打包device侧.so和json配置。 ### 设计要点 - 默认所有AICPU算子不进入built-in整包(manifest为空=OFF) - 新增算子想进入built-in整包时,在manifest中添加ON条目即可 - 想快速全量放开,把AICPU_BUILTIN_PACKAGE_FORCE_ALL改为ON - 不影响自定义包模式(--ops --vendor_name)行为 - host常量折叠(libopconstant_folding_math.so)不受manifest控制,保持已有行为 - 不新增任何编译选项或命令参数 ### 改动文件 - cmake/config/aicpu_builtin_package_manifest.cmake(新增):manifest策略文件 - CMakeLists.txt:在add_subdirectory之前include manifest文件 - cmake/func.cmake:add_all_modules_sources中增加manifest准入判断,统一控制AICPU的OpDef/JSON/cust_obj三条路径 - cmake/symbol.cmake:gen_norm_symbol中在ENABLE_PACKAGE且非DISABLE_AICPU时调用gen_aicpu_json_symbol和gen_aicpu_kernel_symbol(无准入算子时自动跳过) - 4个算子(topk/tan/lin_space/identity)的op_kernel_aicpu/CMakeLists.txt:统一加manifest准入检查,OpDef/JSON收集和cust_obj编译受同一条件控制 ### manifest使用方式 cmake # cmake/config/aicpu_builtin_package_manifest.cmake set(AICPU_BUILTIN_PACKAGE_FORCE_ALL OFF) set(AICPU_BUILTIN_PACKAGE_MANIFEST # 新增算子想进入built-in整包时在此添加 # "new_op=ON" ) # 全量放开: set(AICPU_BUILTIN_PACKAGE_FORCE_ALL ON) ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3194 ## 测试 ### 一、已有功能回归测试(manifest为空,验证不影响已有功能) TC-01: 整包编译(manifest为空) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 编译成功;libopconstant_folding_math.so 生成;libmath_aicpu_kernels.so 不生成;aicpu_math.json 不生成;AI Core 产物不变 TC-02: 自定义算子包编译(--ops=cumsum) 命令: bash build.sh --pkg --soc=ascend910_93 --ops=cumsum --vendor_name=custom -j16 预期: 编译成功;libmath_aicpu_kernels.so 生成(含cumsum + identity等);cust_aicpu_kernel.json 生成;与改动前行为一致 TC-03: AI Core 算子不受影响 命令: bash build.sh --pkg --soc=ascend910_93 --ops=add -j16 预期: AI Core kernel binary 正常编译,不涉及 aicpu 逻辑 TC-04: UT 编译不受影响 命令: bash build.sh -u --noexec --soc=ascend910_93 -j16 预期: UT 编译成功,aicpu kernel UT 可执行文件生成 TC-05: host常量折叠库不受manifest影响 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libopconstant_folding_math.so 生成且包含全部已有aicpu算子,manifest为空不影响host_const_obj收集 TC-06: 静态库编译不受影响 命令: bash build.sh --pkg --static --soc=ascend910_93 -j16 预期: 静态库编译成功,产物与改动前一致 ### 二、manifest准入功能测试 TC-07: manifest为空时整包不产出device aicpu产物 前置: manifest中 AICPU_BUILTIN_PACKAGE_MANIFEST 为空 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 不生成;aicpu_math.json 不生成 TC-08: manifest指定单个算子ON(cumsum) 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(仅含cumsum);aicpu_math.json 生成(仅含cumsum);libopconstant_folding_math.so 照常生成(含全部算子) TC-09: manifest指定多个算子ON 前置: manifest中 "cumsum=ON" 和 "log=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(含cumsum和log);aicpu_math.json 生成(含cumsum和log) TC-10: AICPU_BUILTIN_PACKAGE_FORCE_ALL=ON全量放开 前置: manifest中 set(AICPU_BUILTIN_PACKAGE_FORCE_ALL ON) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(含全部aicpu算子);aicpu_math.json 生成(含全部aicpu算子) TC-11: manifest中写ON但算子不存在 前置: manifest中 "nonexistent_op=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 编译成功(不报错);libmath_aicpu_kernels.so 不生成;aicpu_math.json 不生成 TC-12: --noaicpu仍然完全关闭aicpu 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 --noaicpu -j16 预期: DISABLE_AICPU=TRUE;不编译任何aicpu .o;不生成libmath_aicpu_kernels.so;不生成aicpu_math.json;不生成libopconstant_folding_math.so ### 三、manifest匹配准确性测试 TC-13: manifest key使用算子名 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 匹配成功,cumsum进入整包 TC-14: manifest key写错不匹配(大小写敏感) 前置: manifest中 "Cumsum=ON"(大写C) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 不匹配(STREQUAL大小写敏感),cumsum不进入整包 TC-15: manifest value非ON不匹配 前置: manifest中 "cumsum=OFF" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 不匹配(STREQUAL要求精确"=ON"),cumsum不进入整包 ### 四、安装卸载测试 TC-16: 整包安装(manifest为空) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 && bash build_out/*.run --quiet --full 预期: 安装成功无ERROR;opp/built-in/op_impl/host_cpu/libopconstant_folding_math.so 存在;opp/built-in/op_impl/aicpu/ 下无 aicpu_math.json 和 libmath_aicpu_kernels.so TC-17: 整包安装(manifest指定ON) 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 && bash build_out/*.run --quiet --full 预期: 安装成功;opp/built-in/op_impl/aicpu/config/aicpu_math.json 存在;opp/built-in/op_impl/aicpu/kernel/libmath_aicpu_kernels.so 存在;opp/built-in/op_impl/host_cpu/libopconstant_folding_math.so 存在 TC-18: 整包卸载 命令: bash build_out/*.run --quiet --uninstall 预期: 卸载成功,所有aicpu相关文件被清理 ### 五、4个特殊算子回归测试(topk/tan/lin_space/identity) TC-19: 自定义包模式下4个算子行为不变 命令: bash build.sh --pkg --soc=ascend910_93 --ops=cumsum --vendor_name=custom -j16 预期: 4个算子在自定义包模式下仍被收入AICPU_CUST_OBJ_TARGETS;libmath_aicpu_kernels.so 包含 identity;cust_aicpu_kernel.json 包含 identity;与改动前行为一致 TC-20: 整包模式下4个算子受manifest控制 前置: manifest为空 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 4个算子不被收入AICPU_CUST_OBJ_TARGETS;libmath_aicpu_kernels.so 不生成;identity 不出现在任何产物中 TC-21: 整包模式下manifest指定topk=ON 前置: manifest中 "topk=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(仅含topk);aicpu_math.json 生成(含topk);identity 不在产物中 TC-22: 整包模式下manifest指定identity=ON 前置: manifest中 "identity=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(含identity);aicpu_math.json 生成(含identity,JSON文件正确收集);topk 不在产物中 ### 六、pre-commit检查 TC-23: pre-commit通过 命令: pre-commit run --files <所有修改的文件> 预期: 全部 Passed ## 文档更新 无 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-math!5693 | 17 天前 | |
feat: Add aclnn st cases and golden functions Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !5200 merge master into master feat: Add aclnn st cases and golden functions Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 添加蓝区aclnn用例和golden函数 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/5325 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5200 | 1 个月前 | |
tan/is_nan adapt mc_xx Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !3211 merge mdc into master tan/is_nan adapt mc_xx Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> tan/is_nan 适配MC_XX ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1937 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟 单算子框架测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3211 | 3 个月前 | |
产品名变更 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 | 12 天前 |
Tan
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:逐元素计算输入张量的正切值,输出张量的shape与输入张量相同。
-
计算公式:
yi=tan(xi)y_i = \tan(x_i) yi=tan(xi)
其中,xix_ixi表示输入张量
x的第iii个元素,yiy_iyi表示输出张量y的第iii个元素。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 公式中的输入张量x。 | FLOAT16、FLOAT、BFLOAT16、INT32、DOUBLE、COMPLEX64、COMPLEX128 | ND |
| y | 输出 | 公式中的输出张量y,shape与x相同。 | FLOAT16、FLOAT、BFLOAT16、INT32、DOUBLE、COMPLEX64、COMPLEX128 | ND |
- Ascend 950PR&950DT系列产品、Atlas A3系列产品、Atlas A2系列产品:AI Core支持FLOAT16、FLOAT、BFLOAT16、INT32。
- Atlas 200I/500 A2推理产品、Atlas推理系列产品、Atlas训练系列产品:AI Core支持FLOAT16、FLOAT、INT32,不支持BFLOAT16。
- DOUBLE、COMPLEX64、COMPLEX128通过AICPU路径计算。
约束说明
- 输入与输出的shape必须一致,数据格式为ND。
- 在Ascend 950PR&950DT系列产品的AI Core实现中,输入为NaN、Inf或绝对值大于等于10710^7107时,输出为NaN。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn API | test_aclnn_tan.cpp | 通过aclnnTan和aclnnInplaceTan接口调用Tan算子。 |
| GE图模式 | test_geir_tan.cpp | 通过算子IR构图调用Tan算子。 |