| 删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 10 天前 |
| fix(dynamic_quant_v2): 修复示例groupIndex数据构造并补齐group资源释放 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !9883 merge dynamic_quant_v2_fix into master fix(dynamic_quant_v2): 修复示例groupIndex数据构造并补齐group资源释放 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 aclnnDynamicQuantV2 示例代码中的两处问题: 1. **groupIndex 数据构造错误**:groupHostData = {2, rowNum} 仅 2 个元素,与 shape {4} 不符,H2D 拷贝时越界读;且不符合 group_index「各专家累计行数、末值等于 x 总行数」的约束,改为 {1, 2, 3, rowNum} 并补充注释说明。 2. **group 资源泄漏**:示例结束时未释放 group tensor 的 aclTensor 与 device 内存,补齐 aclDestroyTensor(group) 与 aclrtFree(groupDeviceAddr)。 同时将 docs/aclnnDynamicQuantV2.md 内嵌调用示例与修复并格式化后的 example 保持一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#5571](https://gitcode.com/cann/ops-nn/issues/5571) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - pre-commit clang-format 检查通过(v18.1.8,与仓库 hook 版本一致) - OAT 合规扫描通过(2 个变更文件) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了 quant/dynamic_quant_v2/docs/aclnnDynamicQuantV2.md 中"调用示例"代码块,与 example 代码同步。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9883 | 1 个月前 |
| docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 1 个月前 |
| DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 8 天前 |
| DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 8 天前 |
| aclnnDynamicQuantV2参数校验修改 Co-authored-by: liujie12345678<liujie81@huawei.com> # message auto-generated for no-merge-commit merge: !11389 merge master into master aclnnDynamicQuantV2参数校验修改 Created-by: liujie12345678 Commit-by: liujie12345678 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 issue [#6271](https://gitcode.com/CANN/ops-nn/issues/6271):MoE 场景(groupIndexOptional 提供)下专家数为 0 时,aclnnDynamicQuantV2 第一段接口未拦截非法 shape,错误被推迟到 tiling/构图阶段并以 561103(ACLNN_ERR_INNER_NULLPTR)报出,与文档约定的 161002(ACLNN_ERR_PARAM_INVALID)不符。 具体改动: 1. 第一段接口(quant/dynamic_quant/op_host/op_api/aclnn_dynamic_quant.cpp):group_index 提供时补齐对 smooth_scales 的关联校验——smooth_scales 必须非空、必须为 2 维(专家数, x 最后一维)、第一维与 group_index 长度一致、专家数不超过 1024、x 非空时专家数不小于 1,均返回 ACLNN_ERR_PARAM_INVALID。 2. Tiling(quant/dynamic_quant/op_host/dynamic_quant_tiling.cpp):group_index 提供且专家数为 0 时直接校验失败;MoE 分支判断由 groupNum >= 1 调整为按 group_index 是否提供,避免专家数为 0 的 MoE 输入落入非 MoE 分支报出误导性错误信息。 说明:该校验为 aclnnDynamicQuant / V2 / V3 / V4 共用,本改动对四个入口同时生效。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6271](https://gitcode.com/CANN/ops-nn/issues/6271) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. 新增 L2 UT(quant/dynamic_quant_v2/tests/ut/op_host/test_aclnn_dynamic_quant_v2.cpp): - x 非空 + smoothScales(0,8) + groupIndex(0,):第一段返回 ACLNN_ERR_PARAM_INVALID(issue 复现用例); - x 为空 Tensor + 专家数为 0:走空 Tensor 提前返回,返回 ACLNN_SUCCESS; - group_index 提供时 smooth_scales 缺省 / 为 1 维 / 专家数与 group_index 长度不一致:均返回 ACLNN_ERR_PARAM_INVALID; - 存量 3 个 MoE 用例的 smooth_scales 形状由 1 维修正为 (8, 32)。 2. 新增 tiling UT(quant/dynamic_quant/tests/ut/op_host/test_dynamic_quant_tiling.cpp):group_index(0,) 提供时 tiling 返回 GRAPH_FAILED。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 本 PR 未包含文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11389 | 21 天前 |
| Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !366 merge license6 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!366 | 10 个月前 |
| aclnnDynamicQuantV2参数校验修改 Co-authored-by: liujie12345678<liujie81@huawei.com> # message auto-generated for no-merge-commit merge: !11389 merge master into master aclnnDynamicQuantV2参数校验修改 Created-by: liujie12345678 Commit-by: liujie12345678 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 issue [#6271](https://gitcode.com/CANN/ops-nn/issues/6271):MoE 场景(groupIndexOptional 提供)下专家数为 0 时,aclnnDynamicQuantV2 第一段接口未拦截非法 shape,错误被推迟到 tiling/构图阶段并以 561103(ACLNN_ERR_INNER_NULLPTR)报出,与文档约定的 161002(ACLNN_ERR_PARAM_INVALID)不符。 具体改动: 1. 第一段接口(quant/dynamic_quant/op_host/op_api/aclnn_dynamic_quant.cpp):group_index 提供时补齐对 smooth_scales 的关联校验——smooth_scales 必须非空、必须为 2 维(专家数, x 最后一维)、第一维与 group_index 长度一致、专家数不超过 1024、x 非空时专家数不小于 1,均返回 ACLNN_ERR_PARAM_INVALID。 2. Tiling(quant/dynamic_quant/op_host/dynamic_quant_tiling.cpp):group_index 提供且专家数为 0 时直接校验失败;MoE 分支判断由 groupNum >= 1 调整为按 group_index 是否提供,避免专家数为 0 的 MoE 输入落入非 MoE 分支报出误导性错误信息。 说明:该校验为 aclnnDynamicQuant / V2 / V3 / V4 共用,本改动对四个入口同时生效。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6271](https://gitcode.com/CANN/ops-nn/issues/6271) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. 新增 L2 UT(quant/dynamic_quant_v2/tests/ut/op_host/test_aclnn_dynamic_quant_v2.cpp): - x 非空 + smoothScales(0,8) + groupIndex(0,):第一段返回 ACLNN_ERR_PARAM_INVALID(issue 复现用例); - x 为空 Tensor + 专家数为 0:走空 Tensor 提前返回,返回 ACLNN_SUCCESS; - group_index 提供时 smooth_scales 缺省 / 为 1 维 / 专家数与 group_index 长度不一致:均返回 ACLNN_ERR_PARAM_INVALID; - 存量 3 个 MoE 用例的 smooth_scales 形状由 1 维修正为 (8, 32)。 2. 新增 tiling UT(quant/dynamic_quant/tests/ut/op_host/test_dynamic_quant_tiling.cpp):group_index(0,) 提供时 tiling 返回 GRAPH_FAILED。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 本 PR 未包含文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11389 | 21 天前 |