| [CANNBOT] sinh 适配Ascend950 Ascendc实现
Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com>
# message auto-generated for no-merge-commit merge:
!2742 merge 0513 into master
[CANNBOT] sinh 适配Ascend950 Ascendc实现
Created-by: gcw_YBIAEfqJ
Commit-by: gcw_YBIAEfqJ
Merged-by: cann-robot
Description: ## 描述
<!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->
sinh 当前实现逻辑
分支 1 — Taylor 多项式(|x| < 1):
sinh(x) = x + x³ · P(x²)
P(x²) = ((c₅·x² + c₄)·x² + c₃)·x² + c₂
系数:c₂=1/6, c₃=1/120, c₄=1/5040, c₅=1/362880
分支 2 — Offset-Exp 公式(|x| ≥ 1):
t = exp(|x| - ln2)
sinh(x) = sign(x) · (t - 0.25/t)
通过减去 ln2 避免 exp 溢出(相当于 exp(|x|)/2 - exp(-|x|)/2)
分支 3 — 溢出保护(|x| ≥ 90):
result = sign(x) · ∞
删除了多余的api 头文件
## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。-->
<!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。-->
https://gitcode.com/cann/ops-math/issues/1568
## 测试
<!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->
OBP冒烟:22133
二级冒烟:5449
### sinh 测试覆盖总结
┌────────────┬─────────────────────────────────────────────────┐
│ 维度 │ 覆盖情况 │
├────────────┼─────────────────────────────────────────────────┤
│ 总用例数 │ ~848(TTK 735 + ST 100 + UT 13) │
├────────────┼─────────────────────────────────────────────────┤
│ 数据类型 │ float32, float16, bfloat16, complex64(AICPU UT) │
├────────────┼─────────────────────────────────────────────────┤
│ Shape 维度 │ 0D(标量) ~ 8D,含空张量 (0,) │
├────────────┼─────────────────────────────────────────────────┤
│ 元素数量 │ 0 ~ 50000000 │
└────────────┴─────────────────────────────────────────────────┘
数据值域:
┌─────────────────────────────────────────┬───────────────────────────────┐
│ 区间 │ 说明 │
├─────────────────────────────────────────┼───────────────────────────────┤
│ [-0.001, 0.001] / [-1e-5, 1e-5] │ 极小值,Taylor 分支核心区 │
├─────────────────────────────────────────┼───────────────────────────────┤
│ [-0.99, 0.99] │ Taylor 分支(|x|<1) │
├─────────────────────────────────────────┼───────────────────────────────┤
│ [0.99, 1.01] / [-1.01, -0.99] │ 分支边界(Taylor↔Exp 切换点) │
├─────────────────────────────────────────┼───────────────────────────────┤
│ [1, 10] / [-10, -1] │ Exp 分支正常区 │
├─────────────────────────────────────────┼───────────────────────────────┤
│ [85, 90] / [-90, -85] │ 溢出边界(exp 接近 ±inf) │
├─────────────────────────────────────────┼───────────────────────────────┤
│ [100, 500] │ 溢出区(结果应为 ±inf) │
├─────────────────────────────────────────┼───────────────────────────────┤
│ denormal: 1.175e-38(fp32), 6.1e-5(fp16) │ 次正规数 │
└─────────────────────────────────────────┴───────────────────────────────┘
异常场景:
- ±inf 输入 → 输出 ±inf
- NaN 输入 → 输出 NaN
- ±0 输入 → 输出 ±0(保号性)
- 空张量 (0,) → 空输出
- 9D 超维度 → 报错
- 空指针 / dtype 不匹配 → 报错
- Inplace 操作(aclnnInplaceSinh)
## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
## 类型标签
<!-- [x] 表示选中 -->
- [ ] Bug修复
- [x] 新特性
- [ ] 性能优化
- [ ] 文档更新
- [ ] 其他,请描述:
See merge request: cann/ops-math!2742 | 18 天前 |