| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
aclnn文件加上芯片标签 Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !7981 merge master into master aclnn文件加上芯片标签 Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 aclnn文件加上芯片标签 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4354 ## 测试 NA ## 文档更新 quant目录下的所有aclnn.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7981 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 1 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
Arch编码更新 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !1116 merge ut_test into master Arch编码更新 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 Arch编码更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1116 | 7 个月前 | |
Modify the aclnn and readme issue Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !3314 merge master into master Modify the aclnn and readme issue Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 Modify the aclnn and readme issue ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 已对齐 ## 文档更新 Modify the aclnn and readme issue ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3314 | 5 个月前 |
Quantize
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:对输入张量x进行量化处理。
-
计算公式:
out=round((x/scales)+zeroPoints)out=round((x/scales)+zeroPoints) out=round((x/scales)+zeroPoints)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 公式中的x | FLOAT、FLOAT16、BFLOAT16 | ND |
| scales | 输入 | 公式中的scales | FLOAT、BFLOAT16 | ND |
| zero_points | 输入 | 公式中的zeroPoints | FLOAT、INT32、INT8、UINT8、BFLOAT16 | - |
| y | 输出 | 公式中的输出张量out | INT8、UINT8、INT32、HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN | ND |
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_quantize.cpp | 通过aclnnQuantize.md接口方式调用算子。 |