| Files | Last commit | Last update |
|---|---|---|
fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !6913 merge hardening/Tan into master fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 **改动原因**: Tan 算子质量加固: 修复 tiling/kernel 数值与边界缺陷,清理 aclnn 越权校验,加固 golden 标杆契约,修正文档与头注释不一致,补齐看护集与 UT 资产。 **改动方法**(24 项=代码修复 14+文档勘误 6+评审收敛 4;单 commit,18 files,+1411/-214): 代码修复(14 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-F01 | tiling 累乘/加法链 int32 窄化溢出回绕保护 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F02 | SIMT 废弃 API 迁移 + grid-stride 索引有符号溢出守卫 | op_kernel/arch35/tan_simt.h | | TAN-F03 | aclnn ND-only 越权校验删除 | op_api/aclnn_tan.cpp | | TAN-F10 | 空输入 tiling blockDim=0 修复 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F12 | 极点回归用例紧门限恢复(社区 review 采纳) | tests/st/arch35/ttk_kernel_tan_st.csv | | TAN-F13 | aclnn rank-8 上限校验删除(文档/UT 同步) | op_api/aclnn_tan.cpp, tests/ut/op_api/test_aclnn_tan.cpp, docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-F14 | kernel isinf/isnan 冗余特殊值分支删除 | op_kernel/arch35/tan_simt.h | | TAN-F15 | golden 自定义 torch_graph 模块删除,改用框架通用 GraphNetwork | tests/assets/golden.py | | TAN-F16 | golden third_party 双键拼接类(原生域直调,int32 拼接截断链矫正) | tests/assets/golden.py | | TAN-F17 | golden aclnn 双 spec third_party 参考类化(out/就地语义) | tests/assets/golden.py | | TAN-F18 | golden 四入口 del kwargs 冗余清理 | tests/assets/golden.py | | TAN-F24 | golden 容差表 float64 判据显式化(isclose,不再回落 mix_tolerance fp32 档) | tests/assets/golden.py | 另含 TAN-F21/F22(compute 统一重构/tf 腿三态适配),随 golden.py 交付。 文档勘误(6 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-D03 | README x/y 非连续 Tensor 转换行为声明(zh/en) | README.md, README_en.md | | TAN-D04 | aclnn_tan.h selfRef 头注释补 BFLOAT16 | op_api/aclnn_tan.h | | TAN-D05 | 产品差异 note 收敛至唯一真实差异 BFLOAT16 | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D06 | 函数原型代码块语言标记 Cpp→cpp | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D07 | aclnn_tan.h 头注释 Tanh 复制遗留修正 | op_api/aclnn_tan.h | | TAN-D09 | in→out 组合白名单表+selfRef 域说明+参数表错链修正(zh/en) | docs/aclnnTan&aclnnInplaceTan{,_en}.md | 评审收敛修复(4 项): | ID | 修复项 | 文件 | |----|--------|------| | R-A | UT 注释规范化(仅描述代码语义) | tests/ut/op_api/test_aclnn_tan.cpp, tests/ut/op_host/arch35/test_tan_tiling_arch35.cpp | | R-C | tf 看护集 CSV 表头方言修正(testcase_name/api_name) | tests/st/arch35/ttk_tf_tan_st.csv | | R-E | aclnn_tan.h self 头注释补全 12 dtype | op_api/aclnn_tan.h | | R-F | tiling 核切分向上取整改用平台助手 Ops::Base::CeilDiv | op_host/arch35/tan_tiling_arch35.cpp | 测试资产: tests/assets/golden.py + tests/st/arch35/ttk_{kernel,aclnn,geir,torch,tf}_tan_st.csv(五路看护集,kernel 101 条,其余各 100 条)。 ## 关联的Issue Closes #4349(修复汇总,含逐项清单) ## 测试 - TTK 全量 503/503(正例 500+负向拒绝 3): kernel 101+supp 1、aclnn 97+supp 4(3 负向按预期拒绝)、geir/torch/tf 各 100 全绿;判据 cross_check(fp16/bf16/fp32)/binary_equal(int32)/isclose(f64 16/16 零 FAIL);4 例超大用例按协议旁表;四路抽验 8/8 与基线一致 - 低精度输入×宽 out 少量用例系框架真值口径与实现侧 GPU 同款计算顺序固有差异,逐例定性非算子缺陷,圈定看护集外(详见 issue) - Host UT 61/61(host 23/api 24/aicpu 14/graph 0) - pre-commit 18 文件定向全绿;OAT 双 0;六静态复检零新增 ## 文档更新 - math/tan/README{,_en}.md(非连续声明 zh/en) - math/tan/docs/aclnnTan&aclnnInplaceTan{,_en}.md(zh/en) - math/tan/op_api/aclnn_tan.h(头注释) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6913 | 5 days ago | |
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 | 2 months ago | |
迁移开源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 | 3 months ago | |
fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !6913 merge hardening/Tan into master fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 **改动原因**: Tan 算子质量加固: 修复 tiling/kernel 数值与边界缺陷,清理 aclnn 越权校验,加固 golden 标杆契约,修正文档与头注释不一致,补齐看护集与 UT 资产。 **改动方法**(24 项=代码修复 14+文档勘误 6+评审收敛 4;单 commit,18 files,+1411/-214): 代码修复(14 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-F01 | tiling 累乘/加法链 int32 窄化溢出回绕保护 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F02 | SIMT 废弃 API 迁移 + grid-stride 索引有符号溢出守卫 | op_kernel/arch35/tan_simt.h | | TAN-F03 | aclnn ND-only 越权校验删除 | op_api/aclnn_tan.cpp | | TAN-F10 | 空输入 tiling blockDim=0 修复 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F12 | 极点回归用例紧门限恢复(社区 review 采纳) | tests/st/arch35/ttk_kernel_tan_st.csv | | TAN-F13 | aclnn rank-8 上限校验删除(文档/UT 同步) | op_api/aclnn_tan.cpp, tests/ut/op_api/test_aclnn_tan.cpp, docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-F14 | kernel isinf/isnan 冗余特殊值分支删除 | op_kernel/arch35/tan_simt.h | | TAN-F15 | golden 自定义 torch_graph 模块删除,改用框架通用 GraphNetwork | tests/assets/golden.py | | TAN-F16 | golden third_party 双键拼接类(原生域直调,int32 拼接截断链矫正) | tests/assets/golden.py | | TAN-F17 | golden aclnn 双 spec third_party 参考类化(out/就地语义) | tests/assets/golden.py | | TAN-F18 | golden 四入口 del kwargs 冗余清理 | tests/assets/golden.py | | TAN-F24 | golden 容差表 float64 判据显式化(isclose,不再回落 mix_tolerance fp32 档) | tests/assets/golden.py | 另含 TAN-F21/F22(compute 统一重构/tf 腿三态适配),随 golden.py 交付。 文档勘误(6 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-D03 | README x/y 非连续 Tensor 转换行为声明(zh/en) | README.md, README_en.md | | TAN-D04 | aclnn_tan.h selfRef 头注释补 BFLOAT16 | op_api/aclnn_tan.h | | TAN-D05 | 产品差异 note 收敛至唯一真实差异 BFLOAT16 | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D06 | 函数原型代码块语言标记 Cpp→cpp | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D07 | aclnn_tan.h 头注释 Tanh 复制遗留修正 | op_api/aclnn_tan.h | | TAN-D09 | in→out 组合白名单表+selfRef 域说明+参数表错链修正(zh/en) | docs/aclnnTan&aclnnInplaceTan{,_en}.md | 评审收敛修复(4 项): | ID | 修复项 | 文件 | |----|--------|------| | R-A | UT 注释规范化(仅描述代码语义) | tests/ut/op_api/test_aclnn_tan.cpp, tests/ut/op_host/arch35/test_tan_tiling_arch35.cpp | | R-C | tf 看护集 CSV 表头方言修正(testcase_name/api_name) | tests/st/arch35/ttk_tf_tan_st.csv | | R-E | aclnn_tan.h self 头注释补全 12 dtype | op_api/aclnn_tan.h | | R-F | tiling 核切分向上取整改用平台助手 Ops::Base::CeilDiv | op_host/arch35/tan_tiling_arch35.cpp | 测试资产: tests/assets/golden.py + tests/st/arch35/ttk_{kernel,aclnn,geir,torch,tf}_tan_st.csv(五路看护集,kernel 101 条,其余各 100 条)。 ## 关联的Issue Closes #4349(修复汇总,含逐项清单) ## 测试 - TTK 全量 503/503(正例 500+负向拒绝 3): kernel 101+supp 1、aclnn 97+supp 4(3 负向按预期拒绝)、geir/torch/tf 各 100 全绿;判据 cross_check(fp16/bf16/fp32)/binary_equal(int32)/isclose(f64 16/16 零 FAIL);4 例超大用例按协议旁表;四路抽验 8/8 与基线一致 - 低精度输入×宽 out 少量用例系框架真值口径与实现侧 GPU 同款计算顺序固有差异,逐例定性非算子缺陷,圈定看护集外(详见 issue) - Host UT 61/61(host 23/api 24/aicpu 14/graph 0) - pre-commit 18 文件定向全绿;OAT 双 0;六静态复检零新增 ## 文档更新 - math/tan/README{,_en}.md(非连续声明 zh/en) - math/tan/docs/aclnnTan&aclnnInplaceTan{,_en}.md(zh/en) - math/tan/op_api/aclnn_tan.h(头注释) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6913 | 5 days ago | |
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 | 4 months ago | |
feat(math): acos/acosh/sinh/tan 适配 Ascend350 平台 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !7250 merge master into master feat(math): acos/acosh/sinh/tan 适配 Ascend350 平台 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 适配 math 库中 acos/acosh/sinh/tan 四个算子支持 Ascend350 平台: - 各算子 CMakeLists 的 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 增加 ascend350(复用 arch35 tiling) - 各算子 def 文件注册 ascend350 AICore 配置(复用现有 AscendC 算子文件:acos_apt/acosh_apt/sinh_apt/tan_apt) - acos 新增 op_host/config/ascend350/acos_binary.json(bfloat16/float16/float32,ND/FormatAgnostic)与 acos_simplified_key.ini - scripts/kernel/binary_config/ascendc_config.json 中四个算子的 compute_units 增加 ascend350,Acos 增加编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false ## 关联的Issue https://atomgit.com/cann/ops-math/issues/4639 ## 测试 - Ascend350 平台 acos/acosh/sinh/tan 二级冒烟测试 - Ascend350 平台算子泛化测试 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7250 | 5 days ago | |
fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !6913 merge hardening/Tan into master fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 **改动原因**: Tan 算子质量加固: 修复 tiling/kernel 数值与边界缺陷,清理 aclnn 越权校验,加固 golden 标杆契约,修正文档与头注释不一致,补齐看护集与 UT 资产。 **改动方法**(24 项=代码修复 14+文档勘误 6+评审收敛 4;单 commit,18 files,+1411/-214): 代码修复(14 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-F01 | tiling 累乘/加法链 int32 窄化溢出回绕保护 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F02 | SIMT 废弃 API 迁移 + grid-stride 索引有符号溢出守卫 | op_kernel/arch35/tan_simt.h | | TAN-F03 | aclnn ND-only 越权校验删除 | op_api/aclnn_tan.cpp | | TAN-F10 | 空输入 tiling blockDim=0 修复 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F12 | 极点回归用例紧门限恢复(社区 review 采纳) | tests/st/arch35/ttk_kernel_tan_st.csv | | TAN-F13 | aclnn rank-8 上限校验删除(文档/UT 同步) | op_api/aclnn_tan.cpp, tests/ut/op_api/test_aclnn_tan.cpp, docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-F14 | kernel isinf/isnan 冗余特殊值分支删除 | op_kernel/arch35/tan_simt.h | | TAN-F15 | golden 自定义 torch_graph 模块删除,改用框架通用 GraphNetwork | tests/assets/golden.py | | TAN-F16 | golden third_party 双键拼接类(原生域直调,int32 拼接截断链矫正) | tests/assets/golden.py | | TAN-F17 | golden aclnn 双 spec third_party 参考类化(out/就地语义) | tests/assets/golden.py | | TAN-F18 | golden 四入口 del kwargs 冗余清理 | tests/assets/golden.py | | TAN-F24 | golden 容差表 float64 判据显式化(isclose,不再回落 mix_tolerance fp32 档) | tests/assets/golden.py | 另含 TAN-F21/F22(compute 统一重构/tf 腿三态适配),随 golden.py 交付。 文档勘误(6 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-D03 | README x/y 非连续 Tensor 转换行为声明(zh/en) | README.md, README_en.md | | TAN-D04 | aclnn_tan.h selfRef 头注释补 BFLOAT16 | op_api/aclnn_tan.h | | TAN-D05 | 产品差异 note 收敛至唯一真实差异 BFLOAT16 | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D06 | 函数原型代码块语言标记 Cpp→cpp | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D07 | aclnn_tan.h 头注释 Tanh 复制遗留修正 | op_api/aclnn_tan.h | | TAN-D09 | in→out 组合白名单表+selfRef 域说明+参数表错链修正(zh/en) | docs/aclnnTan&aclnnInplaceTan{,_en}.md | 评审收敛修复(4 项): | ID | 修复项 | 文件 | |----|--------|------| | R-A | UT 注释规范化(仅描述代码语义) | tests/ut/op_api/test_aclnn_tan.cpp, tests/ut/op_host/arch35/test_tan_tiling_arch35.cpp | | R-C | tf 看护集 CSV 表头方言修正(testcase_name/api_name) | tests/st/arch35/ttk_tf_tan_st.csv | | R-E | aclnn_tan.h self 头注释补全 12 dtype | op_api/aclnn_tan.h | | R-F | tiling 核切分向上取整改用平台助手 Ops::Base::CeilDiv | op_host/arch35/tan_tiling_arch35.cpp | 测试资产: tests/assets/golden.py + tests/st/arch35/ttk_{kernel,aclnn,geir,torch,tf}_tan_st.csv(五路看护集,kernel 101 条,其余各 100 条)。 ## 关联的Issue Closes #4349(修复汇总,含逐项清单) ## 测试 - TTK 全量 503/503(正例 500+负向拒绝 3): kernel 101+supp 1、aclnn 97+supp 4(3 负向按预期拒绝)、geir/torch/tf 各 100 全绿;判据 cross_check(fp16/bf16/fp32)/binary_equal(int32)/isclose(f64 16/16 零 FAIL);4 例超大用例按协议旁表;四路抽验 8/8 与基线一致 - 低精度输入×宽 out 少量用例系框架真值口径与实现侧 GPU 同款计算顺序固有差异,逐例定性非算子缺陷,圈定看护集外(详见 issue) - Host UT 61/61(host 23/api 24/aicpu 14/graph 0) - pre-commit 18 文件定向全绿;OAT 双 0;六静态复检零新增 ## 文档更新 - math/tan/README{,_en}.md(非连续声明 zh/en) - math/tan/docs/aclnnTan&aclnnInplaceTan{,_en}.md(zh/en) - math/tan/op_api/aclnn_tan.h(头注释) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6913 | 5 days ago | |
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 | 1 month ago | |
fix(tan): e2e tf 三方参考适配 int32,消除 --xpu-perf 三方腿 500 Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !7321 merge fix/tan-tf-thirdparty-int32 into master fix(tan): e2e tf 三方参考适配 int32,消除 --xpu-perf 三方腿 500 Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 **改动原因**: e2e tf 通路批量验证( --xpu-perf 三方采集)中,int32 用例的 XPU tf 三方腿全部 500:InvalidArgumentError: Value for attr 'T' of int32 is not in the list of allowed values: bfloat16, half, float, double, complex64, complex128——TF 官方 Tan op 定义不含 int32,GPU TF 生态无 int32 tan。根因在测试资产:math/tan/tests/assets/golden.py 的 TanTensorFlowSpec.third_party 为裸字符串 "tf.math.tan",int32 输入被原样发往远端、在 op 定义面被拒。同文件 kernel/GEIR 路的 TanKernelSpec 已挂 TanKernelTfRef 类参考完成 int32 适配,e2e tf 路漏接同类适配。 **改动方法**: 单文件单行——TanTensorFlowSpec.third_party 由 {"tf": "tf.math.tan"} 换用同文件既有类参考 {"tf": TanKernelTfRef}(tf.cast(f32) → tf.math.tan → tf.cast(int32) 向零截断回写);浮点 dtype 走原生 API 直调,行为不变。 ## 关联的Issue Fixes #4683 ## 决策与权衡 - **为何用类参考而非裸字符串**:dtype 适配点必须在三方参考路径内完成。裸字符串把 int32 原样交给远端 TF,在 op 定义面即被拒绝,客户端侧任何预处理都到不了计算层;类参考经远端 spec 协议同步执行(spec 类参考与原生 API 字符串同为可达形态),截断链在参考内部闭合。 - **为何复用 TanKernelTfRef 而非新建类**:同文件既有实现(kernel/GEIR 路 third_party 已挂载,commit 7cfd38094 合入态在位),语义同源 kernel 截断链;e2e tf 路复用同一参考,保证各通路三方参考语义一致,零新增代码。 - **为何向零截断**:对齐 kernel static_cast 回写链(int32 模板按 f32 计算后向零截断回写 out),与 TanKernelTfRef 注释口径一致;TF 原生 tan 为提升语义出 f32,不截断则与 int32 入出同型契约错配。 - **为何不改 tolerance**:int32 判据已是 binary_equal(精确整数比对),本修复不触及数值判定链。 - **影响面**:仅 e2e tf 路三方参考的 int32 分支;NPU 侧判定(golden 数值链、tolerance、binary_equal 判据)与浮点 dtype 的三方行为零变化。 - 仓内同类先例:MulNoNan golden 的 tf 参考以 Compose 组合适配 TF 生态不含该 dtype 的场景。 ## 测试 int32 五例(0-dim 标量 / 14.7M / 268M×2 / 单元素)e2e 三腿(eager / graph cst / graph dyn,命令形态 -c -d --dl=1 --xpu-perf --device-whitelist=0): - NPU 判定 binary_equal **5/5 PASS**(三腿全过、deterministic 全过、设备 kernel "Tan" 真执行); - 三方应答 **5/5 PASS**(类参考形态 TanTensorFlowSpec;268M 例远端峰值显存 ~4.3GB 正常完成); - InvalidArgumentError / T of int32 在结果 CSV(xpu_metrics 列)/ 日志 / 屏幕三落点 **0 命中**; - pre-commit(ruff check/format 等)与 OAT 许可证头检查全绿。 ## 文档更新 无(测试资产单行修复,不涉及文档)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7321 | 3 days ago | |
feat(math): acos/acosh/sinh/tan 适配 Ascend350 平台 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !7250 merge master into master feat(math): acos/acosh/sinh/tan 适配 Ascend350 平台 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 适配 math 库中 acos/acosh/sinh/tan 四个算子支持 Ascend350 平台: - 各算子 CMakeLists 的 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 增加 ascend350(复用 arch35 tiling) - 各算子 def 文件注册 ascend350 AICore 配置(复用现有 AscendC 算子文件:acos_apt/acosh_apt/sinh_apt/tan_apt) - acos 新增 op_host/config/ascend350/acos_binary.json(bfloat16/float16/float32,ND/FormatAgnostic)与 acos_simplified_key.ini - scripts/kernel/binary_config/ascendc_config.json 中四个算子的 compute_units 增加 ascend350,Acos 增加编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false ## 关联的Issue https://atomgit.com/cann/ops-math/issues/4639 ## 测试 - Ascend350 平台 acos/acosh/sinh/tan 二级冒烟测试 - Ascend350 平台算子泛化测试 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7250 | 5 days ago | |
fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !6913 merge hardening/Tan into master fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 **改动原因**: Tan 算子质量加固: 修复 tiling/kernel 数值与边界缺陷,清理 aclnn 越权校验,加固 golden 标杆契约,修正文档与头注释不一致,补齐看护集与 UT 资产。 **改动方法**(24 项=代码修复 14+文档勘误 6+评审收敛 4;单 commit,18 files,+1411/-214): 代码修复(14 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-F01 | tiling 累乘/加法链 int32 窄化溢出回绕保护 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F02 | SIMT 废弃 API 迁移 + grid-stride 索引有符号溢出守卫 | op_kernel/arch35/tan_simt.h | | TAN-F03 | aclnn ND-only 越权校验删除 | op_api/aclnn_tan.cpp | | TAN-F10 | 空输入 tiling blockDim=0 修复 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F12 | 极点回归用例紧门限恢复(社区 review 采纳) | tests/st/arch35/ttk_kernel_tan_st.csv | | TAN-F13 | aclnn rank-8 上限校验删除(文档/UT 同步) | op_api/aclnn_tan.cpp, tests/ut/op_api/test_aclnn_tan.cpp, docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-F14 | kernel isinf/isnan 冗余特殊值分支删除 | op_kernel/arch35/tan_simt.h | | TAN-F15 | golden 自定义 torch_graph 模块删除,改用框架通用 GraphNetwork | tests/assets/golden.py | | TAN-F16 | golden third_party 双键拼接类(原生域直调,int32 拼接截断链矫正) | tests/assets/golden.py | | TAN-F17 | golden aclnn 双 spec third_party 参考类化(out/就地语义) | tests/assets/golden.py | | TAN-F18 | golden 四入口 del kwargs 冗余清理 | tests/assets/golden.py | | TAN-F24 | golden 容差表 float64 判据显式化(isclose,不再回落 mix_tolerance fp32 档) | tests/assets/golden.py | 另含 TAN-F21/F22(compute 统一重构/tf 腿三态适配),随 golden.py 交付。 文档勘误(6 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-D03 | README x/y 非连续 Tensor 转换行为声明(zh/en) | README.md, README_en.md | | TAN-D04 | aclnn_tan.h selfRef 头注释补 BFLOAT16 | op_api/aclnn_tan.h | | TAN-D05 | 产品差异 note 收敛至唯一真实差异 BFLOAT16 | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D06 | 函数原型代码块语言标记 Cpp→cpp | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D07 | aclnn_tan.h 头注释 Tanh 复制遗留修正 | op_api/aclnn_tan.h | | TAN-D09 | in→out 组合白名单表+selfRef 域说明+参数表错链修正(zh/en) | docs/aclnnTan&aclnnInplaceTan{,_en}.md | 评审收敛修复(4 项): | ID | 修复项 | 文件 | |----|--------|------| | R-A | UT 注释规范化(仅描述代码语义) | tests/ut/op_api/test_aclnn_tan.cpp, tests/ut/op_host/arch35/test_tan_tiling_arch35.cpp | | R-C | tf 看护集 CSV 表头方言修正(testcase_name/api_name) | tests/st/arch35/ttk_tf_tan_st.csv | | R-E | aclnn_tan.h self 头注释补全 12 dtype | op_api/aclnn_tan.h | | R-F | tiling 核切分向上取整改用平台助手 Ops::Base::CeilDiv | op_host/arch35/tan_tiling_arch35.cpp | 测试资产: tests/assets/golden.py + tests/st/arch35/ttk_{kernel,aclnn,geir,torch,tf}_tan_st.csv(五路看护集,kernel 101 条,其余各 100 条)。 ## 关联的Issue Closes #4349(修复汇总,含逐项清单) ## 测试 - TTK 全量 503/503(正例 500+负向拒绝 3): kernel 101+supp 1、aclnn 97+supp 4(3 负向按预期拒绝)、geir/torch/tf 各 100 全绿;判据 cross_check(fp16/bf16/fp32)/binary_equal(int32)/isclose(f64 16/16 零 FAIL);4 例超大用例按协议旁表;四路抽验 8/8 与基线一致 - 低精度输入×宽 out 少量用例系框架真值口径与实现侧 GPU 同款计算顺序固有差异,逐例定性非算子缺陷,圈定看护集外(详见 issue) - Host UT 61/61(host 23/api 24/aicpu 14/graph 0) - pre-commit 18 文件定向全绿;OAT 双 0;六静态复检零新增 ## 文档更新 - math/tan/README{,_en}.md(非连续声明 zh/en) - math/tan/docs/aclnnTan&aclnnInplaceTan{,_en}.md(zh/en) - math/tan/op_api/aclnn_tan.h(头注释) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6913 | 5 days ago | |
fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !6913 merge hardening/Tan into master fix(tan): harden tiling/kernel correctness, aclnn dtype domain checks and docs Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 **改动原因**: Tan 算子质量加固: 修复 tiling/kernel 数值与边界缺陷,清理 aclnn 越权校验,加固 golden 标杆契约,修正文档与头注释不一致,补齐看护集与 UT 资产。 **改动方法**(24 项=代码修复 14+文档勘误 6+评审收敛 4;单 commit,18 files,+1411/-214): 代码修复(14 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-F01 | tiling 累乘/加法链 int32 窄化溢出回绕保护 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F02 | SIMT 废弃 API 迁移 + grid-stride 索引有符号溢出守卫 | op_kernel/arch35/tan_simt.h | | TAN-F03 | aclnn ND-only 越权校验删除 | op_api/aclnn_tan.cpp | | TAN-F10 | 空输入 tiling blockDim=0 修复 | op_host/arch35/tan_tiling_arch35.cpp | | TAN-F12 | 极点回归用例紧门限恢复(社区 review 采纳) | tests/st/arch35/ttk_kernel_tan_st.csv | | TAN-F13 | aclnn rank-8 上限校验删除(文档/UT 同步) | op_api/aclnn_tan.cpp, tests/ut/op_api/test_aclnn_tan.cpp, docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-F14 | kernel isinf/isnan 冗余特殊值分支删除 | op_kernel/arch35/tan_simt.h | | TAN-F15 | golden 自定义 torch_graph 模块删除,改用框架通用 GraphNetwork | tests/assets/golden.py | | TAN-F16 | golden third_party 双键拼接类(原生域直调,int32 拼接截断链矫正) | tests/assets/golden.py | | TAN-F17 | golden aclnn 双 spec third_party 参考类化(out/就地语义) | tests/assets/golden.py | | TAN-F18 | golden 四入口 del kwargs 冗余清理 | tests/assets/golden.py | | TAN-F24 | golden 容差表 float64 判据显式化(isclose,不再回落 mix_tolerance fp32 档) | tests/assets/golden.py | 另含 TAN-F21/F22(compute 统一重构/tf 腿三态适配),随 golden.py 交付。 文档勘误(6 项): | ID | 修复项 | 文件 | |----|--------|------| | TAN-D03 | README x/y 非连续 Tensor 转换行为声明(zh/en) | README.md, README_en.md | | TAN-D04 | aclnn_tan.h selfRef 头注释补 BFLOAT16 | op_api/aclnn_tan.h | | TAN-D05 | 产品差异 note 收敛至唯一真实差异 BFLOAT16 | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D06 | 函数原型代码块语言标记 Cpp→cpp | docs/aclnnTan&aclnnInplaceTan{,_en}.md | | TAN-D07 | aclnn_tan.h 头注释 Tanh 复制遗留修正 | op_api/aclnn_tan.h | | TAN-D09 | in→out 组合白名单表+selfRef 域说明+参数表错链修正(zh/en) | docs/aclnnTan&aclnnInplaceTan{,_en}.md | 评审收敛修复(4 项): | ID | 修复项 | 文件 | |----|--------|------| | R-A | UT 注释规范化(仅描述代码语义) | tests/ut/op_api/test_aclnn_tan.cpp, tests/ut/op_host/arch35/test_tan_tiling_arch35.cpp | | R-C | tf 看护集 CSV 表头方言修正(testcase_name/api_name) | tests/st/arch35/ttk_tf_tan_st.csv | | R-E | aclnn_tan.h self 头注释补全 12 dtype | op_api/aclnn_tan.h | | R-F | tiling 核切分向上取整改用平台助手 Ops::Base::CeilDiv | op_host/arch35/tan_tiling_arch35.cpp | 测试资产: tests/assets/golden.py + tests/st/arch35/ttk_{kernel,aclnn,geir,torch,tf}_tan_st.csv(五路看护集,kernel 101 条,其余各 100 条)。 ## 关联的Issue Closes #4349(修复汇总,含逐项清单) ## 测试 - TTK 全量 503/503(正例 500+负向拒绝 3): kernel 101+supp 1、aclnn 97+supp 4(3 负向按预期拒绝)、geir/torch/tf 各 100 全绿;判据 cross_check(fp16/bf16/fp32)/binary_equal(int32)/isclose(f64 16/16 零 FAIL);4 例超大用例按协议旁表;四路抽验 8/8 与基线一致 - 低精度输入×宽 out 少量用例系框架真值口径与实现侧 GPU 同款计算顺序固有差异,逐例定性非算子缺陷,圈定看护集外(详见 issue) - Host UT 61/61(host 23/api 24/aicpu 14/graph 0) - pre-commit 18 文件定向全绿;OAT 双 0;六静态复检零新增 ## 文档更新 - math/tan/README{,_en}.md(非连续声明 zh/en) - math/tan/docs/aclnnTan&aclnnInplaceTan{,_en}.md(zh/en) - math/tan/op_api/aclnn_tan.h(头注释) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6913 | 5 days ago |
Tan
English | 简体中文
Product Support Status
| Product | Supported |
|---|---|
| Ascend 950PR&950DT products | √ |
| Atlas A3 products | √ |
| Atlas A2 products | √ |
| Atlas 200I/500 A2 inference products | √ |
| Atlas inference products | √ |
| Atlas training products | √ |
Function Description
-
Operator function: computes the tangent value of the input tensor element by element, and the output tensor has the same shape as the input tensor.
-
Computation formula:
yi=tan(xi)y_i = \tan(x_i) yi=tan(xi)
Here, xix_ixi denotes the iii-th element of the input tensor
x, and yiy_iyi denotes the iii-th element of the output tensory.
Parameter Description
| Parameter Name | Input/Output/Attribute | Description | Data Type | Data Format |
|---|---|---|---|---|
| x | Input | The input tensor x in the formula. Non-contiguous tensor inputs are automatically converted to contiguous tensors by the framework before execution. | FLOAT16, FLOAT, BFLOAT16, INT32, DOUBLE, COMPLEX64, COMPLEX128 | ND |
| y | Output | The output tensor y in the formula, with the same shape as x. Non-contiguous tensor outputs are automatically converted to contiguous tensors by the framework before execution. | FLOAT16, FLOAT, BFLOAT16, INT32, DOUBLE, COMPLEX64, COMPLEX128 | ND |
- Ascend 950PR&950DT products, Atlas A3 products, and Atlas A2 products: the AI Core supports FLOAT16, FLOAT, BFLOAT16, and INT32.
- Atlas 200I/500 A2 inference products, Atlas inference products, and Atlas training products: the AI Core supports FLOAT16, FLOAT, and INT32, and does not support BFLOAT16.
- DOUBLE, COMPLEX64, and COMPLEX128 are computed through the AICPU path.
Constraint Description
- The shapes of the input and output must be the same, and the data format is ND.
- In the AI Core implementation of Ascend 950PR&950DT products, the output is NaN when the input is NaN or Inf. A finite large input (including an absolute value greater than or equal to 10710^7107) is processed through high-precision range reduction and outputs a finite value.
Invocation Description
| Invocation Method | Sample Code | Description |
|---|---|---|
| aclnn API | test_aclnn_tan.cpp | Invokes the Tan operator through the aclnnTan and aclnnInplaceTan APIs. |
| GE graph mode | test_geir_tan.cpp | Invokes the Tan operator by building a graph through the operator IR. |