| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 18 天前 | |
docs: 更新Shrink/DataFormatDimMap/ActULQClampGrad README产品支持情况 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !9343 merge docs/heaviside-op-api-support into master docs: 更新Shrink/DataFormatDimMap/ActULQClampGrad README产品支持情况 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Shrink/DataFormatDimMap/ActULQClampGrad README产品支持情况与实际支持情况不符合 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5255 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9343 | 1 个月前 | |
acts_ulq算子readme修改 Co-authored-by: h1234515<huangzhiyuan21@huawei.com> # message auto-generated for no-merge-commit merge: !9212 merge acts_ulq_readme into master acts_ulq算子readme修改 Created-by: h1234515 Commit-by: h1234515 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修正 ActsUlq 算子 README 中关于 clamp_min/clamp_max 与 x shape 约束的描述。 原 README 将 clamp_min/clamp_max 描述为需要与 x 满足 broadcast 关系的张量、y 的 shape 为三者 broadcast 后的结果,与实际实现不符。实际实现中 clamp_min/clamp_max 为标量(shape 必须为 1),y 的 shape 与 x 一致,不存在 broadcast。本次按真实行为更正文档,避免误导用户。 具体改动: - 参数说明 x:删除"shape 需要与 clamp_min、clamp_max 满足 broadcast 关系",改为"shape 维度支持 0-8 维"。 - 参数说明 y:shape 由"x、clamp_min、clamp_max broadcast 后的结果 shape"改为"与 x 一致"。 - 约束说明:由"x、clamp_min、clamp_max 的 shape 需要满足 broadcast 关系"改为"clamp_min、clamp_max 的 shape 必须为 1(标量),x 的 shape 维度支持 0-8 维"。 - 同步更新 example(test_geir_acts_ulq.cpp)golden 注释:由"broadcast to all elements"改为"shape must be 1"。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5187 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9212 | 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 | 18 天前 | |
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 | 17 天前 | |
修复编译问题 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10375 merge master into master 修复编译问题 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 修改350编译问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5840 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10375 | 13 天前 | |
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 | 12 天前 | |
算子插件迁移 Co-authored-by: welt_lester<songlizhe1@h-partners.com> Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !8474 merge master into master 算子插件迁移 Created-by: welt_lester Commit-by: x00842564;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4279,将adaptive_avg_pool2d、adaptive_max_pool2d、ascend_anti_quant、ascend_dequant、ascend_quant、batch_mat_mul_v3、batch_norm、celu_v2、instance_norm_v3、ascend_quant、log_softmax_v2、mat_mul_v3、unique_with_counts_and_sorting这13个算子对应的插件从common\src\framework迁出到各自算子目录新建的\framework目录下。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的插件不应该放到公共目录 [#4279](https://gitcode.com/cann/ops-nn/issues/4279) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子插件归属迁移,落实 #4279 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8474 | 1 个月前 | |
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 | 17 天前 | |
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 | 17 天前 | |
[CANNBot]950新增ascend_requant算子 Co-authored-by: h1234515<huangzhiyuan21@huawei.com> # message auto-generated for no-merge-commit merge: !8926 merge br_ascend_requant into master [CANNBot]950新增ascend_requant算子 Created-by: h1234515 Commit-by: h1234515 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ascendRequant 是 INT8 静态量化推理链路中的反量化再量化算子,将上游 Conv/MatMul 在 INT8 权重下产生的 INT32 累加结果,按反量化缩放因子重新量化回 INT8,作为下一层 INT8 计算的输入。原实现为 canndev 仓的 TBE builtin 算子,随 Ascend 950 新硬件上线,需基于 AscendC 在 arch35 上重新实现,使该算子在 ascend950 上可用。 计算公式: y = SaturateInt8(RoundToNearestEven(x * scale)) 其中 scale 由 req_scale(UINT64 DeqScale 编码)解码得到,结果饱和到 [-128, 127];当 relu_flag=true 时再执行 y = max(y, 0)。 ### 数据类型 / 格式 - x:INT32,ND - req_scale:UINT64,ND - y:INT8,ND - relu_flag:可选 BOOL 属性,默认 false ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5042 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟,ttk测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quant/ascend_requant/README.md docs/zh/op_list.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8926 | 1 个月前 | |
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 | 15 天前 | |
删除多余的头文件引用,修复codecheck问题 Co-authored-by: demoauguste<zhanghao418@huawei.com> # message auto-generated for no-merge-commit merge: !10223 merge master into master 删除多余的头文件引用,修复codecheck问题 Created-by: demoauguste Commit-by: demoauguste Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 删除多余的头文件引用,修复codecheck问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5757 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10223 | 16 天前 | |
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 | 13 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 25 天前 | |
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 | 17 天前 | |
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 | 17 天前 | |
md大模型检测低错修复 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9420 merge master into master md大模型检测低错修复 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> md aidd大模型检测低错修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5254 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> acl*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9420 | 30 天前 | |
dynamic_mx_quant 小尾轴场景性能优化 Co-authored-by: ji-jun1<jijun1@huawei.com> # message auto-generated for no-merge-commit merge: !10030 merge master into master dynamic_mx_quant 小尾轴场景性能优化 Created-by: ji-jun1 Commit-by: ji-jun1 Merged-by: cann-robot Description: ## 描述 -2轴量化,尾轴很小时,当前实现性能比较差,本PR通过多行合并计算的方式提升了性能 ## 关联的Issue #5715 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已通过ST测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10030 | 16 天前 | |
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 | 17 天前 | |
[cleancode] norm类算子C++语言规则告警整改 Co-authored-by: runqi_zhang<zhangrunqi2@huawei.com> # message auto-generated for no-merge-commit merge: !10422 merge fix/cleancode-norm-v3 into master [cleancode] norm类算子C++语言规则告警整改 Created-by: runqi_zhang Commit-by: runqi_zhang Merged-by: cann-robot Description: ## 描述 norm类算子出现C++语言规则告警,对相关代码进行整改。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10422 | 12 天前 | |
docs: 完善 deep_norm、deep_norm_grad、dynamic_quant_update_scatter 算子的约束说明 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !9576 merge deliver/cosine-deepnorm-docs into master docs: 完善 deep_norm、deep_norm_grad、dynamic_quant_update_scatter 算子的约束说明 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 完善三个算子的 README 文档约束说明: - deep_norm/README.md:补充约束说明(x 维度 2-8、dtype 仅 FLOAT32/FLOAT16/BFLOAT16、mean/rstd 固定 FLOAT32、tiling 范围检查、full-load/partial-load 路径切换等)。 - deep_norm_grad/README.md:补充约束说明(dy/x/gx 等 shape 一致、dtype 约束、tiling 溢出检查、small-D 分支需要额外 workspace 等)。 - dynamic_quant_update_scatter/README.md:更新 axis 属性说明(支持负数取值并归一化)、细化约束说明(updates/var_scale/smooth_scales 约束、尾轴 32B 对齐、axis 内层轴要求等)。 ## 关联的Issue 无 ## 测试 文档变更,无需测试。 ## 文档更新 - norm/deep_norm/README.md - norm/deep_norm_grad/README.md - quant/dynamic_quant_update_scatter/README.md ## 类型标签 - [x] 文档更新 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9576 | 27 天前 | |
将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Co-authored-by: m0_71149169<1907825139@qq.com> # message auto-generated for no-merge-commit merge: !9291 merge norm-quant-microapi-to-reg into master 将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Created-by: m0_71149169 Commit-by: m0_71149169 Merged-by: cann-robot Description: ## 描述 MicroAPI → Reg 命名空间迁移: norm,quant CANN 头文件 kernel_macros.h 中存在命名空间别名 namespace MicroAPI = Reg;,MicroAPI 只是 Reg 的别名。为统一命名规范,将 nn 仓所有算子 kernel 代码中的 MicroAPI 替换为 Reg,并通过对比替换前后 binary .o 文件 MD5 验证替换无影响。 覆盖范围 - nn 主仓目录:norm,quant ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5098](https://gitcode.com/cann/ops-nn/issues/5098) ## 测试 验证方法 严格按四步流程,逐算子验证: 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 完全一致。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: norm,quant目录下MicroAPI → Reg 命名空间迁移 See merge request: cann/ops-nn!9291 | 1 个月前 | |
fix(prelu_backward): 按接口文档修正weight/gradWeight的shape校验 Co-authored-by: transformer910<tianye82@h-partners.com> # message auto-generated for no-merge-commit merge: !10395 merge br_prelugrad_checkshape into master fix(prelu_backward): 按接口文档修正weight/gradWeight的shape校验 Created-by: transformer910 Commit-by: transformer910 Merged-by: cann-robot Description: ## 描述 【问题背景】 aclnnPreluBackward 的 CheckShape 校验与接口文档(docs/aclnnPreluBackward.md)不符,存在两类问题: 1. gradWeight 校验错误:weight 元素个数非 1 时,强制要求 gradWeight 为一维 [channelSize], 导致 gradWeight 与 weight 同 shape 的合法场景(文档明确要求"gradWeight的shape与weight的 shape保持一致")被误判为 ACLNN_ERR_PARAM_INVALID。 2. weight 自身形态未校验:仅校验 weight 元素个数等于 self 通道数,未校验形态,导致 weight={2,2} + self={2,4,3,2} 这类文档不允许的输入被静默接受,且后续被 flatten 成 一维送入 kernel 按通道权重计算,产生语义错误的结果。 【修改方案】 op_api/aclnn_prelu_backward.cpp 的 CheckShape 重构 weight 校验逻辑(self > 1 维时): - weight 为 1 维:元素个数必须等于 self 的第 2 维(通道数),如 self (1,2,3) + weight (2,); - weight 为多维:维数必须与 self 相同、第 2 维必须等于通道数、其余维度必须全为 1, 如 self (1,2,3) + weight (1,2,1); - 不满足上述形态时报 ACLNN_ERR_PARAM_INVALID。 gradWeight 校验改为无条件要求 shape 与 weight 保持一致(原 weightNum==1 与非 1 两个 分支的校验合并),与文档约束一致。 执行链路无改动:多维 weight 送 kernel 前仍会 flatten 为一维,输出侧已有 reshape 到 gradWeight shape 的逻辑,不影响计算结果。 【影响范围】 仅影响 aclnnPreluBackward 接口的入参 shape 校验(更严格),不涉及 kernel 变更。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5865 ## 测试 【自测情况】 UT 变更(test_aclnn_prelu_backward.cpp): - 修改 testcase_025:weight (2,2) + self (2,4,3,2) 由 SUCCESS 改为期望 ACLNN_ERR_PARAM_INVALID(原用例与文档约束冲突); - 保留 testcase_034:weight/gradWeight 均为 (1,45000) 的多维同 shape 场景; - 新增 testcase_035:self (1,2,3) + weight (1,2,1) + gradWeight (1,2,1),正向场景; - 新增 testcase_036:self (1,2,3) + weight (2,) + gradWeight (2,),正向场景; - 新增 testcase_037:weight (2,1)(元素个数匹配但形态非法),异常场景; - 新增 testcase_038:weight (1,2,1) + gradWeight (2,)(shape 不一致),异常场景。 运行 l2_prelu_backward_test 全量 38 个用例,全部通过(含精度用例)。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10395 | 12 天前 | |
fix(fake_quant_per_tensor_affine_cachemask): 支持0维(标量)张量输入,修复GetDim(0)越界 Co-authored-by: transformer910<tianye82@h-partners.com> # message auto-generated for no-merge-commit merge: !10206 merge br_fixquantscalar into master fix(fake_quant_per_tensor_affine_cachemask): 支持0维(标量)张量输入,修复GetDim(0)越界 Created-by: transformer910 Commit-by: transformer910 Merged-by: cann-robot Description: ## 描述 ## 问题背景 aclnnFakeQuantPerTensorAffineCachemask 在构造 scale/zeroPoint 的广播 shape 时, 直接取 self 第0维大小: int64_t tensorSize = (int64_t)(selfContiguous->GetViewShape().GetDim(0)); 当 self 为0维(标量)张量时,GetDimNum() 为 0,GetDim(0) 属于越界访问, 导致接口报错/异常,无法支持标量输入(PyTorch 原生 fake_quantize_per_tensor_affine_cachemask 支持标量)。 ## 修改方案 先获取维度数 dimNum,当 dimNum == 0 时 tensorSize 取 1(标量张量元素个数为1), 否则取第0维大小: int64_t dimNum = selfContiguous->GetViewShape().GetDimNum(); int64_t tensorSize = (dimNum == 0) ? (int64_t)1 : (int64_t)(selfContiguous->GetViewShape().GetDim(0)); 保证 scale/zeroPoint 广播到合法的 [1] shape,标量场景正常走 FakeQuantAffineCachemask 计算链路。 ## 影响范围 仅影响 aclnnFakeQuantPerTensorAffineCachemaskGetWorkspaceSize 中 expectShape 的构造逻辑,非0维输入行为不变。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5809 ## 测试 补充0维标量输入的 UT/ST 用例,验证输出和 mask 与期望一致; 回归原有非0维 shape 用例,结果无变化 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10206 | 13 天前 | |
legacy日落-给一些算子增加InferDataTpye和Tiling日志 Co-authored-by: m0_64999461<xiongpan666@outlook.com> # message auto-generated for no-merge-commit merge: !8630 merge ops-dev into master legacy日落-给一些算子增加InferDataTpye和Tiling日志 Created-by: pan_xiong Commit-by: m0_64999461 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> legacy日落-给一些算子增加InferDataTpye、Infershape打印outputshape和Tiling日志 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟,本地通路验证完毕 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 暂无文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [X] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8630 | 1 个月前 | |
legacy日落-给一些算子增加InferDataTpye和Tiling日志 Co-authored-by: m0_64999461<xiongpan666@outlook.com> # message auto-generated for no-merge-commit merge: !8630 merge ops-dev into master legacy日落-给一些算子增加InferDataTpye和Tiling日志 Created-by: pan_xiong Commit-by: m0_64999461 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> legacy日落-给一些算子增加InferDataTpye、Infershape打印outputshape和Tiling日志 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟,本地通路验证完毕 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 暂无文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [X] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8630 | 1 个月前 | |
将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Co-authored-by: m0_71149169<1907825139@qq.com> # message auto-generated for no-merge-commit merge: !9291 merge norm-quant-microapi-to-reg into master 将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Created-by: m0_71149169 Commit-by: m0_71149169 Merged-by: cann-robot Description: ## 描述 MicroAPI → Reg 命名空间迁移: norm,quant CANN 头文件 kernel_macros.h 中存在命名空间别名 namespace MicroAPI = Reg;,MicroAPI 只是 Reg 的别名。为统一命名规范,将 nn 仓所有算子 kernel 代码中的 MicroAPI 替换为 Reg,并通过对比替换前后 binary .o 文件 MD5 验证替换无影响。 覆盖范围 - nn 主仓目录:norm,quant ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5098](https://gitcode.com/cann/ops-nn/issues/5098) ## 测试 验证方法 严格按四步流程,逐算子验证: 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 完全一致。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: norm,quant目录下MicroAPI → Reg 命名空间迁移 See merge request: cann/ops-nn!9291 | 1 个月前 | |
将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Co-authored-by: m0_71149169<1907825139@qq.com> # message auto-generated for no-merge-commit merge: !9291 merge norm-quant-microapi-to-reg into master 将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Created-by: m0_71149169 Commit-by: m0_71149169 Merged-by: cann-robot Description: ## 描述 MicroAPI → Reg 命名空间迁移: norm,quant CANN 头文件 kernel_macros.h 中存在命名空间别名 namespace MicroAPI = Reg;,MicroAPI 只是 Reg 的别名。为统一命名规范,将 nn 仓所有算子 kernel 代码中的 MicroAPI 替换为 Reg,并通过对比替换前后 binary .o 文件 MD5 验证替换无影响。 覆盖范围 - nn 主仓目录:norm,quant ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5098](https://gitcode.com/cann/ops-nn/issues/5098) ## 测试 验证方法 严格按四步流程,逐算子验证: 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 完全一致。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: norm,quant目录下MicroAPI → Reg 命名空间迁移 See merge request: cann/ops-nn!9291 | 1 个月前 | |
将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Co-authored-by: m0_71149169<1907825139@qq.com> # message auto-generated for no-merge-commit merge: !9291 merge norm-quant-microapi-to-reg into master 将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Created-by: m0_71149169 Commit-by: m0_71149169 Merged-by: cann-robot Description: ## 描述 MicroAPI → Reg 命名空间迁移: norm,quant CANN 头文件 kernel_macros.h 中存在命名空间别名 namespace MicroAPI = Reg;,MicroAPI 只是 Reg 的别名。为统一命名规范,将 nn 仓所有算子 kernel 代码中的 MicroAPI 替换为 Reg,并通过对比替换前后 binary .o 文件 MD5 验证替换无影响。 覆盖范围 - nn 主仓目录:norm,quant ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5098](https://gitcode.com/cann/ops-nn/issues/5098) ## 测试 验证方法 严格按四步流程,逐算子验证: 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 完全一致。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: norm,quant目录下MicroAPI → Reg 命名空间迁移 See merge request: cann/ops-nn!9291 | 1 个月前 | |
将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Co-authored-by: m0_71149169<1907825139@qq.com> # message auto-generated for no-merge-commit merge: !9291 merge norm-quant-microapi-to-reg into master 将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Created-by: m0_71149169 Commit-by: m0_71149169 Merged-by: cann-robot Description: ## 描述 MicroAPI → Reg 命名空间迁移: norm,quant CANN 头文件 kernel_macros.h 中存在命名空间别名 namespace MicroAPI = Reg;,MicroAPI 只是 Reg 的别名。为统一命名规范,将 nn 仓所有算子 kernel 代码中的 MicroAPI 替换为 Reg,并通过对比替换前后 binary .o 文件 MD5 验证替换无影响。 覆盖范围 - nn 主仓目录:norm,quant ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5098](https://gitcode.com/cann/ops-nn/issues/5098) ## 测试 验证方法 严格按四步流程,逐算子验证: 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 完全一致。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: norm,quant目录下MicroAPI → Reg 命名空间迁移 See merge request: cann/ops-nn!9291 | 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 | 18 天前 | |
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 | 17 天前 | |
fixCIWarning Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !10460 merge fixGoldenGeir into master fixCIWarning Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 本次提交( e11f02e57c1c76e628aad3485440dd3532e158e1)修复 GroupedDynamicMxQuantV2 中 dstTypeMax 浮点数直接判等触发的 G.EXP.27-CPP“使用恰当的基本类型作为操作符的操作数”告警。 - 新增 IsDoubleZero,通过 std::fpclassify(value) == FP_ZERO 判断精确零值; - 将 FLOAT4_E2M1、FLOAT4_E1M2 和 FLOAT8 参数校验中的三处 dstTypeMax == 0.0 替换为 IsDoubleZero(dstTypeMax); - 保持原接口语义,仅接受 +0.0 和 -0.0,不会将接近零的非零 double 值误判为默认值; - 补充 DBL_EPSILON 非零输入校验失败的 OP API 回归用例,防止后续改为 epsilon 近似比较而放宽参数范围。 ## 关联的Issue 暂无关联 Issue。 ## 测试 - 执行 SKIP=oat-check pre-commit run --files <本次两个修改文件>,基础文件检查、 clang-format 和 codespell 均通过; - OAT 增量扫描覆盖本次两个修改文件,非法文件类型和 License 头问题均为 0; - 执行 bash build.sh -u --opapi --ops=grouped_dynamic_mx_quant --ut_mode=fast --ccache=off -j8, grouped_dynamic_mx_quant OP API UT 共 34 个用例全部通过; - 新增的 ascend950_grouped_dynamic_mx_quant_v2_fp16_E5M2_tiny_nonzero_fail 回归用例通过; ## 文档更新 本次提交未修改算子使用文档;本文件用于补充本次 PR 的变更说明。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:CI 代码规范告警整改及回归测试补充 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10460 | 9 天前 | |
重命名mxquant相关变量 Co-authored-by: ji-jun1<jijun1@huawei.com> # message auto-generated for no-merge-commit merge: !9285 merge rename_mx into master 重命名mxquant相关变量 Created-by: ji-jun1 Commit-by: ji-jun1 Merged-by: cann-robot Description: ## 描述 重命名mxquant相关变量,包括原型和md中的说明 ## 关联的Issue #5420 ## 测试 已通过st测试 ## 文档更新 更新了 quant/dynamic_mx_quant_with_dual_axis/README.md quant/dynamic_mx_quant_with_dual_axis/aclnnDynamicMxQuantWithDualAxis.md quant/dynamic_mx_quant_with_dual_axis/aclnnDynamicMxQuantWithDualAxisV2.md quant/grouped_dynamic_mx_quant_with_dual_axis/docs/aclnnGroupedDynamicMxQuantWithDualAxis.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9285 | 26 天前 | |
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 | 17 天前 | |
fix: 【工具检测】【mssanitizer】ifmr算子编译发生报错 (#5096) Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !9326 merge fix-issue-5096 into master fix: 【工具检测】【mssanitizer】ifmr算子编译发生报错 (#5096) Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 - 修复摘要:ifmr算子编译发生报错 - 变更文件: - quant/ifmr/examples/test_geir_ifmr.cpp ### Diff 摘要 text quant/ifmr/examples/test_geir_ifmr.cpp | 35 +++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5096 ## 测试 - 测试结论: PASS - bash build.sh --pkg --soc=ascend950 --ops=ifmr --mssanitizer -j16 passed. - bash build.sh --run_example ifmr graph --soc=ascend950 passed after the patch. - git diff --check passed. ## 文档更新 无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 ## 风险和遗留问题 - None. See merge request: cann/ops-nn!9326 | 1 个月前 | |
modify anti_mx_quant & mx_to_block_mx_quant aclnn docs Co-authored-by: pyq17870581669<pengyongqiang5@huawei.com> # message auto-generated for no-merge-commit merge: !9439 merge modify_anti_mx_quant_aclnn_docs into master modify anti_mx_quant & mx_to_block_mx_quant aclnn docs Created-by: pyq17870581669 Commit-by: pyq17870581669 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新AntiMxQuant&MxToBlockMxQuant算子的Aclnn文档 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5287 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了AntiMxQuant和MxToBlockMxQuant算子的Aclnn文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9439 | 30 天前 | |
重命名mxquant相关变量 Co-authored-by: ji-jun1<jijun1@huawei.com> # message auto-generated for no-merge-commit merge: !9285 merge rename_mx into master 重命名mxquant相关变量 Created-by: ji-jun1 Commit-by: ji-jun1 Merged-by: cann-robot Description: ## 描述 重命名mxquant相关变量,包括原型和md中的说明 ## 关联的Issue #5420 ## 测试 已通过st测试 ## 文档更新 更新了 quant/dynamic_mx_quant_with_dual_axis/README.md quant/dynamic_mx_quant_with_dual_axis/aclnnDynamicMxQuantWithDualAxis.md quant/dynamic_mx_quant_with_dual_axis/aclnnDynamicMxQuantWithDualAxisV2.md quant/grouped_dynamic_mx_quant_with_dual_axis/docs/aclnnGroupedDynamicMxQuantWithDualAxis.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9285 | 26 天前 | |
fix(quant_max): roundMode判空返回码改为ACLNN_ERR_PARAM_NULLPTR Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !10231 merge fix/issue-5374-quant-max-roundmode-nullptr into master fix(quant_max): roundMode判空返回码改为ACLNN_ERR_PARAM_NULLPTR Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 修复 aclnnQuantMaxGetWorkspaceSize 中 roundMode 参数判空返回码不符合 CANN 接口规范的问题: - **代码修复**:roundMode 为空指针时返回码从 ACLNN_ERR_PARAM_INVALID(161002)改为 ACLNN_ERR_PARAM_NULLPTR(161001),符合空指针统一返回 ACLNN_ERR_PARAM_NULLPTR 的规范。 - **文档同步**:aclnnQuantMax.md 错误码说明中 ACLNN_ERR_PARAM_NULLPTR 的空指针范围补充 roundMode。 - **UT 同步**:l2_quant_max_roundmode_nullptr 用例断言更新为 ACLNN_ERR_PARAM_NULLPTR。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5374 ## 测试 UT 用例 l2_quant_max_roundmode_nullptr 已同步更新断言,验证返回码为 ACLNN_ERR_PARAM_NULLPTR。 ## 文档更新 - 修改 quant/quant_max/docs/aclnnQuantMax.md:空指针错误说明补充 roundMode ## 类型标签 - [x] Bug修复 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10231 | 13 天前 | |
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 | 15 天前 | |
删除多余的头文件引用,修复codecheck问题 Co-authored-by: demoauguste<zhanghao418@huawei.com> # message auto-generated for no-merge-commit merge: !10223 merge master into master 删除多余的头文件引用,修复codecheck问题 Created-by: demoauguste Commit-by: demoauguste Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 删除多余的头文件引用,修复codecheck问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5757 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10223 | 16 天前 | |
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 | 13 天前 | |
[fix] 补充examples目录下10个示例代码文件缺失的版权声明头 Co-authored-by: tangweiwei<tangweiwei2@huawei.com> # message auto-generated for no-merge-commit merge: !10258 merge fix/example-copyright-header into master [fix] 补充examples目录下10个示例代码文件缺失的版权声明头 Created-by: tangweiwei2 Commit-by: tangweiwei Merged-by: cann-robot Description: ## 描述 检查仓内所有 .cpp/.cc/.h 源文件(排除 experimental 目录)的版权声明情况,发现 examples 目录下 10 个示例代码文件缺失标准版权声明头(Copyright (c) 20xx Huawei Technologies Co., Ltd. ... CANN Open Software License Agreement Version 2.0 ...)。 本 PR 为以下 10 个文件补充版权声明头,版权年份与各算子同目录下其他源文件保持一致: 1. examples/add_example/examples/test_geir_add_example.cpp(2025) 2. index/scatter_mul/examples/test_geir_scatter_mul.cpp(2026) 3. index/scatter_max/examples/test_geir_scatter_max.cpp(2026) 4. index/scatter_min/examples/test_geir_scatter_min.cpp(2026) 5. index/scatter_div/examples/test_geir_scatter_div.cpp(2026) 6. activation/swiglu_group/examples/test_aclnn_swiglu_group.cpp(2026) 7. vfusion/modulate_grad/examples/test_aclnn_modulatebackward.cpp(2025) 8. quant/swiglu_mx_quant/examples/arch35/test_aclnn_swiglu_mx_quant.cpp(2026) 9. quant/swiglu_mx_quant_with_dual_axis/examples/arch35/test_aclnn_swiglu_mx_quant_with_dual_axis.cpp(2026) 10. quant/swiglu_backward_mx_quant_with_dual_axis/examples/arch35/test_aclnn_swiglu_backward_mx_quant_with_dual_axis.cpp(2026) 仅在每个文件头部新增版权声明,不改动任何功能代码。 ## 关联的Issue 关联Issue #5782 ## 测试 - 使用脚本扫描确认修改前 10 个文件无版权声明,修改后均包含标准版权头; - 仅新增文件头部注释,不影响编译与功能,无需运行算子测试。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10258 | 16 天前 | |
fix(swiglu_mx_quant): 修正资料与实现不一致,对齐golden参考实现及binary.json属性顺序 Co-authored-by: chenfeng61<chenfeng61@huawei.com> # message auto-generated for no-merge-commit merge: !10341 merge swiglu_mx_quant_all into master fix(swiglu_mx_quant): 修正资料与实现不一致,对齐golden参考实现及binary.json属性顺序 Created-by: chenfeng61 Commit-by: chenfeng61 Merged-by: cann-robot Description: ## 描述 本 PR 修正 swiglu_mx_quant 算子资料与实际实现不一致的问题,并对齐 golden 参考实现与 binary.json 属性顺序。 ### 改动一:修正算子描述与实现不一致(README.md / docs/aclnnSwigluMxQuant.md / op_graph/swiglu_mx_quant_proto.h) **属性描述由"预留参数"修正为真实语义:** - activate_left:表示对输入的前半部分或后半部分做 SwiGLU 激活,false 时激活后半部分;swiglu_mode=1 时该参数不生效 - swiglu_mode:计算模式 0=传统 SwiGLU、1=奇偶交错变体、2=前后分半 clamp 变体、3=前后分半 sigmoid-clamp 变体,取值范围 [0, 3] - clamp_limit:变体 SwiGLU(swiglu_mode=1/2/3)的 clamp 门限,需大于 0 - glu_alpha / glu_bias:变体 SwiGLU(swiglu_mode=1/2)的 sigmoid 缩放系数 / 线性部分偏置 - group_mode:0=count 模式、1=cumsum 模式,当前仅支持 0 - scale_alg:0=OCP、1=cuBLAS、2=RNE(预留),当前仅支持 0 和 1 - max_dtype_value:预留参数,当前版本未生效 **输入/输出描述修正:** - x:在 activate_dim 指定维度上的尺寸必须是 2 的倍数(原文误写为 dim 维度) - group_index:shape[0] 大于 0 且小于等于 256;aclnn 文档数据类型由仅 INT64 修正为 INT32、INT64;补充 data 取值约束——每个值必须为大于等于 0 的整数,且所有值的和必须小于等于需要量化的 x 的总行数 - y:形状与 x 相同,activate_dim 维度为 x 的一半 - mxscale:每个量化块(32 个元素一组)的缩放因子;scale 成对存放——axis 轴为 y 对应轴除以 32 向上取整后按偶数对齐,最后一维固定为 2 存放相邻两个量化块的 scale;当 axis=-2 且 group_index 存在时,axis 轴 shape 为 y 对应轴值整除 64 再加 group_num **约束修正与补充:** - 修正:activate_dim 为非尾轴时,swiglu_mode 必须为 0(aclnn 文档原文误写为 0 或 1) - 新增:swiglu_mode 为 2 或 3 时,axis 必须为 -1 - proto.h 中 mxscale shape 推导公式同步修正(块数按偶数对齐成对打包;group_index 且非尾轴时为 act_shape[axis]/64 + group_num) - 新增:group_index 输入 data 约束——每个值必须为大于等于 0 的整数,且所有值的和必须小于等于需要量化的 x 的总行数(README.md 输入表与约束说明、aclnn 文档参数表与约束说明、proto.h 输入描述与 Constraints 三处同步补充;aclnn 文档原文"每个元素需要大于0"同步修正为"大于等于0的整数") ### 改动二:golden 参考实现修正(tests/assets/golden.py) - mxscale 布局修正为成对打包:axis 维为 ceil(n_blocks/2),末维 2 存放相邻两个 32 元素块的 scale,padding 槽位补 0 - E8M0 scale 编码修正:scale_byte = clip(floor(log2(amax)) - emax + 127, 0, 255),全零块输出 scale 字节 0(2^-127) - group_index 场景修正:axis=-2 时每组拥有 ceil(rows_g/64) 个 scale pair 按组紧凑排布(分配 axis 维 = M//64 + groupNum);axis=-1 时 group_index 对 SwiGLU 输出展平后的行做分段 - 头部新增 mxscale layout 说明注释(与 kernel/infershape 对齐) ### 改动三:binary.json 属性顺序对齐(op_host/config/ascend950/swiglu_mx_quant_binary.json) - 16 个 binary 配置项的 attrs 顺序统一调整为与 proto.h 属性声明顺序一致:activate_dim 移至 activate_left 之前,group_mode 移至 glu_bias 之后 - 属性集合与取值不变,纯顺序调整(+144/-144 对称改动) ## 关联的Issue - 关联Issue #5832(https://gitcode.com/cann/ops-nn/issues/5832) ## 测试 - golden.py 为精度比对参考实现,本次将其与 kernel 实际输出布局(mxscale 成对打包、E8M0 编码、group_index 打包逻辑)对齐,保障 ST 精度比对基准正确 ## 文档更新 - quant/swiglu_mx_quant/README.md:属性语义、输入输出描述及约束修正 - quant/swiglu_mx_quant/docs/aclnnSwigluMxQuant.md:group_index 数据类型、mxscaleOut shape 规则、约束修正 - quant/swiglu_mx_quant/op_graph/swiglu_mx_quant_proto.h:属性语义与 mxscale 推导公式注释同步 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!10341 | 12 天前 | |
[fix] 补充examples目录下10个示例代码文件缺失的版权声明头 Co-authored-by: tangweiwei<tangweiwei2@huawei.com> # message auto-generated for no-merge-commit merge: !10258 merge fix/example-copyright-header into master [fix] 补充examples目录下10个示例代码文件缺失的版权声明头 Created-by: tangweiwei2 Commit-by: tangweiwei Merged-by: cann-robot Description: ## 描述 检查仓内所有 .cpp/.cc/.h 源文件(排除 experimental 目录)的版权声明情况,发现 examples 目录下 10 个示例代码文件缺失标准版权声明头(Copyright (c) 20xx Huawei Technologies Co., Ltd. ... CANN Open Software License Agreement Version 2.0 ...)。 本 PR 为以下 10 个文件补充版权声明头,版权年份与各算子同目录下其他源文件保持一致: 1. examples/add_example/examples/test_geir_add_example.cpp(2025) 2. index/scatter_mul/examples/test_geir_scatter_mul.cpp(2026) 3. index/scatter_max/examples/test_geir_scatter_max.cpp(2026) 4. index/scatter_min/examples/test_geir_scatter_min.cpp(2026) 5. index/scatter_div/examples/test_geir_scatter_div.cpp(2026) 6. activation/swiglu_group/examples/test_aclnn_swiglu_group.cpp(2026) 7. vfusion/modulate_grad/examples/test_aclnn_modulatebackward.cpp(2025) 8. quant/swiglu_mx_quant/examples/arch35/test_aclnn_swiglu_mx_quant.cpp(2026) 9. quant/swiglu_mx_quant_with_dual_axis/examples/arch35/test_aclnn_swiglu_mx_quant_with_dual_axis.cpp(2026) 10. quant/swiglu_backward_mx_quant_with_dual_axis/examples/arch35/test_aclnn_swiglu_backward_mx_quant_with_dual_axis.cpp(2026) 仅在每个文件头部新增版权声明,不改动任何功能代码。 ## 关联的Issue 关联Issue #5782 ## 测试 - 使用脚本扫描确认修改前 10 个文件无版权声明,修改后均包含标准版权头; - 仅新增文件头部注释,不影响编译与功能,无需运行算子测试。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10258 | 16 天前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
Fix misspelled executor parameter in aclnn API doxygen comment. Co-authored-by: void_ptr<baochaojun@huawei.com> # message auto-generated for no-merge-commit merge: !9690 merge pr/fix_issue_5350 into master Fix misspelled executor parameter in aclnn API doxygen comment. Created-by: void_ptr Commit-by: void_ptr Merged-by: cann-robot Description: ## 描述 修复多个两段式 aclnn 接口头文件注释参数名拼写错误 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5350 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9690 | 23 天前 | |
torch_extension API文档新增产品型号标签 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !8233 merge master into master torch_extension API文档新增产品型号标签 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. torchapi_*.md增加产品型号标签注释 2. 中文png改为英文文件名 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4551](https://gitcode.com/cann/ops-nn/issues/4551) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已自验 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> torchapi_*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8233 | 1 个月前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !366 merge license6 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!366 | 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 | 30 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 18 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 18 天前 | ||
| 17 天前 | ||
| 13 天前 | ||
| 12 天前 | ||
| 1 个月前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 16 天前 | ||
| 13 天前 | ||
| 25 天前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 30 天前 | ||
| 16 天前 | ||
| 17 天前 | ||
| 12 天前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 12 天前 | ||
| 13 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 18 天前 | ||
| 17 天前 | ||
| 9 天前 | ||
| 26 天前 | ||
| 17 天前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 26 天前 | ||
| 13 天前 | ||
| 15 天前 | ||
| 16 天前 | ||
| 13 天前 | ||
| 16 天前 | ||
| 12 天前 | ||
| 16 天前 | ||
| 1 个月前 | ||
| 23 天前 | ||
| 1 个月前 | ||
| 9 个月前 | ||
| 30 天前 |