| Files | Last commit | Last update |
|---|---|---|
[Docs] 修正aclnnInplaceAtanh的数据类型支持说明 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6826 merge docs/atanh-a2-dtype-support into master [Docs] 修正aclnnInplaceAtanh的数据类型支持说明 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 修正 aclnnAtanh / aclnnInplaceAtanh 文档中关于 数据类型支持的说明: - Atlas A2 与 Atlas A3 均支持 BFLOAT16、COMPLEX64、COMPLEX128; ## 关联的 Issue [Fixes #4175](https://gitcode.com/cann/ops-math/issues/4175) ## 测试 ## 文档更新 - math/atanh/docs/aclnnAtanh&aclnnInplaceAtanh.md - math/atanh/docs/aclnnAtanh&aclnnInplaceAtanh_en.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6826 | 12 days ago | |
[Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6832 merge codex/atanh-remove-format-checks-20261029 into master [Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 Atanh Arch35 tiling 将输入、输出格式限制为 ND,Torch 传入连续的 NCL、NCHW、NCDHW 描述时会报 EZ0017,导致性能问题记录中的 9 条用例无法执行。删除输入、输出两处 ND 格式校验,并补充 ND 与这些公开格式的 12 组输入、输出组合单测。 Arch35 GEIR 示例引用 ../op_graph/atanh_proto.h,相对于 examples/arch35/ 会解析到不存在的 examples/op_graph/,导致编译失败。将其改为 ../../op_graph/atanh_proto.h,同时按 pre-commit 要求规范该示例的许可证头和格式;除 include 路径外,示例的 C++ token 序列保持一致。 ## 关联的Issue - 质量加固跟踪:https://gitcode.com/cann/ops-math/issues/4241 (Atanh Host/API 参数校验、错误码与测试参考不完整)。 - 性能问题及复测用例来源:https://gitcode.com/wangyueting/changwei_yezhao/issues/17 ## 测试 - 删除格式校验后,原来失败的 9 条用例(001、006、007、008、014、018、021、025、031)均通过原始 torch.atanh 调用及全量精度检查;每条采集 100 次 Level0 profile,并确认加载 math 仓实现。 - 5 项相关 host 单测通过,覆盖公开格式、非法 dtype、shape 和元素数量。公开格式回归在原版 tiling 上失败,在修复版上通过。 - CANN 9.1.0-beta.1 / ascend950 的 Atanh 单算子 Host/API、kernel 编译和 .run 打包通过。 - 使用仓库 GEIR runner 相同的 include 与链接参数,Arch35 原文件在修复前复现头文件找不到;修复后的 math/atanh/examples/arch35/test_geir_atanh.cpp 实际源码编译、NPU 图执行均返回 0。默认 complex128、shape [2, 3] 的 6 个输出与 Python cmath.atanh 逐元素比对通过,最大绝对误差约 2.78e-17。该结果验证示例编译与图执行,不代表 AICore dtype 覆盖。 - 追加修复后,三个改动文件的完整 pre-commit 检查通过,包括 clang-format、OAT;git diff --check 通过。tiling 和相关单测源码保持九条重测时的版本,GEIR 示例与单独编译运行通过的版本一致。 - 已知环境问题:完整 host 单测中的 NullContextReportsStageErrorOnce 未收到预期 EZ1008 记录,修改前 tiling 也复现同样失败;其余 5 项通过。GE 初始化另有 SDK 内置 opgraph_nn/opgraph_transformer 缺少 EsCast/EsTranspose 的日志,Atanh 图执行与输出检查均通过。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6832 | 10 days 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 | |
[CANNBot]质量加固:Atanh Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6703 merge codex/atanh-bias-quality-20261026 into master [CANNBot]质量加固:Atanh Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 加固 Ascend 950 的 Atanh Host/API 校验:工作区输出指针为空、输入输出元数据不匹配或 shape 非法时,返回失败并按具体原因上报错误。同时完善实际输出 dtype 的 Golden 参考和回归用例。 - 校验 workspace/executor 空指针、输出分配失败,以及输入输出 shape、dtype、ND 格式、负维度和元素数溢出;覆盖标量、空张量和动态推导。 - 缺失参数、shape、dtype、format 分别使用 SDK 标准错误宏;内部 Tiling/推导错误使用 EZ1008、EZ1014。移除上层重复报错,每次失败只上报一次;AICORE/AICPU 入队失败保留实际返回码。 - 在算子实际加载的 math/atanh/CMakeLists.txt 为 Host UT 配置 SDK pkg_inc 路径及 error_manager、nnopbase 依赖,解决标准 UT 构建找不到 registry 头文件的问题。 - Golden 使用 Torch 计算,将完整结果转换到实际输出 dtype,并支持原生 TestSpec、普通输出及原地写回。Kernel/GEIR 输出映射只声明 FP16、BF16、FP32,精度标准统一为 cross_check/L0。 - 补齐 Host 单测入口和 ACLNN 参数检查用例,整理 2217 条不依赖手工输入二进制的回归用例,保留用例 ID、输入定义和数值阈值。 改动限定于 math/atanh/,kernel 数值实现及 REG_OP 定义未变。 ## 关联的 issue 无。 ## 测试 - 对完整 PR 改动范围执行仓库原始配置的 pre-commit run --from-ref cb6b7761771cf0cc924f7dbc731f4de7c71c6acc --to-ref 660e2f1ce42ae084e63d8054825fc884b9a48acd,所有适用检查通过;另一次性扫描全部 10 个适用文件,OAT 通过。CSV 按仓库原配置排除。 - CANN 9.2.0 / ascend950 的 Atanh 单算子编译及 .run 打包通过,包含 Host/API 和 FP16/BF16/FP32 kernel。构建和 CPU 检查使用 SDK devlib 驱动接口。 - 按门禁相同入口 bash build.sh -u --ops=atanh --ophost --soc=ascend950 --cann_3rd_lib_path=<deps> -j2 完整编译并执行 Host 单测,**5/5 通过**,验证分类错误码和失败时单次上报;本地 SDK 为 CANN 9.2.0。SDK 上下文检查复用此前 **10/10 通过** 的结果,覆盖 InferShape、Tiling、InferDataType 缺失输入/输出、正常输入及空 dtype 推导上下文。 - 新增 ACLNN 单测复用此前源码语法编译检查结果;本轮只调整排版,C++ token 序列一致,未执行 ACLNN 单测。 - CSV 结构已验证为 2217 个唯一用例 ID,保留行逐字段不变;本轮 CSV 哈希一致。Golden 计算函数未变,float16、bfloat16、float32 的精度标准统一为 cross_check/L0。 - Golden 输出类型 CPU 检查 **9/9 通过**,覆盖三种支持类型的直接调用与输出元数据、Kernel/GEIR 的 FP64 输出拒绝,以及既有 ACLNN DOUBLE 契约。 - 已复现门禁缺少 base/registry/op_impl_space_registry_v2.h 的编译错误;为实际 testcase 目标补齐 SDK include 根目录后,同一构建入口通过。线上 CANN 9.3 新一轮门禁结果待重跑验证。 - git diff --check 通过。 本轮未执行真机 L0 精度回归,也未运行 NPU 全量回归;2217 是随仓测试资产数量,不表示设备回归通过数。CPU 检查不作为设备精度或性能结论。 ## 文档更新 修正公开接口说明中 Atanh 公式缺失的 0.5 系数。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试资产整理 ## AI/Agent 生成声明 - [ ] 纯人工手写 - [x] AI 辅助编写 - [ ] AI 完全生成 自动化代码核对和上述验证已完成,人工审查待维护者进行。 See merge request: cann/ops-math!6703 | 12 days ago | |
[CANNBot]质量加固:Atanh Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6703 merge codex/atanh-bias-quality-20261026 into master [CANNBot]质量加固:Atanh Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 加固 Ascend 950 的 Atanh Host/API 校验:工作区输出指针为空、输入输出元数据不匹配或 shape 非法时,返回失败并按具体原因上报错误。同时完善实际输出 dtype 的 Golden 参考和回归用例。 - 校验 workspace/executor 空指针、输出分配失败,以及输入输出 shape、dtype、ND 格式、负维度和元素数溢出;覆盖标量、空张量和动态推导。 - 缺失参数、shape、dtype、format 分别使用 SDK 标准错误宏;内部 Tiling/推导错误使用 EZ1008、EZ1014。移除上层重复报错,每次失败只上报一次;AICORE/AICPU 入队失败保留实际返回码。 - 在算子实际加载的 math/atanh/CMakeLists.txt 为 Host UT 配置 SDK pkg_inc 路径及 error_manager、nnopbase 依赖,解决标准 UT 构建找不到 registry 头文件的问题。 - Golden 使用 Torch 计算,将完整结果转换到实际输出 dtype,并支持原生 TestSpec、普通输出及原地写回。Kernel/GEIR 输出映射只声明 FP16、BF16、FP32,精度标准统一为 cross_check/L0。 - 补齐 Host 单测入口和 ACLNN 参数检查用例,整理 2217 条不依赖手工输入二进制的回归用例,保留用例 ID、输入定义和数值阈值。 改动限定于 math/atanh/,kernel 数值实现及 REG_OP 定义未变。 ## 关联的 issue 无。 ## 测试 - 对完整 PR 改动范围执行仓库原始配置的 pre-commit run --from-ref cb6b7761771cf0cc924f7dbc731f4de7c71c6acc --to-ref 660e2f1ce42ae084e63d8054825fc884b9a48acd,所有适用检查通过;另一次性扫描全部 10 个适用文件,OAT 通过。CSV 按仓库原配置排除。 - CANN 9.2.0 / ascend950 的 Atanh 单算子编译及 .run 打包通过,包含 Host/API 和 FP16/BF16/FP32 kernel。构建和 CPU 检查使用 SDK devlib 驱动接口。 - 按门禁相同入口 bash build.sh -u --ops=atanh --ophost --soc=ascend950 --cann_3rd_lib_path=<deps> -j2 完整编译并执行 Host 单测,**5/5 通过**,验证分类错误码和失败时单次上报;本地 SDK 为 CANN 9.2.0。SDK 上下文检查复用此前 **10/10 通过** 的结果,覆盖 InferShape、Tiling、InferDataType 缺失输入/输出、正常输入及空 dtype 推导上下文。 - 新增 ACLNN 单测复用此前源码语法编译检查结果;本轮只调整排版,C++ token 序列一致,未执行 ACLNN 单测。 - CSV 结构已验证为 2217 个唯一用例 ID,保留行逐字段不变;本轮 CSV 哈希一致。Golden 计算函数未变,float16、bfloat16、float32 的精度标准统一为 cross_check/L0。 - Golden 输出类型 CPU 检查 **9/9 通过**,覆盖三种支持类型的直接调用与输出元数据、Kernel/GEIR 的 FP64 输出拒绝,以及既有 ACLNN DOUBLE 契约。 - 已复现门禁缺少 base/registry/op_impl_space_registry_v2.h 的编译错误;为实际 testcase 目标补齐 SDK include 根目录后,同一构建入口通过。线上 CANN 9.3 新一轮门禁结果待重跑验证。 - git diff --check 通过。 本轮未执行真机 L0 精度回归,也未运行 NPU 全量回归;2217 是随仓测试资产数量,不表示设备回归通过数。CPU 检查不作为设备精度或性能结论。 ## 文档更新 修正公开接口说明中 Atanh 公式缺失的 0.5 系数。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试资产整理 ## AI/Agent 生成声明 - [ ] 纯人工手写 - [x] AI 辅助编写 - [ ] AI 完全生成 自动化代码核对和上述验证已完成,人工审查待维护者进行。 See merge request: cann/ops-math!6703 | 12 days ago | |
[Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6832 merge codex/atanh-remove-format-checks-20261029 into master [Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 Atanh Arch35 tiling 将输入、输出格式限制为 ND,Torch 传入连续的 NCL、NCHW、NCDHW 描述时会报 EZ0017,导致性能问题记录中的 9 条用例无法执行。删除输入、输出两处 ND 格式校验,并补充 ND 与这些公开格式的 12 组输入、输出组合单测。 Arch35 GEIR 示例引用 ../op_graph/atanh_proto.h,相对于 examples/arch35/ 会解析到不存在的 examples/op_graph/,导致编译失败。将其改为 ../../op_graph/atanh_proto.h,同时按 pre-commit 要求规范该示例的许可证头和格式;除 include 路径外,示例的 C++ token 序列保持一致。 ## 关联的Issue - 质量加固跟踪:https://gitcode.com/cann/ops-math/issues/4241 (Atanh Host/API 参数校验、错误码与测试参考不完整)。 - 性能问题及复测用例来源:https://gitcode.com/wangyueting/changwei_yezhao/issues/17 ## 测试 - 删除格式校验后,原来失败的 9 条用例(001、006、007、008、014、018、021、025、031)均通过原始 torch.atanh 调用及全量精度检查;每条采集 100 次 Level0 profile,并确认加载 math 仓实现。 - 5 项相关 host 单测通过,覆盖公开格式、非法 dtype、shape 和元素数量。公开格式回归在原版 tiling 上失败,在修复版上通过。 - CANN 9.1.0-beta.1 / ascend950 的 Atanh 单算子 Host/API、kernel 编译和 .run 打包通过。 - 使用仓库 GEIR runner 相同的 include 与链接参数,Arch35 原文件在修复前复现头文件找不到;修复后的 math/atanh/examples/arch35/test_geir_atanh.cpp 实际源码编译、NPU 图执行均返回 0。默认 complex128、shape [2, 3] 的 6 个输出与 Python cmath.atanh 逐元素比对通过,最大绝对误差约 2.78e-17。该结果验证示例编译与图执行,不代表 AICore dtype 覆盖。 - 追加修复后,三个改动文件的完整 pre-commit 检查通过,包括 clang-format、OAT;git diff --check 通过。tiling 和相关单测源码保持九条重测时的版本,GEIR 示例与单独编译运行通过的版本一致。 - 已知环境问题:完整 host 单测中的 NullContextReportsStageErrorOnce 未收到预期 EZ1008 记录,修改前 tiling 也复现同样失败;其余 5 项通过。GE 初始化另有 SDK 内置 opgraph_nn/opgraph_transformer 缺少 EsCast/EsTranspose 的日志,Atanh 图执行与输出检查均通过。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6832 | 10 days ago | |
fix/atanh-near-zero-precision Co-authored-by: leaving__<B24040621@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !4482 merge master into master fix/atanh-near-zero-precision Created-by: leaving__ Commit-by: leaving__ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复内容 Atanh 算子在输入值接近零时存在浮点精度损失问题。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2662 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4482 | 2 months ago | |
feat: Acosh/Asin 使能 AICPU 常量折叠 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4601 merge feat/enable-aicpu-constant-folding-acosh-asin into master feat: Acosh/Asin 使能 AICPU 常量折叠 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 Acosh / Asin 的 opInfo.opsFlag 在 canndev(aicpu_kernel.ini:43 / :251)与 ops-math 侧 *_aicpu_def.cpp 中均已是 OPS_FLAG_OPEN,但两个算子都没有编进 host 侧 libopconstant_folding_math.so——属于「**标志已开、实际不折叠**」的空开状态。 常量折叠生效需要两个条件同时满足:① opsFlag = OPEN;② kernel 编进折叠 so。本 PR 补上条件 ②。 **改动内容** | 文件 | 说明 | |---|---| | math/{acosh,asin}/CMakeLists.txt | add_all_modules_sources(...) 末尾追加 HOSTCPU TRUE | | math/{acosh,asin}/op_kernel_aicpu/*_aicpu.cpp | 增 #include "aicpu/math_aicpu_register.h";注册宏 REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | math/{acosh,asin}/examples/test_geir_*_const_folding.cpp | 新增 Const → Op → Output 图,写法对齐 #2551 的 test_geir_ceil_const_folding.cpp | | math/{acosh,atanh}/op_kernel_aicpu/CMakeLists.txt | 删除。全仓无 add_subdirectory(.../op_kernel_aicpu),其内容已被 cmake/func.cmake 的 glob 覆盖,属死文件 | opsFlag 未改动(本就是 OPEN)。device-only 依赖体检干净(无 ascend_hal / halSdma / __aarch64__ / asm volatile),无需条件编译隔离。 > **关于 diff 体积**:*_aicpu.cpp 的大段变更是 clang-format 对旧格式文件的整份重排,**语义改动只有上述 2 行**。已用「去空白后逐行比对」确认其余差异全是大括号换行与参数折行,无夹带。与 #2551 中 concat_v2 / strided_slice 等文件情况相同。 ## 关联的Issue #2601 ## 测试 1. **全量构建(必须不带 --ops=)**:bash build.sh --pkg -j16,0 错误。 带 --ops= 会设 ENABLE_CUSTOM=TRUE,使 NOT ENABLE_CUSTOM 不成立、折叠 so 根本不产出,那样的「验证通过」是假绿。 2. **CMake 配置期**:新增 acosh_host_const_obj、asin_host_const_obj 两个目标(连同存量共 10 个)。 3. **so 内容三向对照**(libopconstant_folding_math.so,8146408 字节): - 正向:acosh_aicpu.cpp / asin_aicpu.cpp 源文件名与 Acosh / Asin 类型字符串均命中 - 存量:Conj / Tile / Zeta / TransData / TopKPQDistanceV2 等仍命中,未打破存量 - 反向:8 个 opsFlag=CLOSE 的算子(Asinh、Atanh、TanhGrad、Exp、MatrixDiagV3、MatrixDiagPartV3、ConjugateTranspose、ProdEnvMatACalcRij)全部缺失 - 其中 **Asin 命中而 Asinh 缺失**,排除 strings 子串碰巧匹配 4. **so 进 run 包**:--list 可见于 opp/built-in/op_impl/host_cpu/,与构建产物 md5 一致(7f06b290...)。 5. **V2 注册路径**:新增 .o 中含 weak 符号 aicpu::RegistCpuKernelV2 与 Creator_kAcosh_Kernel / Creator_kAsin_Kernel。 6. **device 侧零回归**:宏在未定义 OPS_MATH_AICPU_HOST_KERNEL 时展开为原 REGISTER_CPU_KERNEL(kAcosh, AcoshCpuKernel),与改动前源码行逐字相同(预处理探针实测)。 7. **AICPU UT:13/13 PASS**(bash build.sh -u --opkernel_aicpu --ops=acosh,asin)。 8. **端到端**:安装 run 包后跑新增的两个 example,折叠日志 Constant folding computation for node acosh_const_folding (type: Acosh) finished, return code: 0.(Asin 同),数值正确;Registered V2 ops from so[libopconstant_folding_math.so] 由 **1 增至 9**。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4601 | 2 months ago | |
[Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6832 merge codex/atanh-remove-format-checks-20261029 into master [Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 Atanh Arch35 tiling 将输入、输出格式限制为 ND,Torch 传入连续的 NCL、NCHW、NCDHW 描述时会报 EZ0017,导致性能问题记录中的 9 条用例无法执行。删除输入、输出两处 ND 格式校验,并补充 ND 与这些公开格式的 12 组输入、输出组合单测。 Arch35 GEIR 示例引用 ../op_graph/atanh_proto.h,相对于 examples/arch35/ 会解析到不存在的 examples/op_graph/,导致编译失败。将其改为 ../../op_graph/atanh_proto.h,同时按 pre-commit 要求规范该示例的许可证头和格式;除 include 路径外,示例的 C++ token 序列保持一致。 ## 关联的Issue - 质量加固跟踪:https://gitcode.com/cann/ops-math/issues/4241 (Atanh Host/API 参数校验、错误码与测试参考不完整)。 - 性能问题及复测用例来源:https://gitcode.com/wangyueting/changwei_yezhao/issues/17 ## 测试 - 删除格式校验后,原来失败的 9 条用例(001、006、007、008、014、018、021、025、031)均通过原始 torch.atanh 调用及全量精度检查;每条采集 100 次 Level0 profile,并确认加载 math 仓实现。 - 5 项相关 host 单测通过,覆盖公开格式、非法 dtype、shape 和元素数量。公开格式回归在原版 tiling 上失败,在修复版上通过。 - CANN 9.1.0-beta.1 / ascend950 的 Atanh 单算子 Host/API、kernel 编译和 .run 打包通过。 - 使用仓库 GEIR runner 相同的 include 与链接参数,Arch35 原文件在修复前复现头文件找不到;修复后的 math/atanh/examples/arch35/test_geir_atanh.cpp 实际源码编译、NPU 图执行均返回 0。默认 complex128、shape [2, 3] 的 6 个输出与 Python cmath.atanh 逐元素比对通过,最大绝对误差约 2.78e-17。该结果验证示例编译与图执行,不代表 AICore dtype 覆盖。 - 追加修复后,三个改动文件的完整 pre-commit 检查通过,包括 clang-format、OAT;git diff --check 通过。tiling 和相关单测源码保持九条重测时的版本,GEIR 示例与单独编译运行通过的版本一致。 - 已知环境问题:完整 host 单测中的 NullContextReportsStageErrorOnce 未收到预期 EZ1008 记录,修改前 tiling 也复现同样失败;其余 5 项通过。GE 初始化另有 SDK 内置 opgraph_nn/opgraph_transformer 缺少 EsCast/EsTranspose 的日志,Atanh 图执行与输出检查均通过。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6832 | 10 days ago | |
[CANNBot]质量加固:Atanh Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6703 merge codex/atanh-bias-quality-20261026 into master [CANNBot]质量加固:Atanh Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 加固 Ascend 950 的 Atanh Host/API 校验:工作区输出指针为空、输入输出元数据不匹配或 shape 非法时,返回失败并按具体原因上报错误。同时完善实际输出 dtype 的 Golden 参考和回归用例。 - 校验 workspace/executor 空指针、输出分配失败,以及输入输出 shape、dtype、ND 格式、负维度和元素数溢出;覆盖标量、空张量和动态推导。 - 缺失参数、shape、dtype、format 分别使用 SDK 标准错误宏;内部 Tiling/推导错误使用 EZ1008、EZ1014。移除上层重复报错,每次失败只上报一次;AICORE/AICPU 入队失败保留实际返回码。 - 在算子实际加载的 math/atanh/CMakeLists.txt 为 Host UT 配置 SDK pkg_inc 路径及 error_manager、nnopbase 依赖,解决标准 UT 构建找不到 registry 头文件的问题。 - Golden 使用 Torch 计算,将完整结果转换到实际输出 dtype,并支持原生 TestSpec、普通输出及原地写回。Kernel/GEIR 输出映射只声明 FP16、BF16、FP32,精度标准统一为 cross_check/L0。 - 补齐 Host 单测入口和 ACLNN 参数检查用例,整理 2217 条不依赖手工输入二进制的回归用例,保留用例 ID、输入定义和数值阈值。 改动限定于 math/atanh/,kernel 数值实现及 REG_OP 定义未变。 ## 关联的 issue 无。 ## 测试 - 对完整 PR 改动范围执行仓库原始配置的 pre-commit run --from-ref cb6b7761771cf0cc924f7dbc731f4de7c71c6acc --to-ref 660e2f1ce42ae084e63d8054825fc884b9a48acd,所有适用检查通过;另一次性扫描全部 10 个适用文件,OAT 通过。CSV 按仓库原配置排除。 - CANN 9.2.0 / ascend950 的 Atanh 单算子编译及 .run 打包通过,包含 Host/API 和 FP16/BF16/FP32 kernel。构建和 CPU 检查使用 SDK devlib 驱动接口。 - 按门禁相同入口 bash build.sh -u --ops=atanh --ophost --soc=ascend950 --cann_3rd_lib_path=<deps> -j2 完整编译并执行 Host 单测,**5/5 通过**,验证分类错误码和失败时单次上报;本地 SDK 为 CANN 9.2.0。SDK 上下文检查复用此前 **10/10 通过** 的结果,覆盖 InferShape、Tiling、InferDataType 缺失输入/输出、正常输入及空 dtype 推导上下文。 - 新增 ACLNN 单测复用此前源码语法编译检查结果;本轮只调整排版,C++ token 序列一致,未执行 ACLNN 单测。 - CSV 结构已验证为 2217 个唯一用例 ID,保留行逐字段不变;本轮 CSV 哈希一致。Golden 计算函数未变,float16、bfloat16、float32 的精度标准统一为 cross_check/L0。 - Golden 输出类型 CPU 检查 **9/9 通过**,覆盖三种支持类型的直接调用与输出元数据、Kernel/GEIR 的 FP64 输出拒绝,以及既有 ACLNN DOUBLE 契约。 - 已复现门禁缺少 base/registry/op_impl_space_registry_v2.h 的编译错误;为实际 testcase 目标补齐 SDK include 根目录后,同一构建入口通过。线上 CANN 9.3 新一轮门禁结果待重跑验证。 - git diff --check 通过。 本轮未执行真机 L0 精度回归,也未运行 NPU 全量回归;2217 是随仓测试资产数量,不表示设备回归通过数。CPU 检查不作为设备精度或性能结论。 ## 文档更新 修正公开接口说明中 Atanh 公式缺失的 0.5 系数。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试资产整理 ## AI/Agent 生成声明 - [ ] 纯人工手写 - [x] AI 辅助编写 - [ ] AI 完全生成 自动化代码核对和上述验证已完成,人工审查待维护者进行。 See merge request: cann/ops-math!6703 | 12 days ago | |
产品名变更 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 | 1 month ago |
Atanh
贡献说明
| 贡献者 | 贡献算子 | 贡献时间 | 贡献内容 |
|---|---|---|---|
| CANN-BOT SIMT | atanh | 2026/05/22 | 新增atanh算子 |
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:计算逆双曲正切(inverse hyperbolic tangent)。
-
计算公式:
y=atanh(x)=12ln(1+x1−x)y = \text{atanh}(x) = \frac{1}{2} \ln\left(\frac{1+x}{1-x}\right) y=atanh(x)=21ln(1−x1+x)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行atanh计算的入参,公式中的x。输入值域为(-1, 1)。 | FLOAT16、FLOAT、BF16 | ND |
| y | 输出 | atanh计算的结果,公式中的y。 | FLOAT16、FLOAT、BF16 | ND |
约束说明
- 输入x的值域为(-1, 1),|x|>1时输出NaN,x=±1时输出±Inf。
- 输出shape与输入shape完全相同。
- 输出dtype与输入dtype相同。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_atanh | 参见算子调用完成算子编译和验证。 |
| 图模式调用 | test_geir_atanh | 参见算子调用完成算子编译和验证。 |