| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
修改aclnnClippedSwiglu的example属性值 Co-authored-by: fengqiuyue<fengqiuyue@huawei.com> # message auto-generated for no-merge-commit merge: !10185 merge cs_md into master 修改aclnnClippedSwiglu的example属性值 Created-by: fengqiuyue Commit-by: fengqiuyue Merged-by: cann-robot Description: ## 描述 修改aclnnClippedSwiglu的example属性值 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10185 | 11 天前 | |
fix(clipped_swiglu_grad): tiling 补充 SetScheduleMode 设置 batch mode,修复 SyncAll 死锁风险 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10439 merge clipped_swiglu_grad_push into master fix(clipped_swiglu_grad): tiling 补充 SetScheduleMode 设置 batch mode,修复 SyncAll 死锁风险 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix(clipped_swiglu_grad): tiling 补充 SetScheduleMode 设置 batch mode,修复 SyncAll 死锁风险 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5800 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10439 | 4 天前 | |
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 个月前 | |
fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9032 merge fix-proto-comment-typos into master fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 21 个算子 proto 头文件中 Doxygen 注释的拼写、语法、描述错误与公式括号不匹配问题。所有改动仅涉及注释文本,不改动任何 REG_OP 定义。 ### 改动原因 proto 头文件的 Doxygen 注释存在拼写错误、语法错误(冠词/单复数/主谓一致)、描述误导(输入描述与实际语义不符)以及 rstd 公式多余的右括号等问题,会误导接口使用者。 ### 改动方法 仅修改注释文本,不改动 REG_OP/INPUT/OUTPUT/ATTR/DATATYPE 等代码定义。同时按 pre-commit clang-format 要求对部分文件做格式化。 ### 涉及修复 **拼写错误:** - normlization→normalization、while→will(AddLayerNormQuant) - smooth_scales1/2→smooth_scale1/2(AddRmsNormDynamicQuant,4 处) - listBool→ListBool(AddRmsNormDynamicQuant/V2) - secend→second、opertaion→operation(AddRmsNormQuant) - reseluts→results(BatchNormGrad) - support→supported(BatchNormV3) - dype→type(GroupNormV2,4 处) - Layernorm→LayerNorm、中文或→or、全角,→ASCII(LayerNorm) - \file 文件名错误 nn_norm_ops.h→layer_norm_grad_proto.h(LayerNormGrad) **语法错误(~20 处):** - A optional→An optional(AddLayerNorm/InplaceAddRmsNorm/InstanceNorm) - A ND tensor→An ND tensor(SoftmaxV2/LogSoftmaxGrad/ConfusionSoftmaxGrad) - An required→A required(GroupNormV2) - support→supports(SoftmaxV2/BroadcastGradientArgs/AddRmsNormDynamicMxQuant) - 缺复数 s:input→inputs、output→outputs、group→groups(GroupNormGrad/V2) **描述错误:** - GroupNormGrad:x 输入描述从 the offset 改为 input tensor **公式括号(7 处):** - rstd 公式多余的右括号 ))→)(AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicMxQuant/AddRmsNormDynamicQuant/AddRmsNormQuant/AddRmsNormQuantV2/InplaceAddRmsNorm) ## 关联的Issue - #4989 ## 测试 - 仅注释修改,无代码变更,不影响编译与功能。 - pre-commit 全部 hook 通过(trailing-whitespace/end-of-file-fixer/clang-format/codespell/check-*/detect-private-key);OAT 合规检查 0 issues。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9032 | 3 天前 | |
fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10783 merge elu-onnx-fix into master fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量字段(float 的 "f"、int 的 "i")。部分插件用 attr.contains("f"/"i") 判断属性是否存在,或直接访问 attr["f"/"i"],导致属性传 0 时被错误回退到算子默认值,或直接抛异常使转换失败。 修复方式:先按 name 判断属性是否存在,值字段缺失时按该类型的 protobuf 默认值 0 处理,而不是回退默认值或抛异常。 涉及算子: - Elu(alpha) - LeakyRelu(alpha) - HardMax(axis) - AdaCast(pixel) - GroupNormRelu(eps / num_groups) - BoundingBoxDecode(wh_ratio_clip) - AscendAntiQuantV2(dst_dtype) ## 关联的Issue Issue #6004 ## 测试 - 编译:bash build.sh --onnxplugin -j16 通过(7 个修复源文件全部编译通过)。 - 单测:bash build.sh -u --ophost --ops=elu,leaky_relu,hardmax,ada_cast,14 个用例全部 PASSED(含各算子新增的「零值字段缺失」用例)。 - 端到端 NPU(Ascend 910B3 / CANN 9.0.0):ELU alpha=0 负半轴输出 [0,0,0,0],alpha=3.0 回归无影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10783 | 1 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
fix example code and md Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10363 merge master into master fix example code and md Created-by: guijianwei Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 激活类算子issue修复,问题内容详见issue | 编号 | 文档 | 修复内容 | 涉及文件(md + cpp 同步) | 状态 | |---|---|---|---|---| | 367 | aclnnDequantSwigluQuantV2.md | weightScale 创建后补 CHECK_RET(ret == ACL_SUCCESS, return ret);,与其他 tensor 创建一致 | quant/dequant_swiglu_quant/docs/aclnnDequantSwigluQuantV2.md、examples/test_aclnn_dequant_swiglu_quant_v2.cpp | 已修复 | | 368 | aclnnDequantSwigluQuantV2.md | host 数据元素个数补齐至与 shape 一致:weightScaleData/biasData 补至 64、activationScaleData 补至 2、scaleHostData 补至 32、outHostData 补至 64,消除 aclrtMemcpy 越界读 | 同上 | 已修复 | | 369 | aclnnDequantSwigluQuantV2.md | 按参数表默认值改正:gluAlpha = 1.702; gluBias = 1.0;(原示例两值互换) | 同上 | 已修复 | | 427 | aclnnSwiGluQuantV2.md | x 的 host 数据为 float,tensor 类型由 ACL_BF16 改为 ACL_FLOAT(参数表支持 FLOAT16/BFLOAT16/FLOAT),消除 float 字节流按 BF16 重解释导致的错误数值 | quant/swi_glu_quant/docs/aclnnSwiGluQuantV2.md、examples/test_aclnn_swi_glu_quant_v2.cpp | 已修复 | | 429 | aclnnSwiGluQuantV2.md | groupIndexHostData 由 std::vector<float> 改为 std::vector<int32_t>,与 ACL_INT32 匹配(float 1.0 字节重解释为 int32 会得到 1065353216) | 同上 | 已修复 | | 430 | aclnnSwiGluQuantV2.md | outDeviceAddr,size 逗号后补空格 | 同上(md) | 已修复 | | 476 | aclnnSwiGluQuant.md | 注释「// 创建scale aclTensor」改为「// 创建smoothScales aclTensor」,与实际创建的变量一致 | quant/swi_glu_quant/docs/aclnnSwiGluQuant.md(v2 文档及两份 cpp 同步修正同类注释) | 已修复(工作区已有,本次复核) | | 513 | aclnnDequantSwigluQuant.md | xHostData 由 float 改为 std::vector<aclFloat16>,与 ACL_FLOAT16 匹配 | quant/dequant_swiglu_quant/docs/aclnnDequantSwigluQuant.md、examples/test_aclnn_dequant_swiglu_quant.cpp | 已修复(工作区已有,本次复核) | | 2087 | aclnnErfinv&aclnnInplaceErfinv.md | 输入数据替换为 erfinv 定义域 [-1,1] 内的典型值(-0.95…0.99),消除大量 NaN/Inf 误导 | activation/erfinv/docs/…md、examples/test_aclnn_erfinv.cpp、test_aclnn_inplace_erfinv.cpp | 已修复(工作区已有,本次复核) | | 2430 | aclnnSquaredRelu.md | LOG_PRINT("mean input…") 改为 "input…"(另将 "mean result…" 同步改为 "output…") | activation/squared_relu/docs/aclnnSquaredRelu.md、examples/test_aclnn_squared_relu.cpp | 已修复(工作区已有,本次复核) | | 2431 | aclnnSquaredRelu.md | workspaceSize 初始化由硬编码 16*1024*1024 改为 0,由第一段接口返回实际值 | 同上 | 已修复(工作区已有,本次复核) | | 2443 | aclnnHardswishBackwardV2.md | return ret;); 去掉多余分号,改为 return ret); | activation/hard_swish_grad_v2/docs/aclnnHardswishBackwardV2.md、examples/test_aclnn_hard_swish_backward_v2.cpp | 已修复(工作区已有,本次复核) | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#5821](https://gitcode.com/cann/ops-nn/issues/5821) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> | # | op_name | 验证命令 | 结果 | |---|---|---|---| | 1 | dequant_swiglu_quant | bash build.sh --run_example dequant_swiglu_quant eager --example_name=dequant_swiglu_quant | **success** | | 2 | dequant_swiglu_quant | bash build.sh --run_example dequant_swiglu_quant eager --example_name=dequant_swiglu_quant_v2 | **success** | | 3 | swi_glu_quant | bash build.sh --run_example swi_glu_quant eager --example_name=swi_glu_quant | **success** | | 4 | swi_glu_quant | bash build.sh --run_example swi_glu_quant eager --example_name=swi_glu_quant_v2 | **success** | | 5 | erfinv | bash build.sh --run_example erfinv eager --example_name=erfinv | **success** | | 6 | erfinv | bash build.sh --run_example erfinv eager --example_name=inplace_erfinv | **success** | | 7 | squared_relu | bash build.sh --run_example squared_relu eager --example_name=squared_relu | **success** | | 8 | hard_swish_grad_v2 | bash build.sh --run_example hard_swish_grad_v2 eager --example_name=hard_swish_backward_v2 | **success** | | 9 | hard_shrink | bash build.sh --run_example hard_shrink eager --example_name=hard_shrink | **success** | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10363 | 7 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
算子 FatreluMul 支持 ascend950 Co-authored-by: zhoulong50_hw<zhoulong50@huawei.com> # message auto-generated for no-merge-commit merge: !10226 merge fatrelu_mul into master 算子 FatreluMul 支持 ascend950 Created-by: zhoulong50_hw Commit-by: zhoulong50_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 为算子 FatreluMul(fatrelu_mul)新增 Ascend 950(arch35 / DAV_3510)支持:新增 arch35 专属的 host 侧 tiling 与 kernel 侧实现,并在 fatrelu_mul_def.cpp 中注册 ascend950 AICore 配置。同时将算子的输入/输出名由 input/output 统一重命名为 x/y(涉及 OpDef 定义、多平台二进制配置 JSON 与 kernel 槽位绑定),并将原有 op_host 下的 tiling 文件迁入 arch22 子目录。该改动主要聚焦于新增 arch35 平台的完整 tiling 与 kernel 链路,不涉及既有平台行为变更。 主要改动 新增 arch35 host 侧 tiling 实现:新增 fatrelu_mul_tiling_arch35.cpp/.h,提供 TilingFuncFatreluMul 与 TilingPrepareForFatreluMul 及 FatreluMulCompileInfo,实现平台量获取(含 CompileInfo 可信度校验与回退查询)、dtype/format/维度/shape 异常值校验、行模型展开(batch_size/half_dim)、空 Tensor 短路、UB 切分(tile_elems)、多核切分(need_core_num/rows_former/rows_tail_core)、判界选 key 与 SetBlockDim/SetTilingKey 下发。 新增 arch35 kernel 侧实现:新增 FatreluMul_kernel.h(共享 fp32 域 VF 计算链 FatreluMulVF 与模板类 FatreluMulKernel<T, kPath>,经 if constexpr 支持 small-tail 行打包与 big-tail 行分段双路径)、FatreluMul_tiling_data.h(全局非模板化 FatreluMulTilingData 结构体)与 FatreluMul_struct.h(ASCENDC_TPL_ARGS_DECL/ASCENDC_TPL_SEL 声明 3 dtype × 2 path 共 6 个实例),并新增 kernel 入口 fatrelu_mul_apt.cpp(含核守卫与 TilingData 反序列化)。 注册 ascend950 平台配置并重命名 IO 接口:fatrelu_mul_def.cpp 新增 ascend950 的 OpAICoreConfig(动态编译/动态 rank/shape 支持、ExtendCfgInfo("opFile.value", "fatrelu_mul_apt") 等),并将算子输入/输出名从 input/output 改为 x/y,kirin 系列配置同步重命名。 多平台二进制配置同步重命名 IO 名:ascend910_93、ascend910b、kirin9030、kirinx90 四份 fatrelu_mul_binary.json 中的输入/输出 name 字段由 input/output 统一改为 x/y。 tiling 文件目录调整:op_host/fatrelu_mul_tiling.cpp/.h 迁入 op_host/arch22/ 子目录(arch22 平台 tiling 实现),对应 UT 测试 test_fatrelu_mul_tiling.cpp 的头文件包含路径同步更新。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5777 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟,泛化用例 230 条 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了 aclnnFatreluMul.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10226 | 6 天前 | |
fix: 完善NN算子proto与infer注册 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !10281 merge master into master fix: 完善NN算子proto与infer注册 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次修改完成 NN 相关算子的 Legacy 下线整改: • 为FusedBiasLeakyRelu、BNTrainingReduce、INTrainingReduceGrad、LpNormUpdate、InplaceApplyAdaMax、InplaceApplyFtrl、InplaceApplyFtrlV2、InplaceApplyProximalAdagrad 等算子补充原型去重宏,避免新旧原型重复注册。 • 将 Softshrink 算子名称统一为 SoftShrink,同步调整原型、OpDef、InferShape、InferDataType、Tiling、Kernel、TilingData 及测试中的注册名称。 • 新增 SoftShrink 开源原型,统一输入输出名称为 input_x、output_y。 • 为 SigmoidFocalLoss 新增开源 InferShape 和 InferDataType 实现。 • 将 LpNormUpdate Level0 op_api 从 canndev 迁移至开源仓,保留 AICore/AICPU 分发逻辑。 • 按仓库 clang-format 规范完成相关文件格式整改。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5946 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10281 | 3 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix(ge_glu_grad_v2): 修复aclnnGeGluBackward与aclnnGeGluV3Backward文档与示例代码数据类型不匹配 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !10635 merge fix/geglu-doc-dtype-mismatch into master fix(ge_glu_grad_v2): 修复aclnnGeGluBackward与aclnnGeGluV3Backward文档与示例代码数据类型不匹配 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 修复 ge_glu_grad_v2 两份 aclnn 接口文档(aclnnGeGluBackward.md、aclnnGeGluV3Backward.md)及其对应独立示例文件中的数据类型不匹配问题。 ### 改动原因 示例代码中 CreateAclTensor 调用传入 aclDataType::ACL_FLOAT16,但宿主数据声明为 std::vector<float>(4 字节/元素),而 ACL_FLOAT16 张量按 2 字节/元素解析。辅助函数按 sizeof(T)(即 4 字节)分配 device 内存并拷贝宿主数据,导致内存大小与 CANN 解析字节数不一致:分配侧大于解析侧不会越界,但 float 位型被按 fp16 位对误读(如 -2.0f 位型被拆为 -1.75 与 0.0),输入值失真,示例运行结果无意义。 ### 改动方法 - 宿主数据改用 std::vector<aclFloat16>,并以 aclFloatToFloat16() 转换初始化,使 sizeof(T) = 2 与 ACL_FLOAT16 描述符对齐 - 涉及两个文档及两个 examples/*.cpp 示例文件中各 4 处声明(gradOutput/self/gelu/gradInput) - 与两文档回拷侧既有的 aclFloat16 + aclFloat16ToFloat 写法保持一致,也与仓库其他文档(如 aclnnFlatQuant 系列)的既定模式一致 - 纯示例代码修正(文档内嵌代码块 + 独立示例文件),无算子代码变更 ## 关联的Issue Closes #5942 ## 测试 - 纯示例代码修正(文档内嵌代码块 + 独立示例文件),不涉及算子代码与构建 - 机制核验:CreateAclTensor 按 sizeof(T) 分配/拷贝(第 314 行),aclCreateTensor 描述符决定 CANN 解析宽度——修正后 sizeof(T)=2 与 ACL_FLOAT16 对齐;分配侧(4B)大于解析侧(2B)故原问题表现为位型误读而非越界 - 位级校验:-2.0f = 0xC0000000 小端拆分后与修正前语义不符、修正后按 aclFloat16 语义正确 - 一致性核验:修正后与同一示例回拷侧既有的 aclFloat16/aclFloat16ToFloat 写法及仓库其他文档(aclnnFlatQuant 系列)模式一致 - pre-commit run --files(4 个文件)全部通过:clang-format、codespell、OAT、尾随空白、私钥检测等 ## 文档更新 - activation/ge_glu_grad_v2/docs/aclnnGeGluBackward.md:示例代码 dtype 失配修复 - activation/ge_glu_grad_v2/docs/aclnnGeGluV3Backward.md:同上 - activation/ge_glu_grad_v2/examples/test_aclnn_ge_glu_backward.cpp:同上 - activation/ge_glu_grad_v2/examples/test_aclnn_ge_glu_v3_backward.cpp:同上 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10635 | 4 天前 | |
refactor(ge_glu_v2, ge_glu_grad_v2): 合并erf/tanh同构kernel实现降低代码重复 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !10329 merge codex/geglu-v2-codecheck-local-names into master refactor(ge_glu_v2, ge_glu_grad_v2): 合并erf/tanh同构kernel实现降低代码重复 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 合并 ge_glu_v2 / ge_glu_grad_v2 两个算子中 erf 与 tanh 两种 approximate 模式的同构 kernel 实现,消除按近似模式整份复制的代码重复(29 个文件:14 删除 + 12 移动合并 + 2 入口修改 + 1 新增,+883/-3291)。纯重构,无功能变更。 ### 改动一:ge_glu_grad_v2(非 arch35) - ge_glu_grad_v2_erf_base.h + ge_glu_grad_v2_tanh_base.h 合并为 ge_glu_grad_v2_base.h(template <typename T, bool IS_ERF>):搬运/转置/队列/三个 Process 主循环收纳为一份;erf/tanh 数学体在 ComputeGeluGrad 的 if constexpr 分支中逐字保留,erf 的 ComputeCDF/ComputePDF 原样保留 - dtype 子类 6 → 3(fp16/fp32/bfp16 各一),基类成员访问按仓库惯例使用 this->/this->template 限定 - 入口 18 个 tiling key 分支仅改类型名;删除 tanh 侧全仓无引用的死常量 DUP_COUNT/DIV_MASK ### 改动二:ge_glu_v2(非 arch35) - op_kernel/tanh/ + op_kernel/erf/ 下 18 个变体合并为 op_kernel/ 根目录 9 个文件(template <typename T, bool IS_ERF>,文件名与类名一致) - erf 需要的额外 TBuf(fp16/bf16 各 +2、fp32 各 +1)声明与 InitBuffer 用 if constexpr 保留,初始化顺序与 erf 原文件一致;仅 fp32/vreduce 的 bufferSize 按 erf/tanh 分别为 4912/6144(UB 预算与 tiling 系数对应) - bf16/vreduce 共享段局部变量 tmp_fp32 统一为 tmp_fp32_1(与 erf 侧命名对齐);三个文件(bf16/align、bf16/align_last_axis_big、fp32/vreduce)中两分支共用的输出 tensor 声明提升到 if constexpr 之前(声明顺序调整,无语义影响) ### 不改动 arch35 整棵树、310P 实现、dtype 轴(fp16/fp32/bf16 各自 cast 路径与队列深度保留)、case 轴、ge_glu_v2_base.h。 ## 关联的Issue Closes #5868 ## 测试 - 等价性验证(脚本化):所有函数实例化按 if constexpr (IS_ERF) 展开后与原 erf/tanh 实现逐行压平比对——tanh 路径全部精确相等;erf 路径精确相等、纯局部变量改名(idx 编号漂移)或声明块内顺序无关的提升;成员声明集合与 TBuf 布局逐实例化核对一致 - **A2(Ascend 910B)真机环境编译验证通过**:CANN 9.2.0,bash build.sh --opkernel --soc=ascend910b --ops=ge_glu_v2,ge_glu_grad_v2 构建成功(修复了 CCE 对依赖基类成员 using 声明支持不完整的问题,改用仓库既有的 this->/this->template 限定风格,以及三处分支内声明的作用域问题) - pre-commit run --files 全部通过(clang-format、OAT 开源合规、尾随空白、私钥检测等) - 已触发 /compile 验证多 arch 编译矩阵 - 说明:本仓内无这两个算子的数值比对用例;erf/tanh 数值路径的等价性依据为上述逐行出处证明(每个函数体可溯源至原文件逐字内容);__aicore__ inline 函数体逐字节保留,性能不变由构造保证 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(无功能变更) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10329 | 6 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
nn仓算子350适配 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10332 merge master into master nn仓算子350适配 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 nn仓算子350适配 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5826 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10332 | 6 天前 | |
fix(examples): 修复aclnn示例代码及接口文档问题 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !10300 merge fix/examples-codecheck into master fix(examples): 修复aclnn示例代码及接口文档问题 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 修复 6 个算子示例代码与接口文档中的 codecheck 问题,完整问题清单见关联 Issue。 主要修复: - **宿主数据类型与 Tensor dataType 匹配**:DequantBias(inputHostData int16_t→int32_t、resultData int8_t→int16_t、weight/activation/bias int32_t→float、outputDtype true→1)、GeluBackward(gradOutput int→float 且 ACL_INT32→ACL_FLOAT)、GeluBackwardV2(gradOutput/gradInput int→float,0x00000001 位模式错值) - **shape 与 tiling 实现一致**:AdvanceStep inputTokens {8,1}→{8};AdvanceStepV2 按 advance_step_tiling.cpp 的 CheckInputOutputShape 理顺全部输入(inputTokens/inputPositions/seqLens/slotMapping 为 1 维 [numSeqs*(1+specNum)],sampledTokenIds 为 {numSeqs, 1+specNum},specToken 为 {numSeqs, specNum}),并同步修正参数表与报错表中与实现不一致的 shape 描述(原参数表称 inputTokens 为 2 维、报错表称 sampledTokenIds 第二维为 1,均与 tiling 校验矛盾) - **AdvanceStepV2 input7/input8 使用独立 DeviceAddr**:原复用 input5/input6 的地址,指针被二次 malloc 覆盖导致首次分配泄漏 - **清理模板残留**:"mean result" 日志标签(GeluMul/SoftmaxCrossEntropyWithLogits/AdvanceStep/AdvanceStepV2/DequantBias)、头文件"//不确定头文件名字"注释、SoftplusBackward CHECK_RET 多余分号(含 experimental 副本) - **AdvanceStep(V2) blockTables 参数描述**修正为"物理块编号"(原文"block 的大小"与公式语义不符) - 按 clang-format 补齐 8 个示例文件末尾换行等格式;test_aclnn_advance_step_v2.cpp 版权头替换为仓库标准格式 examples 与 docs 双份同步修改。 ## 关联的Issue Closes #5816 ## 测试 - [x] 9 个示例在 A2(Atlas 910B3,CANN 9.2.0)上实际编译(g++ 12.3.1)并运行通过(exit=0),输出数值符合预期(如 DequantBias 输出 fp16 位模式 0x4600=6.0,与 1×2.0×2.0+2.0 一致) ## 文档更新 - docs/aclnnDequantBias.md、aclnnGeluBackward.md、aclnnGeluBackwardV2.md、aclnnGeluMul.md、aclnnSoftmaxCrossEntropyWithLogits.md、aclnnAdvanceStep.md、aclnnAdvanceStepV2.md、aclnnSoftplusBackward.md(含 experimental 副本)中的示例代码同步更新;aclnnAdvanceStepV2.md 参数表与报错表 shape 描述对齐实现 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10300 | 9 天前 | |
fix(examples): 修复aclnn示例代码及接口文档问题 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !10300 merge fix/examples-codecheck into master fix(examples): 修复aclnn示例代码及接口文档问题 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 修复 6 个算子示例代码与接口文档中的 codecheck 问题,完整问题清单见关联 Issue。 主要修复: - **宿主数据类型与 Tensor dataType 匹配**:DequantBias(inputHostData int16_t→int32_t、resultData int8_t→int16_t、weight/activation/bias int32_t→float、outputDtype true→1)、GeluBackward(gradOutput int→float 且 ACL_INT32→ACL_FLOAT)、GeluBackwardV2(gradOutput/gradInput int→float,0x00000001 位模式错值) - **shape 与 tiling 实现一致**:AdvanceStep inputTokens {8,1}→{8};AdvanceStepV2 按 advance_step_tiling.cpp 的 CheckInputOutputShape 理顺全部输入(inputTokens/inputPositions/seqLens/slotMapping 为 1 维 [numSeqs*(1+specNum)],sampledTokenIds 为 {numSeqs, 1+specNum},specToken 为 {numSeqs, specNum}),并同步修正参数表与报错表中与实现不一致的 shape 描述(原参数表称 inputTokens 为 2 维、报错表称 sampledTokenIds 第二维为 1,均与 tiling 校验矛盾) - **AdvanceStepV2 input7/input8 使用独立 DeviceAddr**:原复用 input5/input6 的地址,指针被二次 malloc 覆盖导致首次分配泄漏 - **清理模板残留**:"mean result" 日志标签(GeluMul/SoftmaxCrossEntropyWithLogits/AdvanceStep/AdvanceStepV2/DequantBias)、头文件"//不确定头文件名字"注释、SoftplusBackward CHECK_RET 多余分号(含 experimental 副本) - **AdvanceStep(V2) blockTables 参数描述**修正为"物理块编号"(原文"block 的大小"与公式语义不符) - 按 clang-format 补齐 8 个示例文件末尾换行等格式;test_aclnn_advance_step_v2.cpp 版权头替换为仓库标准格式 examples 与 docs 双份同步修改。 ## 关联的Issue Closes #5816 ## 测试 - [x] 9 个示例在 A2(Atlas 910B3,CANN 9.2.0)上实际编译(g++ 12.3.1)并运行通过(exit=0),输出数值符合预期(如 DequantBias 输出 fp16 位模式 0x4600=6.0,与 1×2.0×2.0+2.0 一致) ## 文档更新 - docs/aclnnDequantBias.md、aclnnGeluBackward.md、aclnnGeluBackwardV2.md、aclnnGeluMul.md、aclnnSoftmaxCrossEntropyWithLogits.md、aclnnAdvanceStep.md、aclnnAdvanceStepV2.md、aclnnSoftplusBackward.md(含 experimental 副本)中的示例代码同步更新;aclnnAdvanceStepV2.md 参数表与报错表 shape 描述对齐实现 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10300 | 9 天前 | |
fix errorCode for invalid self dtype (INT32) on 910B Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !10388 merge master into master fix errorCode for invalid self dtype (INT32) on 910B Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复aclnnGeluQuant 910B上 非法 dtype 返回 361001 而非 161002 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#5528](https://gitcode.com/cann/ops-nn/issues/5528) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> build: bash build.sh -u --noexec --ops=gelu_quant --soc=ascend910b -j8 (成功) run : nn_op_api_ut --gtest_filter="*gelu_quant*" 31/31 PASSED (910B3 实机) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10388 | 7 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
算子中存在使用内部的asc api接口,需要切换为对外的api接口 Co-authored-by: cann-robot<cann-robot@cann-robot> # message auto-generated for no-merge-commit merge: !9063 merge master into master 算子中存在使用内部的asc api接口,需要切换为对外的api接口 Created-by: hw-zhangpanpan Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 算子中存在使用内部的asc api接口,需要切换为对外的api接口 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5301 ## 测试 切换接口前后二进制文件一致 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9063 | 21 天前 | |
MicroAPI namespace to Reg for arch35 kernels Co-authored-by: gcw_DS4cmz2b<1312925094@qq.com> # message auto-generated for no-merge-commit merge: !9267 merge rename into master MicroAPI namespace to Reg for arch35 kernels Created-by: gcw_DS4cmz2b Commit-by: gcw_DS4cmz2b Merged-by: cann-robot Description: ## 描述 修改了index,activation,matmul,conv,foreach,optim,experimental,vfusion,hash这几个文件夹内的命名空间,将MicroAPI-->Reg ## 关联的Issue [多个文件夹内的算子命名空间使用的MicroAPI,应改为Reg](https://gitcode.com/cann/ops-nn/issues/5218) ## 测试 验证方法 严格按四步流程,逐算子验证: 1. Step 1:编译原始代码,保存 baseline binary .o 文件 MD5 2. Step 2:执行 MicroAPI → Reg 替换 3. Step 3:编译替换后代码,保存 after binary .o 文件 MD5 4. Step 4:对比 A_before.md5 与 B_after.md5 平台:ascend950,编译参数:--soc=ascend950 --ops=<op> -j16 验证替换前后 binary 产物 MD5 完全一致。 冒烟,代码审查均通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9267 | 25 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix: ApplyAdagrad,HardSwishGradV2,HardSigmoid,InplaceSub检视意见闭环 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !10724 merge master into master fix: ApplyAdagrad,HardSwishGradV2,HardSigmoid,InplaceSub检视意见闭环 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ApplyAdagrad,HardSwishGradV2,HardSigmoid,InplaceSub检视意见闭环 1.补充通路golden及测试用例 2.增加校验保护 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST 通路验证 PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10724 | 3 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix: ApplyAdagrad,HardSwishGradV2,HardSigmoid,InplaceSub检视意见闭环 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !10724 merge master into master fix: ApplyAdagrad,HardSwishGradV2,HardSigmoid,InplaceSub检视意见闭环 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ApplyAdagrad,HardSwishGradV2,HardSigmoid,InplaceSub检视意见闭环 1.补充通路golden及测试用例 2.增加校验保护 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST 通路验证 PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10724 | 3 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10783 merge elu-onnx-fix into master fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量字段(float 的 "f"、int 的 "i")。部分插件用 attr.contains("f"/"i") 判断属性是否存在,或直接访问 attr["f"/"i"],导致属性传 0 时被错误回退到算子默认值,或直接抛异常使转换失败。 修复方式:先按 name 判断属性是否存在,值字段缺失时按该类型的 protobuf 默认值 0 处理,而不是回退默认值或抛异常。 涉及算子: - Elu(alpha) - LeakyRelu(alpha) - HardMax(axis) - AdaCast(pixel) - GroupNormRelu(eps / num_groups) - BoundingBoxDecode(wh_ratio_clip) - AscendAntiQuantV2(dst_dtype) ## 关联的Issue Issue #6004 ## 测试 - 编译:bash build.sh --onnxplugin -j16 通过(7 个修复源文件全部编译通过)。 - 单测:bash build.sh -u --ophost --ops=elu,leaky_relu,hardmax,ada_cast,14 个用例全部 PASSED(含各算子新增的「零值字段缺失」用例)。 - 端到端 NPU(Ascend 910B3 / CANN 9.0.0):ELU alpha=0 负半轴输出 [0,0,0,0],alpha=3.0 回归无影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10783 | 1 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
refactor: 为公共op_api头文件增加NN后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10791 merge refactor/nn-suffix-common-headers into master refactor: 为公共op_api头文件增加NN后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-nn 的 common/inc/op_api 目录中仍有 level2_base.h 和 level2_base_caculation.h 两个通用名称。它们与其他算子仓的同名文件一起进入软件包时存在覆盖风险。 本 MR 是 ops-nn 分阶段迁移的第一阶段: - 新增完整实现头 level2_base_nn.h 和 level2_base_caculation_nn.h; - 保留原文件为轻量转发头,兼容尚未迁移的存量 ACLNN 源文件和开发中的 MR; - 新计算头只依赖新基础头,避免新命名链路回退到旧文件名; - op_api_def_nn.h 已具有 NN 标识,本次不修改; - classify_rule.yaml 中没有这两个头文件的现有条目,也没有证据表明该文件负责软件包头文件筛选,因此本次不修改; - 先迁移 Mish、UniqueConsecutive、Silu、LogSigmoid 四个简单 ACLNN 接口作为样例。 本阶段不删除兼容头,也不声明已完成最终软件包去重。当前仍有 32 处 level2_base.h 和 5 处 level2_base_caculation.h 的旧引用,后续可按模块分批迁移;旧引用归零并验证实际制品清单后,再移除兼容头。 ## 关联的Issue 关联并在合入后关闭 #6008: https://gitcode.com/cann/ops-nn/issues/6008 ## 测试 已完成: - git diff --check; - 新旧完整实现内容等价性检查(仅头文件保护宏和内部 include 路径变化); - 两个旧文件均为 16 行轻量转发头; - 新命名头文件之间仅通过新文件名依赖; - 四个样例 ACLNN 文件均为单行 include 替换; - 使用 clang++ -M -MG 完成头文件依赖解析冒烟检查; - 统计剩余旧引用:level2_base.h 32 处、level2_base_caculation.h 5 处; - 8 个变更文件通过 OAT 合规检查; - origin 同名分支与本地提交一致。 ## 文档更新 无。 ## 类型标签 - [ ] 新功能(不影响现有功能的新特性) - [ ] Bug 修复(不影响现有功能的问题修复) - [ ] 重大变更(会导致现有功能无法正常工作的修复或功能) - [ ] 文档更新 - [ ] 性能优化 - [ ] 代码重构 - [x] 其他,请描述:头文件命名与兼容迁移 ## AI/Agent生成声明 - [ ] 完全由开发者手工编写 - [x] AI辅助编写 - [ ] AI生成 See merge request: cann/ops-nn!10791 | 1 天前 | |
fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9032 merge fix-proto-comment-typos into master fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 21 个算子 proto 头文件中 Doxygen 注释的拼写、语法、描述错误与公式括号不匹配问题。所有改动仅涉及注释文本,不改动任何 REG_OP 定义。 ### 改动原因 proto 头文件的 Doxygen 注释存在拼写错误、语法错误(冠词/单复数/主谓一致)、描述误导(输入描述与实际语义不符)以及 rstd 公式多余的右括号等问题,会误导接口使用者。 ### 改动方法 仅修改注释文本,不改动 REG_OP/INPUT/OUTPUT/ATTR/DATATYPE 等代码定义。同时按 pre-commit clang-format 要求对部分文件做格式化。 ### 涉及修复 **拼写错误:** - normlization→normalization、while→will(AddLayerNormQuant) - smooth_scales1/2→smooth_scale1/2(AddRmsNormDynamicQuant,4 处) - listBool→ListBool(AddRmsNormDynamicQuant/V2) - secend→second、opertaion→operation(AddRmsNormQuant) - reseluts→results(BatchNormGrad) - support→supported(BatchNormV3) - dype→type(GroupNormV2,4 处) - Layernorm→LayerNorm、中文或→or、全角,→ASCII(LayerNorm) - \file 文件名错误 nn_norm_ops.h→layer_norm_grad_proto.h(LayerNormGrad) **语法错误(~20 处):** - A optional→An optional(AddLayerNorm/InplaceAddRmsNorm/InstanceNorm) - A ND tensor→An ND tensor(SoftmaxV2/LogSoftmaxGrad/ConfusionSoftmaxGrad) - An required→A required(GroupNormV2) - support→supports(SoftmaxV2/BroadcastGradientArgs/AddRmsNormDynamicMxQuant) - 缺复数 s:input→inputs、output→outputs、group→groups(GroupNormGrad/V2) **描述错误:** - GroupNormGrad:x 输入描述从 the offset 改为 input tensor **公式括号(7 处):** - rstd 公式多余的右括号 ))→)(AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicMxQuant/AddRmsNormDynamicQuant/AddRmsNormQuant/AddRmsNormQuantV2/InplaceAddRmsNorm) ## 关联的Issue - #4989 ## 测试 - 仅注释修改,无代码变更,不影响编译与功能。 - pre-commit 全部 hook 通过(trailing-whitespace/end-of-file-fixer/clang-format/codespell/check-*/detect-private-key);OAT 合规检查 0 issues。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9032 | 3 天前 | |
fix(cleancode): AICPU算子告警整改(第二批) Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !10662 merge fix/warning-cleanup-v2 into master fix(cleancode): AICPU算子告警整改(第二批) Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 ops-nn AICPU算子告警整改第二批,修复3类告警。 ## 改动内容 - G.EXP.15: reinterpret_cast → PtrToPtr (scatter_nd_min/scatter_nd_max/sparse_segment_sum/sparse_to_dense/sparse_fill_empty_rows) - G.CLS.12: 析构函数加 override (index_to_addr) - G.RES.06: lambda默认捕获改为显式捕获 (scatter_nd_max/log_softmax_v2) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5951 ## 测试 - pre-commit 全部 Passed - aicpu kernel UT: 80/80 PASSED - graph example: 7/7 success - eager example: log_softmax_v2 success ## 类型标签 - [x] ♻️ 重构 - [x] 🧹 代码清理 See merge request: cann/ops-nn!10662 | 3 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
refactor: 为公共op_api头文件增加NN后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10791 merge refactor/nn-suffix-common-headers into master refactor: 为公共op_api头文件增加NN后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-nn 的 common/inc/op_api 目录中仍有 level2_base.h 和 level2_base_caculation.h 两个通用名称。它们与其他算子仓的同名文件一起进入软件包时存在覆盖风险。 本 MR 是 ops-nn 分阶段迁移的第一阶段: - 新增完整实现头 level2_base_nn.h 和 level2_base_caculation_nn.h; - 保留原文件为轻量转发头,兼容尚未迁移的存量 ACLNN 源文件和开发中的 MR; - 新计算头只依赖新基础头,避免新命名链路回退到旧文件名; - op_api_def_nn.h 已具有 NN 标识,本次不修改; - classify_rule.yaml 中没有这两个头文件的现有条目,也没有证据表明该文件负责软件包头文件筛选,因此本次不修改; - 先迁移 Mish、UniqueConsecutive、Silu、LogSigmoid 四个简单 ACLNN 接口作为样例。 本阶段不删除兼容头,也不声明已完成最终软件包去重。当前仍有 32 处 level2_base.h 和 5 处 level2_base_caculation.h 的旧引用,后续可按模块分批迁移;旧引用归零并验证实际制品清单后,再移除兼容头。 ## 关联的Issue 关联并在合入后关闭 #6008: https://gitcode.com/cann/ops-nn/issues/6008 ## 测试 已完成: - git diff --check; - 新旧完整实现内容等价性检查(仅头文件保护宏和内部 include 路径变化); - 两个旧文件均为 16 行轻量转发头; - 新命名头文件之间仅通过新文件名依赖; - 四个样例 ACLNN 文件均为单行 include 替换; - 使用 clang++ -M -MG 完成头文件依赖解析冒烟检查; - 统计剩余旧引用:level2_base.h 32 处、level2_base_caculation.h 5 处; - 8 个变更文件通过 OAT 合规检查; - origin 同名分支与本地提交一致。 ## 文档更新 无。 ## 类型标签 - [ ] 新功能(不影响现有功能的新特性) - [ ] Bug 修复(不影响现有功能的问题修复) - [ ] 重大变更(会导致现有功能无法正常工作的修复或功能) - [ ] 文档更新 - [ ] 性能优化 - [ ] 代码重构 - [x] 其他,请描述:头文件命名与兼容迁移 ## AI/Agent生成声明 - [ ] 完全由开发者手工编写 - [x] AI辅助编写 - [ ] AI生成 See merge request: cann/ops-nn!10791 | 1 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
nn仓vector算子适配350平台 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10004 merge master into master nn仓vector算子适配350平台 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 p_relu等算子适配350平台 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5755 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10004 | 11 天前 | |
nn仓vector算子适配350平台 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10004 merge master into master nn仓vector算子适配350平台 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 p_relu等算子适配350平台 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5755 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10004 | 11 天前 | |
modify pic name Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !10839 merge 0920pic into master modify pic name Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改图片名称为小写+下划线格式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#6007](https://gitcode.com/cann/ops-nn/issues/6007) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 相关文档已更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10839 | 1 天前 | |
docs: 修正算子资料和示例问题 Co-authored-by: qiansunchi<qiansunchi@huawei.com> # message auto-generated for no-merge-commit merge: !10316 merge master into master docs: 修正算子资料和示例问题 Created-by: qiansunchi159 Commit-by: qiansunchi Merged-by: cann-robot Description: ## 描述 修改算子的资料和调用示例的问题 ## 关联的Issue 关联Issue [#5837](https://gitcode.com/cann/ops-nn/issues/5837) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10316 | 7 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix(assets,index,loss): ScatterList 资料/校验、loss 检视整改、TTK spec 适配、tf 三方腿与三方精度修正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9870 merge fix/ttk-golden-tf-third-party into master fix(assets,index,loss): ScatterList 资料/校验、loss 检视整改、TTK spec 适配、tf 三方腿与三方精度修正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ## 描述 补齐foreach类、scatter类及lamb类算子的tf等通路三方 ## 关联的Issue NA ## 测试 st ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9870 | 14 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
nn仓算子350适配 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10332 merge master into master nn仓算子350适配 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 nn仓算子350适配 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5826 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10332 | 6 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix: 修复7个算子文档示例代码静态检查问题 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10472 merge clean_code into master fix: 修复7个算子文档示例代码静态检查问题 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复7个算子文档示例代码静态检查问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5901 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了: aclnnHardsigmoid&aclnnInplaceHardsigmoid.md aclnnLogSoftmax.md aclnnSeluBackward.md aclnnSigmoid&aclnnInplaceSigmoid.md(activation) aclnnSigmoid&aclnnInplaceSigmoid.md(experimental) aclnnSwiGluGrad.md aclnnGroupNormSilu.md aclnnGroupNormSiluV2.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10472 | 4 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix: 修复7个算子文档示例代码静态检查问题 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10472 merge clean_code into master fix: 修复7个算子文档示例代码静态检查问题 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复7个算子文档示例代码静态检查问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5901 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了: aclnnHardsigmoid&aclnnInplaceHardsigmoid.md aclnnLogSoftmax.md aclnnSeluBackward.md aclnnSigmoid&aclnnInplaceSigmoid.md(activation) aclnnSigmoid&aclnnInplaceSigmoid.md(experimental) aclnnSwiGluGrad.md aclnnGroupNormSilu.md aclnnGroupNormSiluV2.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10472 | 4 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 9 天前 | |
fix codecheck Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !9259 merge master into master fix codecheck Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复激活类算子codecheck问题 1、python使用utf-8编码 2、使用const限定符约束不会修改的参数和成员函数. 该 PR 用于修复激活类算子的 codecheck 问题,改动集中在两方面:为 Python 脚本统一添加 # coding=utf-8 编码声明;在 C++ 代码中为不会修改数据的函数参数和成员函数补充 const 限定符。变更覆盖 hard_swish_grad_v2、situ_glu、situ_glu_grad激活类算子的 tiling、kernel、op_api、示例及 torch 扩展代码。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue #5237 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 功能测试OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9259 | 25 天前 | |
fix codecheck Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !9259 merge master into master fix codecheck Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复激活类算子codecheck问题 1、python使用utf-8编码 2、使用const限定符约束不会修改的参数和成员函数. 该 PR 用于修复激活类算子的 codecheck 问题,改动集中在两方面:为 Python 脚本统一添加 # coding=utf-8 编码声明;在 C++ 代码中为不会修改数据的函数参数和成员函数补充 const 限定符。变更覆盖 hard_swish_grad_v2、situ_glu、situ_glu_grad激活类算子的 tiling、kernel、op_api、示例及 torch 扩展代码。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue #5237 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 功能测试OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9259 | 25 天前 | |
docs(soft_shrink_grad): aclnnSoftshrinkBackward 资料示例与 example 局部变量同步为 lambd(#5940 补漏) Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !10736 merge fix/softshrink-backward-lambd-example into master docs(soft_shrink_grad): aclnnSoftshrinkBackward 资料示例与 example 局部变量同步为 lambd(#5940 补漏) Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 关联 issue #5940;配套 PR:!10704(头文件/l0op **代码面** lambda → lambd) ## 背景 !10704 统一了头文件、l0op 与资料契约面的参数名。本 PR 补齐剩余代码面,使 md 内**代码面无残留 lambda**、算子目录内全部样例命名与对外契约 lambd 一致。 ## 修改内容 | 文件 | 改动 | |---|---| | docs/aclnnSoftshrinkBackward.md | 接口原型(L59)、参数表(L120)、错误码说明(L191/202)、示例代码段(L341 起 lambda/lambdaValue 全链)→ lambd/lambdValue,共 8 处 | | examples/test_aclnn_soft_shrink_grad.cpp | 局部变量 lambda/lambdaValue → lambd/lambdValue(5 处) | | examples/arch35/test_aclnn_soft_shrink_grad.cpp | 同上(5 处) | 不动项:公式中的数学符号 \lambda(L35/36/46,LaTeX 渲染的 λ 本身,非代码标识符)。 ## 与 !10704 的关系 两 PR 无行冲突(!10704 改 .h/.cpp + md 同 4 行,本 PR 改 md 另 8 行 + 2 个 example .cpp;md 相同 4 行先合者吸收,另一方 rebase 自动消解)。 ## 验证 - build.sh --run_example soft_shrink_grad eager --soc=ascend910b:**真机运行 success** - pre-commit 钩子全通过(whitespace/clang-format/codespell/OAT) - md 残留核查:仅剩公式数学符号 \lambda 3 处,代码面为 0 See merge request: cann/ops-nn!10736 | 3 天前 | |
bn_infer等26个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10255 merge ascend350_adapt_w2 into master bn_infer等26个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 26个算子新增ascend350平台支持:foreach_mul_scalar、foreach_sqrt、foreach_addcmul_scalar、foreach_div_scalar_list、foreach_lerp_scalar、foreach_norm、bn_infer、apply_adagrad_d、apply_gradient_descent、apply_adam、apply_adam_w_v2、embedding_hash_table_apply_adam_w、embedding_hash_table_export、embedding_hash_table_import、embedding_hash_table_lookup_or_insert、init_embedding_hash_table、binary_cross_entropy、sigmoid_cross_entropy_with_logits_v2、binary_cross_entropy_grad、l2_loss、nll_loss、nll_loss_grad、sparse_softmax_cross_entropy_with_logits、softmax_cross_entropy_with_logits、swiglu_group_quant、swi_glu。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(regbase 形态含 foreach 系/bn_infer/apply_adam_w_v2/swi_glu 等) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR(或 COMPUTE_UNITS 形态)增加 ascend350/arch35(bn_infer 为 op_host/CMakeLists 特殊形态,对标 bn_training_reduce 先例) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(foreach 系 6 个 + SwiGlu 共 7 条 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子不新增登记,避免影响默认编译选项行为 - nll_loss_grad 的 CMakeLists.txt 版权头规范化(OAT 合规检查要求) ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:26/26 算子通过(产物 .o、run 包产出、json 选项注入均验证;softmax_cross_entropy_with_logits 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5780 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(sigmoid_cross_entropy_with_logits_v2 的 binary_cross_entropy_with_logits),已完成修改 - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegbase()(显式覆盖 regbase 芯片,与 upstream !10101 已合入的 Ops::NN::AclnnUtil::IsRegbase() 同形态) - 行为零变化:950 原区间命中(true)→现 IsRegbase()(true);350 原被区间覆盖(true)→现 IsRegbase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## 四件套完整性检视修复 - 全量检视发现 17 个算子的 ascendc_config.json 登记缺失(摸底时带下划线 grep 未命中全驼峰条目名,误记为 950 无条目) - 涉及:loss 7(BinaryCrossEntropy/Grad、L2Loss、NLLLoss/Grad、SigmoidCrossEntropyWithLogitsV2、SparseSoftmaxCrossEntropyWithLogits)、hash 5(EmbeddingHashTableApplyAdamW/Export/Import/LookupOrInsert、InitEmbeddingHashTable)、optim 4(ApplyAdagradD、ApplyAdam、ApplyAdamWV2、ApplyGradientDescent)、activation 1(SoftmaxCrossEntropyWithLogits) - 修复:对标各自 ascend950 条目补登 ascend350(compute_units 追加 + compile_options 照抄),def/CMake/config 三件原已齐备 - 其余 84 算子四件套核查全绿或形态与 950 一致(详见任务侧检视报告) ## 补充算子 - foreach_add_scalar:清单补充登记,四件套补齐(def AddConfig ascend350 与 950 同 regbaseCfg 对象、op_kernel CMake COMPUTE_UNITS、config/ascend350/binary.json、ascendc_config.json 条目对标 950 追加 + compile_options 照抄),与同族 foreach_addcmul_scalar 等先例形态一致 ## 算子目录内融合规则适配 - 全量排查两波 84 算子目录 op_graph 层:仓内融合 pass 共 2 个、graph_infer 12 个、graph_plugin 1 个 - 🔴 修复 1 处:layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp:102 support_soc 集合 {"Ascend950","MC62"} 增加 Ascend350(原 350 跳过融合与 950 分叉);ops-transformer 的 apply_rotary_pos_emb_tensormove_pass 无平台门控天然放行 See merge request: cann/ops-nn!10255 | 1 天前 | |
[ascend350] 16个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10186 merge ascend350_adapt into master [ascend350] 16个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 16个算子新增ascend350平台支持:layer_norm、layer_norm_v3、layer_norm_v4、layer_norm_grad_v3(含 LayerNormBetaGammaBackpropV2/LayerNormXBackpropV2 入口)、rms_norm、rms_norm_grad、add_rms_norm、inplace_add_rms_norm、add_layer_norm、lp_norm_v2、bn_training_reduce、broadcast_gradient_args、log_softmax_v2、softmax_grad、log_softmax_grad、confusion_softmax_grad。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(layer_norm_v4/layer_norm_grad_v3 为 regbaseCfg 形态) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 增加 ascend350/arch35(add_layer_norm 为 op_kernel/CMakeLists.txt 的 add_kernel_sources COMPUTE_UNITS 形态;layer_norm_grad_v3 为 add_modules_sources 形态无需改) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json(bn_training_reduce、log_softmax_v2 无 config 目录,走 def 全组合,跳过) - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子(如 add_layer_norm、bn_training_reduce)不新增登记,避免影响默认编译选项行为 - 4 个 def 文件版权头规范化(OAT 合规检查要求):softmax_grad_def、rms_norm_def、layer_norm_grad_v3_def、rms_norm_grad_def ## 测试 A5(Ascend950PR)环境实测: - build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:15/16 算子通过(self config 日志、ascend350 kernel .o 产物、run 包产出、json 选项注入均验证);lp_norm_v2 代码适配完成、编译验证进行中 - 950 硬件伪装 350 路径(ASCEND_OPP_PATH overlay + Short_SoC_version=Ascend350)ttk kernel 精度验证:layer_norm/layer_norm_v3 等已验收算子 binary 匹配全命中、无 FAIL(详见验收记录) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5744 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化(2026-09-11 追加) - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 清单涉及 3 处(log_softmax_v2 / log_softmax_grad / softmax_grad 的 CheckSocVersionIsSupportBf16),跳过项:3/3 已由 upstream !10101(e22a7a02f,算子910B~910E区间判断追加IsRegbase())修复,本 MR rebase 后自动继承,自身 0 处修改 - 改法(upstream 已落地形态):保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegBase()(显式覆盖 regbase 芯片) - 行为零变化:950 原区间命中(true)→现 IsRegBase()(true);350 原被区间覆盖(true)→现 IsRegBase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master See merge request: cann/ops-nn!10186 | 7 天前 | |
modify pic name Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !10839 merge 0920pic into master modify pic name Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改图片名称为小写+下划线格式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#6007](https://gitcode.com/cann/ops-nn/issues/6007) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 相关文档已更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10839 | 1 天前 | |
【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !10415 merge nn_work into master 【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 1. 背景:mc62算子workspace占用对比1951增大 2. 由于mc62代码和A5是onetrack, 所有workspacesize硬编码为16M, 在mc62上也同样是16M,asc 提供接口,对mc62进行区分,从原来的16M 变成1K,A5和A2大小不变。 3. 修改:算子侧tiling中硬编码为16M大小的workspacesize统一改为用接口获取。 GetLibApiWorkSpaceSize实现如下: const static uint32_t WORK_SPACE_SIZE_910B = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE_950 = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE = 1024; uint32_t PlatformAscendC::GetLibApiWorkSpaceSize(void) const { auto npuArch = GetCurNpuArch(); if (npuArch == NpuArch::DAV_RESV) { PF_LOGE("get platform failed, CurNpuArch is NpuArch::DAV_RESV"); return -1; } else if (npuArch == NpuArch::DAV_2201) { return WORK_SPACE_SIZE_910B; } else if (npuArch == NpuArch::DAV_3510) { return WORK_SPACE_SIZE_950; } return WORK_SPACE_SIZE; } ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5979 ## 测试 1.单算子框架测试通过 2.二级冒烟通过 文档更新 类型标签 - [x] Bug修复 See merge request: cann/ops-nn!10415 | 3 天前 | |
softplus golden支持全通路 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !10582 merge master into master softplus golden支持全通路 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> softplus golden新增aclnn,e2e通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5918 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10582 | 4 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix(examples): 修复aclnn示例代码及接口文档问题 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !10300 merge fix/examples-codecheck into master fix(examples): 修复aclnn示例代码及接口文档问题 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 修复 6 个算子示例代码与接口文档中的 codecheck 问题,完整问题清单见关联 Issue。 主要修复: - **宿主数据类型与 Tensor dataType 匹配**:DequantBias(inputHostData int16_t→int32_t、resultData int8_t→int16_t、weight/activation/bias int32_t→float、outputDtype true→1)、GeluBackward(gradOutput int→float 且 ACL_INT32→ACL_FLOAT)、GeluBackwardV2(gradOutput/gradInput int→float,0x00000001 位模式错值) - **shape 与 tiling 实现一致**:AdvanceStep inputTokens {8,1}→{8};AdvanceStepV2 按 advance_step_tiling.cpp 的 CheckInputOutputShape 理顺全部输入(inputTokens/inputPositions/seqLens/slotMapping 为 1 维 [numSeqs*(1+specNum)],sampledTokenIds 为 {numSeqs, 1+specNum},specToken 为 {numSeqs, specNum}),并同步修正参数表与报错表中与实现不一致的 shape 描述(原参数表称 inputTokens 为 2 维、报错表称 sampledTokenIds 第二维为 1,均与 tiling 校验矛盾) - **AdvanceStepV2 input7/input8 使用独立 DeviceAddr**:原复用 input5/input6 的地址,指针被二次 malloc 覆盖导致首次分配泄漏 - **清理模板残留**:"mean result" 日志标签(GeluMul/SoftmaxCrossEntropyWithLogits/AdvanceStep/AdvanceStepV2/DequantBias)、头文件"//不确定头文件名字"注释、SoftplusBackward CHECK_RET 多余分号(含 experimental 副本) - **AdvanceStep(V2) blockTables 参数描述**修正为"物理块编号"(原文"block 的大小"与公式语义不符) - 按 clang-format 补齐 8 个示例文件末尾换行等格式;test_aclnn_advance_step_v2.cpp 版权头替换为仓库标准格式 examples 与 docs 双份同步修改。 ## 关联的Issue Closes #5816 ## 测试 - [x] 9 个示例在 A2(Atlas 910B3,CANN 9.2.0)上实际编译(g++ 12.3.1)并运行通过(exit=0),输出数值符合预期(如 DequantBias 输出 fp16 位模式 0x4600=6.0,与 1×2.0×2.0+2.0 一致) ## 文档更新 - docs/aclnnDequantBias.md、aclnnGeluBackward.md、aclnnGeluBackwardV2.md、aclnnGeluMul.md、aclnnSoftmaxCrossEntropyWithLogits.md、aclnnAdvanceStep.md、aclnnAdvanceStepV2.md、aclnnSoftplusBackward.md(含 experimental 副本)中的示例代码同步更新;aclnnAdvanceStepV2.md 参数表与报错表 shape 描述对齐实现 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10300 | 9 天前 | |
fix: 完善NN算子proto与infer注册 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !10281 merge master into master fix: 完善NN算子proto与infer注册 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次修改完成 NN 相关算子的 Legacy 下线整改: • 为FusedBiasLeakyRelu、BNTrainingReduce、INTrainingReduceGrad、LpNormUpdate、InplaceApplyAdaMax、InplaceApplyFtrl、InplaceApplyFtrlV2、InplaceApplyProximalAdagrad 等算子补充原型去重宏,避免新旧原型重复注册。 • 将 Softshrink 算子名称统一为 SoftShrink,同步调整原型、OpDef、InferShape、InferDataType、Tiling、Kernel、TilingData 及测试中的注册名称。 • 新增 SoftShrink 开源原型,统一输入输出名称为 input_x、output_y。 • 为 SigmoidFocalLoss 新增开源 InferShape 和 InferDataType 实现。 • 将 LpNormUpdate Level0 op_api 从 canndev 迁移至开源仓,保留 AICore/AICPU 分发逻辑。 • 按仓库 clang-format 规范完成相关文件格式整改。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5946 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10281 | 3 天前 | |
fix: InplaceApplyAdagradV2、InplaceApplyAdagradDA、Softsign 算子质量加固 Co-authored-by: aqt666<2016141505@qq.com> # message auto-generated for no-merge-commit merge: !10380 merge codex/latest-ops-review-remediation into master fix: InplaceApplyAdagradV2、InplaceApplyAdagradDA、Softsign 算子质量加固 Created-by: aqt666 Commit-by: aqt666 Merged-by: cann-robot Description: ## 描述 本 PR 统一承载 InplaceApplyAdagradV2、InplaceApplyAdagradDA、Softsign 三个算子的质量加固。 ### InplaceApplyAdagradV2 - 将 update_slots、use_locking 声明为可选属性,默认值分别为 true、false;Proto 和 README 明确仅支持 use_locking=false。 - Tiling 拒绝 NaN/Inf/负数 epsilon 及 use_locking=true。 - accum 输入使用独立 VECIN 队列,与 outAccum 输出队列分离;UB 按 5 个 FP32 buffer 计算。 - 保留检视要求的文档修正,并补充标量和非连续输入约束。 ### InplaceApplyAdagradDA - 标量按实际长度拷贝;l1<=0 时统一 l1T_ 的处理,移除冗余 l1IsZero_ 状态。 - 拒绝不支持的 use_locking=true,补充对应测试与 NaN 行为说明。 ### Softsign - Proto 移除未支持的 DOUBLE,文档统一 rank 为 0-8。 - 空 Tensor 短路前初始化 TilingData。 ## 关联 Issue #5848、#5866 ## PR 分组 本 PR 包含上述三个算子。Softsign 来源 PR #10412 的修改已纳入本 PR;V2 的完整修复从 #10429 归并到本 PR。 SeluGrad、ApplyCenteredRMSProp、Relu6D 统一由 PR #10429 承载。 ## 验证 - 分组调整后 git diff --check 通过,GitCode 提交检查通过。 - 已核对 Softsign 与原分支内容一致,V2 Host/Kernel 与原 #10429 修复一致。 - 本次环境未重新执行 Ascend 编译、单元测试或设备测试,需由 CI/Ascend 环境确认。 See merge request: cann/ops-nn!10380 | 1 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 12 天前 | |
fix example code and md Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10363 merge master into master fix example code and md Created-by: guijianwei Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 激活类算子issue修复,问题内容详见issue | 编号 | 文档 | 修复内容 | 涉及文件(md + cpp 同步) | 状态 | |---|---|---|---|---| | 367 | aclnnDequantSwigluQuantV2.md | weightScale 创建后补 CHECK_RET(ret == ACL_SUCCESS, return ret);,与其他 tensor 创建一致 | quant/dequant_swiglu_quant/docs/aclnnDequantSwigluQuantV2.md、examples/test_aclnn_dequant_swiglu_quant_v2.cpp | 已修复 | | 368 | aclnnDequantSwigluQuantV2.md | host 数据元素个数补齐至与 shape 一致:weightScaleData/biasData 补至 64、activationScaleData 补至 2、scaleHostData 补至 32、outHostData 补至 64,消除 aclrtMemcpy 越界读 | 同上 | 已修复 | | 369 | aclnnDequantSwigluQuantV2.md | 按参数表默认值改正:gluAlpha = 1.702; gluBias = 1.0;(原示例两值互换) | 同上 | 已修复 | | 427 | aclnnSwiGluQuantV2.md | x 的 host 数据为 float,tensor 类型由 ACL_BF16 改为 ACL_FLOAT(参数表支持 FLOAT16/BFLOAT16/FLOAT),消除 float 字节流按 BF16 重解释导致的错误数值 | quant/swi_glu_quant/docs/aclnnSwiGluQuantV2.md、examples/test_aclnn_swi_glu_quant_v2.cpp | 已修复 | | 429 | aclnnSwiGluQuantV2.md | groupIndexHostData 由 std::vector<float> 改为 std::vector<int32_t>,与 ACL_INT32 匹配(float 1.0 字节重解释为 int32 会得到 1065353216) | 同上 | 已修复 | | 430 | aclnnSwiGluQuantV2.md | outDeviceAddr,size 逗号后补空格 | 同上(md) | 已修复 | | 476 | aclnnSwiGluQuant.md | 注释「// 创建scale aclTensor」改为「// 创建smoothScales aclTensor」,与实际创建的变量一致 | quant/swi_glu_quant/docs/aclnnSwiGluQuant.md(v2 文档及两份 cpp 同步修正同类注释) | 已修复(工作区已有,本次复核) | | 513 | aclnnDequantSwigluQuant.md | xHostData 由 float 改为 std::vector<aclFloat16>,与 ACL_FLOAT16 匹配 | quant/dequant_swiglu_quant/docs/aclnnDequantSwigluQuant.md、examples/test_aclnn_dequant_swiglu_quant.cpp | 已修复(工作区已有,本次复核) | | 2087 | aclnnErfinv&aclnnInplaceErfinv.md | 输入数据替换为 erfinv 定义域 [-1,1] 内的典型值(-0.95…0.99),消除大量 NaN/Inf 误导 | activation/erfinv/docs/…md、examples/test_aclnn_erfinv.cpp、test_aclnn_inplace_erfinv.cpp | 已修复(工作区已有,本次复核) | | 2430 | aclnnSquaredRelu.md | LOG_PRINT("mean input…") 改为 "input…"(另将 "mean result…" 同步改为 "output…") | activation/squared_relu/docs/aclnnSquaredRelu.md、examples/test_aclnn_squared_relu.cpp | 已修复(工作区已有,本次复核) | | 2431 | aclnnSquaredRelu.md | workspaceSize 初始化由硬编码 16*1024*1024 改为 0,由第一段接口返回实际值 | 同上 | 已修复(工作区已有,本次复核) | | 2443 | aclnnHardswishBackwardV2.md | return ret;); 去掉多余分号,改为 return ret); | activation/hard_swish_grad_v2/docs/aclnnHardswishBackwardV2.md、examples/test_aclnn_hard_swish_backward_v2.cpp | 已修复(工作区已有,本次复核) | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#5821](https://gitcode.com/cann/ops-nn/issues/5821) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> | # | op_name | 验证命令 | 结果 | |---|---|---|---| | 1 | dequant_swiglu_quant | bash build.sh --run_example dequant_swiglu_quant eager --example_name=dequant_swiglu_quant | **success** | | 2 | dequant_swiglu_quant | bash build.sh --run_example dequant_swiglu_quant eager --example_name=dequant_swiglu_quant_v2 | **success** | | 3 | swi_glu_quant | bash build.sh --run_example swi_glu_quant eager --example_name=swi_glu_quant | **success** | | 4 | swi_glu_quant | bash build.sh --run_example swi_glu_quant eager --example_name=swi_glu_quant_v2 | **success** | | 5 | erfinv | bash build.sh --run_example erfinv eager --example_name=erfinv | **success** | | 6 | erfinv | bash build.sh --run_example erfinv eager --example_name=inplace_erfinv | **success** | | 7 | squared_relu | bash build.sh --run_example squared_relu eager --example_name=squared_relu | **success** | | 8 | hard_swish_grad_v2 | bash build.sh --run_example hard_swish_grad_v2 eager --example_name=hard_swish_backward_v2 | **success** | | 9 | hard_shrink | bash build.sh --run_example hard_shrink eager --example_name=hard_shrink | **success** | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10363 | 7 天前 | |
bn_infer等26个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10255 merge ascend350_adapt_w2 into master bn_infer等26个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 26个算子新增ascend350平台支持:foreach_mul_scalar、foreach_sqrt、foreach_addcmul_scalar、foreach_div_scalar_list、foreach_lerp_scalar、foreach_norm、bn_infer、apply_adagrad_d、apply_gradient_descent、apply_adam、apply_adam_w_v2、embedding_hash_table_apply_adam_w、embedding_hash_table_export、embedding_hash_table_import、embedding_hash_table_lookup_or_insert、init_embedding_hash_table、binary_cross_entropy、sigmoid_cross_entropy_with_logits_v2、binary_cross_entropy_grad、l2_loss、nll_loss、nll_loss_grad、sparse_softmax_cross_entropy_with_logits、softmax_cross_entropy_with_logits、swiglu_group_quant、swi_glu。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(regbase 形态含 foreach 系/bn_infer/apply_adam_w_v2/swi_glu 等) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR(或 COMPUTE_UNITS 形态)增加 ascend350/arch35(bn_infer 为 op_host/CMakeLists 特殊形态,对标 bn_training_reduce 先例) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(foreach 系 6 个 + SwiGlu 共 7 条 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子不新增登记,避免影响默认编译选项行为 - nll_loss_grad 的 CMakeLists.txt 版权头规范化(OAT 合规检查要求) ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:26/26 算子通过(产物 .o、run 包产出、json 选项注入均验证;softmax_cross_entropy_with_logits 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5780 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(sigmoid_cross_entropy_with_logits_v2 的 binary_cross_entropy_with_logits),已完成修改 - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegbase()(显式覆盖 regbase 芯片,与 upstream !10101 已合入的 Ops::NN::AclnnUtil::IsRegbase() 同形态) - 行为零变化:950 原区间命中(true)→现 IsRegbase()(true);350 原被区间覆盖(true)→现 IsRegbase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## 四件套完整性检视修复 - 全量检视发现 17 个算子的 ascendc_config.json 登记缺失(摸底时带下划线 grep 未命中全驼峰条目名,误记为 950 无条目) - 涉及:loss 7(BinaryCrossEntropy/Grad、L2Loss、NLLLoss/Grad、SigmoidCrossEntropyWithLogitsV2、SparseSoftmaxCrossEntropyWithLogits)、hash 5(EmbeddingHashTableApplyAdamW/Export/Import/LookupOrInsert、InitEmbeddingHashTable)、optim 4(ApplyAdagradD、ApplyAdam、ApplyAdamWV2、ApplyGradientDescent)、activation 1(SoftmaxCrossEntropyWithLogits) - 修复:对标各自 ascend950 条目补登 ascend350(compute_units 追加 + compile_options 照抄),def/CMake/config 三件原已齐备 - 其余 84 算子四件套核查全绿或形态与 950 一致(详见任务侧检视报告) ## 补充算子 - foreach_add_scalar:清单补充登记,四件套补齐(def AddConfig ascend350 与 950 同 regbaseCfg 对象、op_kernel CMake COMPUTE_UNITS、config/ascend350/binary.json、ascendc_config.json 条目对标 950 追加 + compile_options 照抄),与同族 foreach_addcmul_scalar 等先例形态一致 ## 算子目录内融合规则适配 - 全量排查两波 84 算子目录 op_graph 层:仓内融合 pass 共 2 个、graph_infer 12 个、graph_plugin 1 个 - 🔴 修复 1 处:layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp:102 support_soc 集合 {"Ascend950","MC62"} 增加 Ascend350(原 350 跳过融合与 950 分叉);ops-transformer 的 apply_rotary_pos_emb_tensormove_pass 无平台门控天然放行 See merge request: cann/ops-nn!10255 | 1 天前 | |
fix: 修复7个算子文档示例代码静态检查问题 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10472 merge clean_code into master fix: 修复7个算子文档示例代码静态检查问题 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复7个算子文档示例代码静态检查问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5901 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了: aclnnHardsigmoid&aclnnInplaceHardsigmoid.md aclnnLogSoftmax.md aclnnSeluBackward.md aclnnSigmoid&aclnnInplaceSigmoid.md(activation) aclnnSigmoid&aclnnInplaceSigmoid.md(experimental) aclnnSwiGluGrad.md aclnnGroupNormSilu.md aclnnGroupNormSiluV2.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10472 | 4 天前 | |
swiglu_group_quant quantmode 0/1 supports output origin Co-authored-by: taochangmin<taochangmin@huawei.com> # message auto-generated for no-merge-commit merge: !10630 merge ouput_origin into master swiglu_group_quant quantmode 0/1 supports output origin Created-by: taochangmin Commit-by: taochangmin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> SwigluGroupQuant算子的quant_mode 0和1支持输入y_origin(weight加权前的swiglu输出) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5935 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ut、st、冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> activation/swiglu_group_quant/docs/aclnnSwigluGroupQuant.md activation/swiglu_group_quant/docs/torchapi_swiglu_group_quant.md activation/swiglu_group/README.md activation/swiglu_group_quant/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10630 | 3 天前 | |
fix(swiglu_group_grad): 补齐 Scalar 流水同步,修复 gradWeight 偶现精度问题 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10447 merge fix/swiglu-group-grad-pipeline-sync into master fix(swiglu_group_grad): 补齐 Scalar 流水同步,修复 gradWeight 偶现精度问题 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 问题 regbase kernel 通过 GetPhyAddr 直接用 Scalar 流水读写 TQue/TBuf 缓冲,但 TQue 内建事件只覆盖 V<->MTE 方向,从不栅栏 Scalar 流水。跨 tile / 跨 chunk 复用同一块 UB 时存在硬件级 WAR/RAW 竞争,表现为 gradWeight 偶现精度偏差(非崩溃)。 ## 修复 补齐四个缺失的同步方向,不使用 PIPE_ALL,按实际依赖选择精确流水事件: - **S_MTE2**(WAR:Scalar 读 vs MTE2 覆写)— NumpyPairwiseSum 用 Scalar 读 gradYQueue_ 缓冲,FreeTensor 只置 V_MTE2(解阻 Vector),下一 tile 的 DataCopyPad 会用 MTE2 覆写同一块 UB。补 ProcessFullRowTiles(FP32)、ProcessUltraWideTask(FP32)、ProcessHiddenChunks(FP32)。 - **MTE3_S**(WAR:MTE3 读 vs Scalar 覆写)— WriteScalarFloat 与 ProcessFullRowTiles 的 gradWeightQueue_ AllocTensor 只等 MTE3_V,随后 Scalar 直接写入,而上一次 CopyChunkOut / CopyTileOut 的 MTE3 可能仍在读同一缓冲。 - **MTE2_S / MTE3_MTE2** — ProcessUltraWideFixedTree 单核归并循环去掉 PipeBarrier<PIPE_ALL>,改为精确事件;SyncAll 前的全局栅栏收窄为 PipeBarrier<PIPE_MTE3>(只有 MTE3 有未完成写)。 - **S_V**(WAR:Scalar 读 vs Vector 覆写)— gradYFloatBuffer_ / inputFloatBuffer_ 是 TBuf,无内建事件,下一 tile 的 CastTileToFloat / CastChunkToFloat 从 Vector 侧重写。另外 NumpyPairwiseSumFast 入口补 S_V,与 NumpyPairwiseSumVectorized 对齐——ProcessHiddenChunks 传入的 partial 数组由 Scalar 写出,chunkElementCount==2048 时走 Fast 分支。 ## 验证 Ascend950PR / CANN 9.1.0: - 编译:--opkernel 通过(3 个 tilingKey 特化全部成功) - UT:op_host 29/29 PASSED,op_kernel 4/4 PASSED - pre-push gate:PASSED(opkernel UT + ascend950 pkg) > RegBase intrinsics 在 tikicpulib CPU 模拟器下按既有方式 skip,精度回归需真实 NPU 硬件复跑。 See merge request: cann/ops-nn!10447 | 5 天前 | |
bn_infer等26个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10255 merge ascend350_adapt_w2 into master bn_infer等26个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 26个算子新增ascend350平台支持:foreach_mul_scalar、foreach_sqrt、foreach_addcmul_scalar、foreach_div_scalar_list、foreach_lerp_scalar、foreach_norm、bn_infer、apply_adagrad_d、apply_gradient_descent、apply_adam、apply_adam_w_v2、embedding_hash_table_apply_adam_w、embedding_hash_table_export、embedding_hash_table_import、embedding_hash_table_lookup_or_insert、init_embedding_hash_table、binary_cross_entropy、sigmoid_cross_entropy_with_logits_v2、binary_cross_entropy_grad、l2_loss、nll_loss、nll_loss_grad、sparse_softmax_cross_entropy_with_logits、softmax_cross_entropy_with_logits、swiglu_group_quant、swi_glu。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(regbase 形态含 foreach 系/bn_infer/apply_adam_w_v2/swi_glu 等) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR(或 COMPUTE_UNITS 形态)增加 ascend350/arch35(bn_infer 为 op_host/CMakeLists 特殊形态,对标 bn_training_reduce 先例) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(foreach 系 6 个 + SwiGlu 共 7 条 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子不新增登记,避免影响默认编译选项行为 - nll_loss_grad 的 CMakeLists.txt 版权头规范化(OAT 合规检查要求) ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:26/26 算子通过(产物 .o、run 包产出、json 选项注入均验证;softmax_cross_entropy_with_logits 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5780 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(sigmoid_cross_entropy_with_logits_v2 的 binary_cross_entropy_with_logits),已完成修改 - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegbase()(显式覆盖 regbase 芯片,与 upstream !10101 已合入的 Ops::NN::AclnnUtil::IsRegbase() 同形态) - 行为零变化:950 原区间命中(true)→现 IsRegbase()(true);350 原被区间覆盖(true)→现 IsRegbase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## 四件套完整性检视修复 - 全量检视发现 17 个算子的 ascendc_config.json 登记缺失(摸底时带下划线 grep 未命中全驼峰条目名,误记为 950 无条目) - 涉及:loss 7(BinaryCrossEntropy/Grad、L2Loss、NLLLoss/Grad、SigmoidCrossEntropyWithLogitsV2、SparseSoftmaxCrossEntropyWithLogits)、hash 5(EmbeddingHashTableApplyAdamW/Export/Import/LookupOrInsert、InitEmbeddingHashTable)、optim 4(ApplyAdagradD、ApplyAdam、ApplyAdamWV2、ApplyGradientDescent)、activation 1(SoftmaxCrossEntropyWithLogits) - 修复:对标各自 ascend950 条目补登 ascend350(compute_units 追加 + compile_options 照抄),def/CMake/config 三件原已齐备 - 其余 84 算子四件套核查全绿或形态与 950 一致(详见任务侧检视报告) ## 补充算子 - foreach_add_scalar:清单补充登记,四件套补齐(def AddConfig ascend350 与 950 同 regbaseCfg 对象、op_kernel CMake COMPUTE_UNITS、config/ascend350/binary.json、ascendc_config.json 条目对标 950 追加 + compile_options 照抄),与同族 foreach_addcmul_scalar 等先例形态一致 ## 算子目录内融合规则适配 - 全量排查两波 84 算子目录 op_graph 层:仓内融合 pass 共 2 个、graph_infer 12 个、graph_plugin 1 个 - 🔴 修复 1 处:layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp:102 support_soc 集合 {"Ascend950","MC62"} 增加 Ascend350(原 350 跳过融合与 950 分叉);ops-transformer 的 apply_rotary_pos_emb_tensormove_pass 无平台门控天然放行 See merge request: cann/ops-nn!10255 | 1 天前 | |
fix: 修复 clipped_swiglu_grad/hard_sigmoid_grad/swiglu_group_quant 算子静态检查问题 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10080 merge clean_code into master fix: 修复 clipped_swiglu_grad/hard_sigmoid_grad/swiglu_group_quant 算子静态检查问题 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 clipped_swiglu_grad/hard_sigmoid_grad/swiglu_group_quant 算子静态检查问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5686 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10080 | 13 天前 | |
refactor: 为公共op_api头文件增加NN后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10791 merge refactor/nn-suffix-common-headers into master refactor: 为公共op_api头文件增加NN后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-nn 的 common/inc/op_api 目录中仍有 level2_base.h 和 level2_base_caculation.h 两个通用名称。它们与其他算子仓的同名文件一起进入软件包时存在覆盖风险。 本 MR 是 ops-nn 分阶段迁移的第一阶段: - 新增完整实现头 level2_base_nn.h 和 level2_base_caculation_nn.h; - 保留原文件为轻量转发头,兼容尚未迁移的存量 ACLNN 源文件和开发中的 MR; - 新计算头只依赖新基础头,避免新命名链路回退到旧文件名; - op_api_def_nn.h 已具有 NN 标识,本次不修改; - classify_rule.yaml 中没有这两个头文件的现有条目,也没有证据表明该文件负责软件包头文件筛选,因此本次不修改; - 先迁移 Mish、UniqueConsecutive、Silu、LogSigmoid 四个简单 ACLNN 接口作为样例。 本阶段不删除兼容头,也不声明已完成最终软件包去重。当前仍有 32 处 level2_base.h 和 5 处 level2_base_caculation.h 的旧引用,后续可按模块分批迁移;旧引用归零并验证实际制品清单后,再移除兼容头。 ## 关联的Issue 关联并在合入后关闭 #6008: https://gitcode.com/cann/ops-nn/issues/6008 ## 测试 已完成: - git diff --check; - 新旧完整实现内容等价性检查(仅头文件保护宏和内部 include 路径变化); - 两个旧文件均为 16 行轻量转发头; - 新命名头文件之间仅通过新文件名依赖; - 四个样例 ACLNN 文件均为单行 include 替换; - 使用 clang++ -M -MG 完成头文件依赖解析冒烟检查; - 统计剩余旧引用:level2_base.h 32 处、level2_base_caculation.h 5 处; - 8 个变更文件通过 OAT 合规检查; - origin 同名分支与本地提交一致。 ## 文档更新 无。 ## 类型标签 - [ ] 新功能(不影响现有功能的新特性) - [ ] Bug 修复(不影响现有功能的问题修复) - [ ] 重大变更(会导致现有功能无法正常工作的修复或功能) - [ ] 文档更新 - [ ] 性能优化 - [ ] 代码重构 - [x] 其他,请描述:头文件命名与兼容迁移 ## AI/Agent生成声明 - [ ] 完全由开发者手工编写 - [x] AI辅助编写 - [ ] AI生成 See merge request: cann/ops-nn!10791 | 1 天前 | |
fix: 修复7个算子文档示例代码静态检查问题 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10472 merge clean_code into master fix: 修复7个算子文档示例代码静态检查问题 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复7个算子文档示例代码静态检查问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5901 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了: aclnnHardsigmoid&aclnnInplaceHardsigmoid.md aclnnLogSoftmax.md aclnnSeluBackward.md aclnnSigmoid&aclnnInplaceSigmoid.md(activation) aclnnSigmoid&aclnnInplaceSigmoid.md(experimental) aclnnSwiGluGrad.md aclnnGroupNormSilu.md aclnnGroupNormSiluV2.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10472 | 4 天前 | |
修改aclnnThreshold文档中对threshold、value和out参数的数据类型表述 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !9971 merge dev_0907 into master 修改aclnnThreshold文档中对threshold、value和out参数的数据类型表述 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改aclnnThreshold文档中对threshold、value和out参数的数据类型表述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5626 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9971 | 14 天前 | |
修改threshold_grad_v2_d资料 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !10678 merge master into master 修改threshold_grad_v2_d资料 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改threshold_grad_v2_d资料 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5958 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了aclnnThresholdBackward.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10678 | 3 天前 | |
重命名ThresholdCompileInfo为V2后缀 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !9443 merge oom_t8 into master 重命名ThresholdCompileInfo为V2后缀 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 重命名threshold_v2算子tiling中的ThresholdCompileInfo为V2后缀 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5293 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:结构体改名,防止重名风险 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9443 | 24 天前 | |
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: !364 merge license4 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!364 | 9 个月前 | |
refactor(swiglu_group_grad): 迁移至 activation 目录 Co-authored-by: ZhouChuping<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !9329 merge refactor/swiglu-group-grad-to-activation into master refactor(swiglu_group_grad): 迁移至 activation 目录 Created-by: qq_52056150 Commit-by: ZhouChuping Merged-by: cann-robot Description: ## 描述 迁移swiglu_group_grad至 activation 目录 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5285 ## 测试 本地进行了白盒、门槛用例的验证,共200条用例无功能性问题,线上进行了david冒烟无异常。 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新路径 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移算子至新目录 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9329 | 24 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 12 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 11 天前 | ||
| 4 天前 | ||
| 2 个月前 | ||
| 3 天前 | ||
| 1 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 7 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 12 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 9 天前 | ||
| 6 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 7 天前 | ||
| 9 天前 | ||
| 21 天前 | ||
| 25 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 3 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 3 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 1 天前 | ||
| 9 天前 | ||
| 1 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 9 天前 | ||
| 1 天前 | ||
| 9 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 1 天前 | ||
| 7 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 14 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 6 天前 | ||
| 12 天前 | ||
| 4 天前 | ||
| 12 天前 | ||
| 4 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 25 天前 | ||
| 25 天前 | ||
| 3 天前 | ||
| 1 天前 | ||
| 7 天前 | ||
| 1 天前 | ||
| 3 天前 | ||
| 4 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 9 天前 | ||
| 3 天前 | ||
| 1 天前 | ||
| 12 天前 | ||
| 7 天前 | ||
| 1 天前 | ||
| 4 天前 | ||
| 3 天前 | ||
| 5 天前 | ||
| 1 天前 | ||
| 13 天前 | ||
| 1 天前 | ||
| 4 天前 | ||
| 14 天前 | ||
| 3 天前 | ||
| 24 天前 | ||
| 9 个月前 | ||
| 24 天前 |