| Files | Last commit | Last update |
|---|---|---|
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 | 22 days ago | |
refactor: 迁移 TF 插件注册至新框架 API(part 3) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9758 merge tf-plugin-part3 into master refactor: 迁移 TF 插件注册至新框架 API(part 3) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 TF 框架侧自定义算子注册(REGISTER_CUSTOM_OP)从旧工具链迁移至 ops-nn 新仓(TF 插件迁移 part 3),共新增/调整 22 个 *_tf_plugin.cpp 注册文件。 ### 改动原因 1. 旧注册 API(ParseParamsFn/AutoMappingFn)与标量 OriginOpType({...}) 写法在新工具链已不适用,统一迁移为 ParseParamsByOperatorFn(AutoMappingByOpFn) 与 OriginOpType(std::vector<ge::AscendString>{...}) 形式; 2. 依赖 TF protobuf NodeDef(node_def.pb.h)的旧解析逻辑在新工具链中已不存在,相关解析改为基于 ge::Operator 的子图分解(ParseOpToGraphFn/FusionParseParamsFn)实现; 3. 承接本仓已完成的 TF 插件迁移 part 1/2,补齐剩余算子的 TF 注册。 ### 改动方法 按模块汇总: - common:新增 AscendWeightQuant(TF 字符串 dst_type 到 ge DataType 的转换解析)、GatherPoint(分解为 GatherV2+Const 子图)、GatherPointGrad(分解为 ScatterUpdate 子图)注册; - index:gather_v2 新增 Gather/ResourceGather 到自定义 Gather 的注册;scatter_add/scatter_sub 新增 TensorScatterAdd/TensorScatterSub 注册;新增 BroadcastGradientArgs、SparseSegmentMean、SparseSegmentMeanGrad、SparseSlice、SparseToDense 注册; - norm:BNInfer/BNTrainingReduceGrad/BNTrainingUpdateGrad/LayerNorm/LayerNormGrad 由 ParseParamsFn 迁移到 ParseParamsByOperatorFn;LayerNorm/LayerNormGrad 增补 FusedLayerNorm/FusedLayerNormGrad 双 origin 映射;bn_training_update_v2 新增 BNTrainingUpdate 注册; - optim:ApplyAdagrad 迁移新 API(保留 ApplyAdagrad/ResourceApplyAdagrad 双 origin); - matmul:新增 Einsum 注册; - rnn:新增 BlockLSTM(分解为 DynamicRNN 子图,含 seq_length 的 Cast 与输出重排)、DynamicRNN 融合解析(FusionParseParamsFn)与 DynamicRnn 注册、DynamicRNNV2/DynamicRnnV2 系列注册(含 is_misplaced 属性处理)。 ## 关联的Issue 关联 Issue #5505:https://gitcode.com/cann/ops-nn/issues/5505 ## 测试 本 PR 仅涉及注册/图解析代码迁移,无测试文件变更;依赖仓内 CI(编译、静态检查、UT/ST 工作流)验证。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:TF 插件注册迁移(part 3) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9758 | 2 months ago | |
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 | 4 months ago | |
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 | 22 days ago | |
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 | 22 days ago | |
新增算子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 | 3 months ago | |
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 | 22 days ago |