| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: fix HansEncode Ascend 950 support status Co-authored-by: n_nddddd<lanshangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !6250 merge hans-encode-950-doc-support into master docs: fix HansEncode Ascend 950 support status Created-by: n_nddddd Commit-by: n_nddddd Merged-by: cann-robot Description: ## 描述 hans encode 质量加固(资料同步):README 产品支持表补充 950支持 hans encode。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3503 ## 测试 只修改文档,无代码更新 ## 文档更新 更新了以下两个文档: math/hans_encode/README.md math/hans_encode/docs/aclnnHansEncode.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6250 | 7 天前 | |
HansEncode示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4695 merge raii-hans_encode into master HansEncode示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/hans_encode/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致;同时移除示例中误包含的 aclnnHansDecode 调用(原文件与 HansDecode 示例完全相同),示例仅保留 aclnnHansEncode 流程。 ## 测试 - Start compile and run examples file: ../math/hans_encode/examples/test_aclnn_hans_encode.cpp pkg_mode:cust vendor_name:hans_encode result header[0] is: 24276 result header[1] is: 2 result header[2] is: 1024 result header[3] is: 1024 result header[4] is: 0 result header[5] is: 0 result header[6] is: 0 result header[7] is: 0 result header[8] is: 9472 result header[9] is: 9472 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4695 | 2 个月前 | |
增加A2 A3新算子支持 Co-authored-by: slx2008<shaolixin@huawei.com> # message auto-generated for no-merge-commit merge: !448 merge master into master 增加A2 A3新算子支持 Created-by: songkai111 Commit-by: slx2008 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!448 | 9 个月前 | |
hans_950_encode_decode_impl Co-authored-by: l0061484<lanshangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !5639 merge hans-950-simt-upstream-review into master hans_950_encode_decode_impl Created-by: n_nddddd Commit-by: l0061484 Merged-by: cann-robot Description: ## 描述 本 PR 为 Ascend 950(Ascend950PR/DT)完整引入 HANS 无损压缩算法支持,新增 HansEncode/HansDecode 两个算子的 950 SIMT 实现及配套 host 侧适配,主要内容如下: ### 1. 新增 950 SIMT 内核实现 **HansEncode**([op_kernel/arch35/hans_encode_simt.h](final_version/ops-math-hans-950-simt-upstream-review-v1/ops-math-hans-950-simt-upstream-review/math/hans_encode/op_kernel/arch35/hans_encode_simt.h)):基于 950 SIMT 编程模型全新实现。 **HansDecode**(op_kernel/arch35/hans_decode_simt.h):对应的 950 SIMT 解码实现,基于 PDF 与 mantissa 重组恢复张量。 ### 2. APT 入口与 host 侧适配 - 新增 hans_encode_apt.cpp / hans_decode_apt.cpp 950 专用 apt 入口,910 入口保持不变; ### 3. 测试覆盖 - **Encode 内核 UT**:39 个用例(FP32/BF16、partial tile、statistic/reshuff 组合、129-tile、全符号、特殊值等); - **Decode 内核 UT**:44 个用例; - **Host tiling UT**:40 个用例,覆盖 FP16/BF16/FP32、双属性、序列化容量、workspace 变化、56 核上限、末核分配、最小编码长度、非法 PDF/mantissa、容量不足、910 回归分支等; ## 关联的Issue DST:https://dts-szv.clouddragon.huawei.com/DTSPortal/ticket/DTS2026062921751 ## 测试 | 测试项 | 命令 | 结果 | |--------|------|------| | Encode 内核 UT(2 次复跑,结果稳定) | bash build.sh -u --opkernel --soc=ascend950 --ops=hans_encode | **39通过 / 0 失败** | | Decode 内核 UT | bash build.sh -u --opkernel --soc=ascend950 --ops=hans_decode | **44 通过 / 0 失败** | | Host tiling UT(含 910 回归分支) | bash build.sh -u --ophost --soc=ascend950 --ops=hans_encode,hans_decode --gtest_filter='*HansEncode950*:*HansDecode950*' | **40 通过 / 0 失败** | | NPU 二进制构建 | bash build.sh --opkernel --soc=ascend950 --ops=hans_encode,hans_decode | **Build binary success** | ## 文档更新 - 更新 math/hans_encode/README.md、math/hans_decode/README.md:产品支持情况表新增 Ascend 950PR/950DT 支持; - 新增 math/hans_encode/tests/README.md:950 验证说明(host tiling UT、encode/decode 内核 UT 覆盖范围与运行命令)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5639 | 1 个月前 | |
hans_950_encode_decode_impl Co-authored-by: l0061484<lanshangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !5639 merge hans-950-simt-upstream-review into master hans_950_encode_decode_impl Created-by: n_nddddd Commit-by: l0061484 Merged-by: cann-robot Description: ## 描述 本 PR 为 Ascend 950(Ascend950PR/DT)完整引入 HANS 无损压缩算法支持,新增 HansEncode/HansDecode 两个算子的 950 SIMT 实现及配套 host 侧适配,主要内容如下: ### 1. 新增 950 SIMT 内核实现 **HansEncode**([op_kernel/arch35/hans_encode_simt.h](final_version/ops-math-hans-950-simt-upstream-review-v1/ops-math-hans-950-simt-upstream-review/math/hans_encode/op_kernel/arch35/hans_encode_simt.h)):基于 950 SIMT 编程模型全新实现。 **HansDecode**(op_kernel/arch35/hans_decode_simt.h):对应的 950 SIMT 解码实现,基于 PDF 与 mantissa 重组恢复张量。 ### 2. APT 入口与 host 侧适配 - 新增 hans_encode_apt.cpp / hans_decode_apt.cpp 950 专用 apt 入口,910 入口保持不变; ### 3. 测试覆盖 - **Encode 内核 UT**:39 个用例(FP32/BF16、partial tile、statistic/reshuff 组合、129-tile、全符号、特殊值等); - **Decode 内核 UT**:44 个用例; - **Host tiling UT**:40 个用例,覆盖 FP16/BF16/FP32、双属性、序列化容量、workspace 变化、56 核上限、末核分配、最小编码长度、非法 PDF/mantissa、容量不足、910 回归分支等; ## 关联的Issue DST:https://dts-szv.clouddragon.huawei.com/DTSPortal/ticket/DTS2026062921751 ## 测试 | 测试项 | 命令 | 结果 | |--------|------|------| | Encode 内核 UT(2 次复跑,结果稳定) | bash build.sh -u --opkernel --soc=ascend950 --ops=hans_encode | **39通过 / 0 失败** | | Decode 内核 UT | bash build.sh -u --opkernel --soc=ascend950 --ops=hans_decode | **44 通过 / 0 失败** | | Host tiling UT(含 910 回归分支) | bash build.sh -u --ophost --soc=ascend950 --ops=hans_encode,hans_decode --gtest_filter='*HansEncode950*:*HansDecode950*' | **40 通过 / 0 失败** | | NPU 二进制构建 | bash build.sh --opkernel --soc=ascend950 --ops=hans_encode,hans_decode | **Build binary success** | ## 文档更新 - 更新 math/hans_encode/README.md、math/hans_decode/README.md:产品支持情况表新增 Ascend 950PR/950DT 支持; - 新增 math/hans_encode/tests/README.md:950 验证说明(host tiling UT、encode/decode 内核 UT 覆盖范围与运行命令)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5639 | 1 个月前 | |
hans_950_encode_decode_impl Co-authored-by: l0061484<lanshangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !5639 merge hans-950-simt-upstream-review into master hans_950_encode_decode_impl Created-by: n_nddddd Commit-by: l0061484 Merged-by: cann-robot Description: ## 描述 本 PR 为 Ascend 950(Ascend950PR/DT)完整引入 HANS 无损压缩算法支持,新增 HansEncode/HansDecode 两个算子的 950 SIMT 实现及配套 host 侧适配,主要内容如下: ### 1. 新增 950 SIMT 内核实现 **HansEncode**([op_kernel/arch35/hans_encode_simt.h](final_version/ops-math-hans-950-simt-upstream-review-v1/ops-math-hans-950-simt-upstream-review/math/hans_encode/op_kernel/arch35/hans_encode_simt.h)):基于 950 SIMT 编程模型全新实现。 **HansDecode**(op_kernel/arch35/hans_decode_simt.h):对应的 950 SIMT 解码实现,基于 PDF 与 mantissa 重组恢复张量。 ### 2. APT 入口与 host 侧适配 - 新增 hans_encode_apt.cpp / hans_decode_apt.cpp 950 专用 apt 入口,910 入口保持不变; ### 3. 测试覆盖 - **Encode 内核 UT**:39 个用例(FP32/BF16、partial tile、statistic/reshuff 组合、129-tile、全符号、特殊值等); - **Decode 内核 UT**:44 个用例; - **Host tiling UT**:40 个用例,覆盖 FP16/BF16/FP32、双属性、序列化容量、workspace 变化、56 核上限、末核分配、最小编码长度、非法 PDF/mantissa、容量不足、910 回归分支等; ## 关联的Issue DST:https://dts-szv.clouddragon.huawei.com/DTSPortal/ticket/DTS2026062921751 ## 测试 | 测试项 | 命令 | 结果 | |--------|------|------| | Encode 内核 UT(2 次复跑,结果稳定) | bash build.sh -u --opkernel --soc=ascend950 --ops=hans_encode | **39通过 / 0 失败** | | Decode 内核 UT | bash build.sh -u --opkernel --soc=ascend950 --ops=hans_decode | **44 通过 / 0 失败** | | Host tiling UT(含 910 回归分支) | bash build.sh -u --ophost --soc=ascend950 --ops=hans_encode,hans_decode --gtest_filter='*HansEncode950*:*HansDecode950*' | **40 通过 / 0 失败** | | NPU 二进制构建 | bash build.sh --opkernel --soc=ascend950 --ops=hans_encode,hans_decode | **Build binary success** | ## 文档更新 - 更新 math/hans_encode/README.md、math/hans_decode/README.md:产品支持情况表新增 Ascend 950PR/950DT 支持; - 新增 math/hans_encode/tests/README.md:950 验证说明(host tiling UT、encode/decode 内核 UT 覆盖范围与运行命令)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5639 | 1 个月前 | |
feat: hans_encode/hans_decode独立编译及950编译 Co-authored-by: NingGuangyou<ningguangyou@h-partners.com> # message auto-generated for no-merge-commit merge: !3768 merge master into master feat: hans_encode/hans_decode独立编译及950编译 Created-by: NingGuangyou Commit-by: NingGuangyou Merged-by: cann-robot Description: ## 描述 hans_encode/hans_decode独立编译及950编译 ## 关联的Issue https://gitcode.com/cann/ops-math/pull/3763 See merge request: cann/ops-math!3768 | 3 个月前 | |
docs: fix HansEncode Ascend 950 support status Co-authored-by: n_nddddd<lanshangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !6250 merge hans-encode-950-doc-support into master docs: fix HansEncode Ascend 950 support status Created-by: n_nddddd Commit-by: n_nddddd Merged-by: cann-robot Description: ## 描述 hans encode 质量加固(资料同步):README 产品支持表补充 950支持 hans encode。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3503 ## 测试 只修改文档,无代码更新 ## 文档更新 更新了以下两个文档: math/hans_encode/README.md math/hans_encode/docs/aclnnHansEncode.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6250 | 7 天前 |
HansEncode
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
- 算子功能:对张量的指数位所在字节实现PDF统计,按PDF分布统计进行无损压缩,压缩后的结果存储在device的内存上或offload到Host侧。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| input_tensor | 输入 | 表示输入的待压缩张量,数据元素大小仅支持64的倍数且大于等于32768。 | FLOAT16、BFLOAT16、FLOAT32 | ND |
| 输出 | 表示inputTensor的指数位所在字节的概率密度分布,shape要求为(1, 256)。其中每一个元素的值表示其对应的索引,在input中出现的次数。 | INT32 | ND | |
| mantissa | 输出 | 表示输出的尾数部分。 | FLOAT16、BFLOAT16、FLOAT32 | ND |
| fixed | 输出 | 表示input指数位压缩的定长部分。 | FLOAT16、BFLOAT16、FLOAT32 | ND |
| var | 输出 | 表示input指数位压缩的变长部分。 | FLOAT16、BFLOAT16、FLOAT32 | ND |
| statistic | 可选属性 |
|
Bool | - |
| reshuffle | 可选属性 |
|
Bool | - |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_hans_encode | 通过aclnnHansEncode接口方式调用HansEncode算子。 |