| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(SignBitsUnpack): add Ascend 950 implementation Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4277 merge cherry-pick-mr-4273-1785157556050-auto into master feat(SignBitsUnpack): add Ascend 950 implementation Created-by: lianjieyu Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 实现 SignBitsUnpack 在 Ascend 950(arch35)上的完整 AscendC 算子链路,补齐 ACLNN、GEIR 图模式、Host 推导与 tiling、AICore kernel 以及示例。 主要修改: - 按新算子模块规则更新 CMake,并迁移 op_api 目录结构。 - 新增 GEIR proto、shape/dtype 推导,使 size、dtype 在 proto、OpDef、推导和调用侧保持一致。 - 新增 arch35 RT2 tiling、Ascend 950 配置和 kernel 实现。 - 新增 ACLNN 与 GEIR 示例,补充 README 的接口与约束说明。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2388 ## 测试 已执行: - bash build.sh --opkernel --soc=ascend950 --ops=sign_bits_unpack -j8 - bash build.sh --pkg --soc=ascend950 --ops=sign_bits_unpack -j8 --vendor_name=custom - bash build.sh --run_example sign_bits_unpack graph cust --vendor_name=custom_math --soc=ascend950 - bash build.sh --run_example sign_bits_unpack eager cust --vendor_name=custom --soc=ascend950 以上构建、打包、GEIR 图模式与 eager 示例均通过。 ## 文档更新 更新 math/sign_bits_unpack/README.md,补充功能语义、输入输出、属性、约束及调用方式。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4277 | 1 个月前 | |
feat(SignBitsUnpack): add Ascend 950 implementation Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4277 merge cherry-pick-mr-4273-1785157556050-auto into master feat(SignBitsUnpack): add Ascend 950 implementation Created-by: lianjieyu Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 实现 SignBitsUnpack 在 Ascend 950(arch35)上的完整 AscendC 算子链路,补齐 ACLNN、GEIR 图模式、Host 推导与 tiling、AICore kernel 以及示例。 主要修改: - 按新算子模块规则更新 CMake,并迁移 op_api 目录结构。 - 新增 GEIR proto、shape/dtype 推导,使 size、dtype 在 proto、OpDef、推导和调用侧保持一致。 - 新增 arch35 RT2 tiling、Ascend 950 配置和 kernel 实现。 - 新增 ACLNN 与 GEIR 示例,补充 README 的接口与约束说明。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2388 ## 测试 已执行: - bash build.sh --opkernel --soc=ascend950 --ops=sign_bits_unpack -j8 - bash build.sh --pkg --soc=ascend950 --ops=sign_bits_unpack -j8 --vendor_name=custom - bash build.sh --run_example sign_bits_unpack graph cust --vendor_name=custom_math --soc=ascend950 - bash build.sh --run_example sign_bits_unpack eager cust --vendor_name=custom --soc=ascend950 以上构建、打包、GEIR 图模式与 eager 示例均通过。 ## 文档更新 更新 math/sign_bits_unpack/README.md,补充功能语义、输入输出、属性、约束及调用方式。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4277 | 1 个月前 | |
math类onnx算子插件支持 Co-authored-by: x00842564<xuyanke@huawei.com> Co-authored-by: weiyukun<weiyukun2@h-partners.com> # message auto-generated for no-merge-commit merge: !431 merge master into master math类onnx算子插件支持 Created-by: yanke-xu Commit-by: weiyukun;x00842564 Merged-by: cann-robot Description: ## 描述 onnx算子支持列表: 1. addcmul 2. ArgMax 3. ArgMin 4. Bernoulli 5. BitShift 6. Cast 7. Clip 8. Concat 9. ConcatFromSequence 10. Corr 11. CumSum 12. DeformableOffsets 13. DepthToSpace 14. Einsum 15. EyeLike 16. Flatten 17. IsInf 18. Max 19. Mean 20. Min 21. Mod 22. Multinomial 23. NPUDtypeCast 24. NPUFormatCast 25. NPUOneHot 26. NPURotaryMul 27. NPUSignBitsPack 28. NPUSignBitsUnpack 29. NPUSlice 30. OneHot 31. Pad 32. PhonyConcat 33. PhonySplit 34. RandomNormal 35. RandomNormalLike 36. RandomUniform 37. RandomUniformLike 38. ReduceL1 39. ReduceL2 40. ReduceLogSum 41. ReduceLogSumExp 42. ReduceMax 43. ReduceMean 44. ReduceMin 45. ReduceProd 46. ReduceSum 47. ReduceSumSquare 48. RepeatWithPad 49. Reshape 50. ReverseSequence 51. SequenceAt 52. SequenceConstruct 53. SequenceEmpty 54. SequenceErase 55. SequenceInsert 56. SequenceLength 57. Slice 58. SpaceToDepth 59. Split 60. SplitToSequence 61. Squeeze 62. Sum 63. Transpose 64. Trilu 65. Unsqueeze 66. Xor ## 关联的Issue None ## 测试 1、编译构建 2、静态检查 3、冒烟测试 4、本地功能验证 ## 文档更新 None ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!431 | 8 个月前 | |
feat(SignBitsUnpack): add Ascend 950 implementation Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4277 merge cherry-pick-mr-4273-1785157556050-auto into master feat(SignBitsUnpack): add Ascend 950 implementation Created-by: lianjieyu Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 实现 SignBitsUnpack 在 Ascend 950(arch35)上的完整 AscendC 算子链路,补齐 ACLNN、GEIR 图模式、Host 推导与 tiling、AICore kernel 以及示例。 主要修改: - 按新算子模块规则更新 CMake,并迁移 op_api 目录结构。 - 新增 GEIR proto、shape/dtype 推导,使 size、dtype 在 proto、OpDef、推导和调用侧保持一致。 - 新增 arch35 RT2 tiling、Ascend 950 配置和 kernel 实现。 - 新增 ACLNN 与 GEIR 示例,补充 README 的接口与约束说明。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2388 ## 测试 已执行: - bash build.sh --opkernel --soc=ascend950 --ops=sign_bits_unpack -j8 - bash build.sh --pkg --soc=ascend950 --ops=sign_bits_unpack -j8 --vendor_name=custom - bash build.sh --run_example sign_bits_unpack graph cust --vendor_name=custom_math --soc=ascend950 - bash build.sh --run_example sign_bits_unpack eager cust --vendor_name=custom --soc=ascend950 以上构建、打包、GEIR 图模式与 eager 示例均通过。 ## 文档更新 更新 math/sign_bits_unpack/README.md,补充功能语义、输入输出、属性、约束及调用方式。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4277 | 1 个月前 | |
feat(SignBitsUnpack): add Ascend 950 implementation Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4277 merge cherry-pick-mr-4273-1785157556050-auto into master feat(SignBitsUnpack): add Ascend 950 implementation Created-by: lianjieyu Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 实现 SignBitsUnpack 在 Ascend 950(arch35)上的完整 AscendC 算子链路,补齐 ACLNN、GEIR 图模式、Host 推导与 tiling、AICore kernel 以及示例。 主要修改: - 按新算子模块规则更新 CMake,并迁移 op_api 目录结构。 - 新增 GEIR proto、shape/dtype 推导,使 size、dtype 在 proto、OpDef、推导和调用侧保持一致。 - 新增 arch35 RT2 tiling、Ascend 950 配置和 kernel 实现。 - 新增 ACLNN 与 GEIR 示例,补充 README 的接口与约束说明。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2388 ## 测试 已执行: - bash build.sh --opkernel --soc=ascend950 --ops=sign_bits_unpack -j8 - bash build.sh --pkg --soc=ascend950 --ops=sign_bits_unpack -j8 --vendor_name=custom - bash build.sh --run_example sign_bits_unpack graph cust --vendor_name=custom_math --soc=ascend950 - bash build.sh --run_example sign_bits_unpack eager cust --vendor_name=custom --soc=ascend950 以上构建、打包、GEIR 图模式与 eager 示例均通过。 ## 文档更新 更新 math/sign_bits_unpack/README.md,补充功能语义、输入输出、属性、约束及调用方式。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4277 | 1 个月前 | |
feat(SignBitsUnpack): add Ascend 950 implementation Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4277 merge cherry-pick-mr-4273-1785157556050-auto into master feat(SignBitsUnpack): add Ascend 950 implementation Created-by: lianjieyu Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 实现 SignBitsUnpack 在 Ascend 950(arch35)上的完整 AscendC 算子链路,补齐 ACLNN、GEIR 图模式、Host 推导与 tiling、AICore kernel 以及示例。 主要修改: - 按新算子模块规则更新 CMake,并迁移 op_api 目录结构。 - 新增 GEIR proto、shape/dtype 推导,使 size、dtype 在 proto、OpDef、推导和调用侧保持一致。 - 新增 arch35 RT2 tiling、Ascend 950 配置和 kernel 实现。 - 新增 ACLNN 与 GEIR 示例,补充 README 的接口与约束说明。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2388 ## 测试 已执行: - bash build.sh --opkernel --soc=ascend950 --ops=sign_bits_unpack -j8 - bash build.sh --pkg --soc=ascend950 --ops=sign_bits_unpack -j8 --vendor_name=custom - bash build.sh --run_example sign_bits_unpack graph cust --vendor_name=custom_math --soc=ascend950 - bash build.sh --run_example sign_bits_unpack eager cust --vendor_name=custom --soc=ascend950 以上构建、打包、GEIR 图模式与 eager 示例均通过。 ## 文档更新 更新 math/sign_bits_unpack/README.md,补充功能语义、输入输出、属性、约束及调用方式。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4277 | 1 个月前 | |
fix(sign_bits_unpack): use tensor Select mode (ref #2473) Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4391 merge codex/fix-sign-bits-unpack-select-mode into master fix(sign_bits_unpack): use tensor Select mode (ref #2473) Created-by: ForestFrame Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 修复 SignBitsUnpack 使用 VSEL_CMPMASK_SPR 时,大 shape 多轮迭代复用首段 selMask 的问题。 - 改用 VSEL_TENSOR_TENSOR_MODE,连续消费各轮 selMask。 - 新增 fp16、fp32 大 shape 回归用例。 ## 关联的Issue Closes #2473 https://gitcode.com/cann/ops-math/issues/2473 ## 测试 - bash build.sh -u --opkernel --ops=sign_bits_unpack --soc=ascend950 -j16:7/7 通过。 - clang-format、空白检查、密钥检测、拼写检查:通过。 - 本地 OAT hook 使用 Python 3.8 时发生工具兼容错误;切换 Python 3.9 后,对未修改的上游文件也产生相同许可证头基线误报,因此提交时仅跳过 OAT hook。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4391 | 27 天前 | |
fix(sign_bits_unpack): use tensor Select mode (ref #2473) Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4391 merge codex/fix-sign-bits-unpack-select-mode into master fix(sign_bits_unpack): use tensor Select mode (ref #2473) Created-by: ForestFrame Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 修复 SignBitsUnpack 使用 VSEL_CMPMASK_SPR 时,大 shape 多轮迭代复用首段 selMask 的问题。 - 改用 VSEL_TENSOR_TENSOR_MODE,连续消费各轮 selMask。 - 新增 fp16、fp32 大 shape 回归用例。 ## 关联的Issue Closes #2473 https://gitcode.com/cann/ops-math/issues/2473 ## 测试 - bash build.sh -u --opkernel --ops=sign_bits_unpack --soc=ascend950 -j16:7/7 通过。 - clang-format、空白检查、密钥检测、拼写检查:通过。 - 本地 OAT hook 使用 Python 3.8 时发生工具兼容错误;切换 Python 3.9 后,对未修改的上游文件也产生相同许可证头基线误报,因此提交时仅跳过 OAT hook。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4391 | 27 天前 | |
feat(SignBitsUnpack): add Ascend 950 implementation Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4277 merge cherry-pick-mr-4273-1785157556050-auto into master feat(SignBitsUnpack): add Ascend 950 implementation Created-by: lianjieyu Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 实现 SignBitsUnpack 在 Ascend 950(arch35)上的完整 AscendC 算子链路,补齐 ACLNN、GEIR 图模式、Host 推导与 tiling、AICore kernel 以及示例。 主要修改: - 按新算子模块规则更新 CMake,并迁移 op_api 目录结构。 - 新增 GEIR proto、shape/dtype 推导,使 size、dtype 在 proto、OpDef、推导和调用侧保持一致。 - 新增 arch35 RT2 tiling、Ascend 950 配置和 kernel 实现。 - 新增 ACLNN 与 GEIR 示例,补充 README 的接口与约束说明。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2388 ## 测试 已执行: - bash build.sh --opkernel --soc=ascend950 --ops=sign_bits_unpack -j8 - bash build.sh --pkg --soc=ascend950 --ops=sign_bits_unpack -j8 --vendor_name=custom - bash build.sh --run_example sign_bits_unpack graph cust --vendor_name=custom_math --soc=ascend950 - bash build.sh --run_example sign_bits_unpack eager cust --vendor_name=custom --soc=ascend950 以上构建、打包、GEIR 图模式与 eager 示例均通过。 ## 文档更新 更新 math/sign_bits_unpack/README.md,补充功能语义、输入输出、属性、约束及调用方式。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4277 | 1 个月前 | |
docs(sign_bits_unpack): remove non-contiguous tensor claim Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4591 merge codex/docs-sign-bits-unpack-remove-noncontiguous into master docs(sign_bits_unpack): remove non-contiguous tensor claim Created-by: ForestFrame Commit-by: ForestFrame Merged-by: cann-robot Description: ## 变更说明 - 删除 SignBitsUnpack README 中“支持非连续的 Tensor”的声明。 ## 原因 当前算子文档不应对外声明该输入能力,避免 README 约束与实际支持范围不一致。 ## 影响 仅修改文档,不改变算子接口、实现或运行行为。 ## 验证 - git diff --check - 相对最新 cann/master 仅包含 math/sign_bits_unpack/README.md 的 1 行删除 ## 关联 Issue Closes #2609 See merge request: cann/ops-math!4591 | 24 天前 |
SignBitsUnpack
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:将UINT8类型的1-bit Adam符号位拆包为FLOAT32或FLOAT16类型的张量。
-
计算公式:
设输入self为长度为N的1D UINT8张量,每个字节包含8个符号位(按LSB优先顺序),第jjj个字节bjb_jbj的第iii位(i=0,1,…,7i = 0, 1, \dots, 7i=0,1,…,7)解包规则如下:
outj⋅8+i={+1.0,biti(bj)=1−1.0,biti(bj)=0out_{j \cdot 8 + i} = \begin{cases} +1.0, & \text{bit}_i(b_j) = 1 \\ -1.0, & \text{bit}_i(b_j) = 0 \end{cases} outj⋅8+i={+1.0,−1.0,biti(bj)=1biti(bj)=0
输出张量共N×8N \times 8N×8个元素,并被reshape为二维,其shape为:
out.shape=(size, N×8size)out.shape = (size,\ \frac{N \times 8}{size}) out.shape=(size, sizeN×8)
其中size为入参指定的输出第一维度大小。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| self | 输入 | 待进行SignBitsUnpack计算的入参,1D张量,每个UINT8元素包含8个符号位。支持空tensor。 | UINT8 | ND |
| size | 输入属性 | 表示维度处理,reshape时输出张量的第一个维度。 | INT64 | - |
| dtype | 输入属性 | 表示量化输出Tensor的数据类型。 | FLOAT16、FLOAT | - |
| out | 输出 | 待进行SignBitsUnpack计算的出参,2D张量,数据类型由dtype参数决定。 | FLOAT16、FLOAT | ND |
约束说明
self必须是1维张量,out必须是2维张量。size必须大于0,且(self的元素个数 × 8)能被size整除。out的第一维度必须等于size。out的数据类型必须与dtype参数一致。- 数据格式仅支持ND。
- 支持空tensor场景。
- 确定性计算:aclnnSignBitsUnpack默认确定性实现。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_sign_bits_unpack | 通过aclnnSignBitsUnpack接口方式调用SignBitsUnpack算子。 |
| 图模式调用 | test_geir_sign_bits_unpack | 通过算子IR构图方式调用SignBitsUnpack算子。 |