- 修改 cosh 的A5 实现,对齐AscendC
- 修改 ASinh,ACosh的精度模式选用
- Bitwise类 Operation 增加 支持的数据类型


Pull Request已成功合入, 合并人@CANN-robot
(感谢 chenbl 的贡献)变更摘要
该 PR 主要修复了 cosh 在非 __DAV_V220 架构上的实现。原先 TCosh 内联的算法仅适用于 V220 架构,非 V220 架构缺乏正确的实现。此次变更将 cosh 的计算逻辑抽取为独立的 TCoshCompute 函数,针对 __DAV_V220 和非 __DAV_V220 分别提供不同实现:V220 保留原有的 exp 组合算法,非 V220 新增基于 log2 范围归约 + 倒数近似的算法,并增加了溢出处理(当 |x| >= 90 时返回 +inf)。同时,临时缓冲区需求量从 1 个 tile 调整为 3 个 tile,并在 TASinh/TACosh 中移除了部分运算的显式算法模板参数。
主要改动
-
新增
TCoshCompute双架构实现: 在unary.h中新增TCoshCompute函数,__DAV_V220下使用cosh(x) = 0.5 * (exp(x/2) + exp(-3x/2)) * exp(x/2)的简单形式;非 V220 下使用基于log2(e)范围归约的复杂实现,并通过TRECIP+TADD完成最终计算,同时利用TCMPS+TSEL对|x| >= 90的输入返回+inf。 -
TCosh调用重构与临时缓冲区扩展:TCosh函数不再内联计算逻辑,改为调用TCoshCompute。非 V220 路径额外声明了tmp0Tile/tmp1Tile/tmp2Tile/tmp0IntTile/tmp2MaskTile五种临时 tile,并在循环中按偏移分配tmp缓冲区的不同区域。相应地,OP_COSH注册时的模板参数从NUM_VALUE_1改为NUM_VALUE_3,满足 3 个 tile 的临时空间需求。 -
TASinh/TACosh中移除显式算法模板参数: 将TDIVS<pto::DivAlgorithm::HIGH_PRECISION>、TSQRT<pto::SqrtAlgorithm::HIGH_PRECISION>、TDIV<pto::DivAlgorithm::HIGH_PRECISION>、TLOG<pto::LogAlgorithm::HIGH_PRECISION>等调用简化为不带模板参数的TDIVS、TSQRT、TDIV、TLOG,统一使用默认算法。


Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| docs | ✅ 尹杰, lyz0328 (2/2) | ✅ lyz0328, 尹杰 (2/1) |
| repo-cann/pypto | ✅ congqiannan, 尹杰 (2/2) | ✅ congqiannan, 尹杰 (2/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
chenbl, thanks for your pull request. All authors of the commits have signed the CLA. 👍


/approve

