| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
signbit: 重构double类型实现,使用RegTraitNumTwo和reg[1]提取符号位 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !4522 merge signbit into master signbit: 重构double类型实现,使用RegTraitNumTwo和reg[1]提取符号位 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 重构 signbit 算子 double 类型的符号位提取实现。原实现将 double 视为 uint64_t,通过右移 63 位提取符号位,需要额外的 uint64_t 中间寄存器和 Pack 转换步骤。新实现使用 RegTraitNumTwo 双寄存器加载 double,通过 reg[1] 直接访问高 32 位,右移 31 位提取符号位,与 float 版本(STATE_BIT_SHF_VALUE=31)保持一致,同时移除了 vregOutput、tmpMask、vlSize、countTmp 等冗余变量和 Pack 转换步骤,简化了代码逻辑。 ### 改动原因 - 原实现中 double 使用 RegTraitNumOne 单寄存器,需要 uint64_t 中间寄存器和 Pack 转换,代码较为复杂 - 重构后使用 RegTraitNumTwo 双寄存器,通过 reg[1] 直接访问高 32 位提取符号位,无需 Pack 转换 - 与 sign.h(SignCustomInt64)和 clip_by_value_dag.h 等 arch35 算子的 64 位类型处理方式保持一致 ### 改动方法 - 将 vregInput1 从 RegTraitNumOne 改为 RegTraitNumTwo - vl 计算从 GetVRegSize() 改为 VECTOR_REG_WIDTH_2XVL - 通过 vregInput1.reg[1] 访问 double 高 32 位,右移 31 位提取符号位 - 移除 vregOutput、tmpMask、vlSize、countTmp 等冗余变量和 Pack 转换步骤 - 删除 DOUBLE_STATE_BIT_SHF_VALUE 常量,复用 STATE_BIT_SHF_VALUE ## 关联的Issue - #2563 ## 测试 - 二级冒烟测试 - 算子泛化测试(覆盖 double 类型各种输入 shape) ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 See merge request: cann/ops-math!4522 | 1 个月前 | |
ascend950新增signbit算子kernel侧实现 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> # message auto-generated for no-merge-commit merge: !1725 merge master into master ascend950新增signbit算子kernel侧实现 Created-by: hw-zhangpanpan Commit-by: hw-zhangpanpan Merged-by: cann-robot Description: ## 描述 ascend950新增signbit算子kernel侧实现 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1149 ## 测试 ttk泛化用例验证,二级冒烟,obp ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!1725 | 5 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 5 个月前 |