| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
feat(aicpu): AICPU built-in整包准入manifest机制 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !11655 merge feat/aicpu-builtin-package-manifest into master feat(aicpu): AICPU built-in整包准入manifest机制 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 为 ops-nn 移植 AICPU built-in 整包准入 manifest 机制: 通过白名单控制 AICPU 算子是否准入 built-in 整包,默认全 OFF(与 ops-math 上线口径一致,算子准入由后续 PR 按需登记 xxx=ON),将"隐式排除"显式化为白名单机制。 **主要改动:** - 新增 cmake/config/aicpu_builtin_package_manifest.cmake:准入清单(AICPU_BUILTIN_PACKAGE_FORCE_ALL 默认 OFF + 空 manifest),在进入算子子目录前 include - cmake/func.cmake 新增 check_aicpu_builtin_pkg_allowed() 门控 helper - 23 个 AICPU 算子 op_kernel_aicpu/CMakeLists.txt 的 op_def 收集与 cust obj 编译包进 if (ENABLE_CUSTOM OR _AICPU_BUILTIN_PKG_ALLOWED) 门控 - gen_norm_symbol() 补 built-in 产出接线:NO_AICPU=OFF && ENABLE_PACKAGE=ON 时生成 aicpu_nn.json + libnn_aicpu_kernels.so(安装至 opp/built-in/op_impl/aicpu/{config,kernel}) - 顺手规范化 elu、adaptive_max_pool2d 的变体版权头(master 遗留问题,OAT 合规要求) **不受 manifest 控制(行为不变):** ENABLE_CUSTOM(custom 包直通)、UT(AddAicpuOpTestCase 与收集逻辑解耦)、host 常量折叠(libopconstant_folding_nn.so) **默认行为无回退:** master 上 gen_norm_symbol() 本无 AICPU 产出调用(收集物无消费者),空 manifest 下整包产物与 master 完全一致 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6515 ## 测试 本地 5 组 configure/build 验证: | 场景 | 结果 | |---|---| | 空 manifest 整包(ENABLE_PACKAGE=ON) | 干净跳过,无 aicpu 产物,与 master 一致 | | elu=ON | aicpu_nn.json 仅含 Elu;libnn_aicpu_kernels.so 仅链接 elu_cust_obj;安装路径正确 | | FORCE_ALL=ON | 23 算子全准入,json 含全部 23 个算子定义 | | ENABLE_CUSTOM=ON | 23 算子全收集,产出 cust_aicpu_kernel.json(→ vendors/custom_nn),与 master 无差异 | | UT(UT_TEST_ALL=ON) | 23 个算子 UT 用例正常创建 | pre-commit 全部通过(codespell、OAT 合规等)。 ## 文档更新 无需文档更新(纯构建配置改动) ## 类型标签 - 🐛 Bug修复 - ✅ ✨ 新特性 - ⚡ 性能优化 - ♻️ 重构 - 🧪 测试 - ✅ 📦 构建/CI - 🔧 配置变更 - 📝 文档更新 - ⬆️ 依赖升级 - 🔒 安全修复 - 🧹 代码清理 - ❓ 其他,请描述: See merge request: cann/ops-nn!11655 | 1 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
maxpool修复内存检查问题 Co-authored-by: Annyqw<yeqianwen2@huawei.com> Co-authored-by: yuhao_<yuhao93@huawei.com> # message auto-generated for no-merge-commit merge: !11379 merge maxpool-master into master maxpool修复内存检查问题 Created-by: yuhao_ Commit-by: Annyqw;yuhao_ Merged-by: cann-robot Description: ## 描述 ### 背景 adaptive_max_pool3d_grad、max_pool3d_grad_with_argmax、max_pool3d_with_argmax_v2 三个算子在内存检查中暴露出两类问题: 1. **UB 缓冲复用时序缺失**:同一块 UB 缓冲在前一轮搬运(MTE2/MTE3)尚未完成时,就被下一轮的向量计算(V)复用;或向量指令结果未写完即被后续指令读取。跨流水之间缺少必要的 SetFlag/WaitFlag 或 PipeBarrier 保护。 2. **向量指令 mask 超出窗口**:indices 为 32bit(int32/float),单条向量指令的 mask 窗口上限为 256B(即 64 个元素)。原实现直接以 ncFactor / addNumCount 作为 mask,窗口大于 64 时越界使用,访问到非法地址。 ### 修改内容 **1. pooling/adaptive_max_pool3d_grad/op_kernel/adaptive_max_pool3d_grad_normal.h** - TransposeBase16M8 转置完成后补 PipeBarrier<PIPE_V>(),保证 argmaxUb 读完再释放/复用。 - CalcBlock 的 woCntIndex 循环补 MTE3_V 事件配对(循环前 SetFlag、每轮 Y 拷出后 SetFlag、循环结束后 WaitFlag),保证 yTransposeBuf / kernelIdxBuf 的「Y 拷出(MTE3)」与「下一轮向量计算(V)」之间不冲突。 **2. pooling/max_pool3d_grad_with_argmax/op_kernel/max_pool3d_grad_with_argmax_normal.h** - TransposeAddrBase16M8 后补 PipeBarrier<PIPE_V>():argmaxUb 之后会被复用为 tmpIndex / tmpGrad,需等转置读完再复用。 - 将 MTE3_V 的 SetFlag/WaitFlag 从循环之后提前到循环之前,循环结束改用 PipeBarrier<PIPE_V>(),使其真正生效。 **3. pooling/max_pool3d_with_argmax_v2/op_kernel/max_pool3d_with_argmax_big_kernel.h** - 修复 Adds 的 mask 超窗口问题:以 repeatTimes = addNumCount / 64 + repeatStride = 256B/block 的 repeat 形式覆盖超出部分,并补充 tail 尾块处理。 **4. pooling/max_pool3d_with_argmax_v2/op_kernel/max_pool3d_with_argmax_v2_no_expand_indices.h** - 新增常量 INDICES_MASK_MAX = 256 / sizeof(int32_t)(= 64)。 - BaseCompute 中 CalNextIdxData 之后、inputQue.AllocTensor / CopyInput 之前补 V_MTE2 事件,保证读取 xLocal 的向量计算完成后才允许 MTE2 覆盖。 - CopyMaxOut 后补 PipeBarrier<PIPE_V>()。 - CopyInputNc/Dx/HxRepeat 三处最内层搬运循环补 V_MTE2 事件;bf16 分支在 DataCopyPad 之后、CastBF16ToF32 之前补 MTE2_V 事件。 - PoolMaxAndIndices 中 Duplicate/Add/Select 的 mask 由 mask 改为 indicesMask = min(mask, INDICES_MASK_MAX);当 mask > indicesMask 时调用 AscendCUtils::SetMask 复位窗口后再执行 32bit 的 Compare;内层循环补 PipeBarrier<PIPE_V>() 保证 indicesLocal 的读写顺序。 - CopyOutDy/Nc/HyRepeat 的 bf16 分支在 CastF32ToBF16 前补 MTE3_V 事件,避免 V 写与 MTE3 读之间的 WAR 冲突。 ### 影响范围 仅涉及上述 3 个算子的 kernel 实现,不改变算子接口、tiling 计算结果与 op_def 注册。 ## 关联的Issue 无 ## 测试 - **精度**:ATK 执行 aclnnMaxPool3dWithArgmax(ST 50 例)、aclnnMaxPool3dWithArgmaxBackward(ST 50 例)、aclnnAdaptiveMaxPool2dBackward(ST 50 例),以及补充的泛化用例两组各 180 例,精度校验通过,无精度劣化。 - **内存检查**:mssanitizer memcheck 复跑,原有内存读写/越界类报错已消除,仅余 VECTOR_MASK_x、FFTS_BASE_ADDR 寄存器未复位类告警(非内存问题)。 - **性能**:ATK e2e / device 改动前后对比(同环境背靠背、同批用例),各用例集整体 e2e 变化在 ±3% 以内;少数长循环大 shape 用例因新增同步存在回退,已定位为同步点位置过前导致 V 与 MTE3/MTE2 流水重叠被打断,正在通过将同步点下沉至缓冲复写处的方式进一步消除,不影响本 PR 的缺陷修复。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11379 | 5 天前 | |
refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10320 merge refactor/arch35-pooling-kernel-dup into master refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.AdaptiveAvgPool2D 模板逻辑收编:将 IS_FIRST、rowCount==2/3 的手工展开实现统一为 IS_FIRST / ROW_NUM 编译期模板,合并行累加、额外列累加及 Kw2 等重复逻辑。 2.AvgPoolV2Grad 向量计算收编:将 NCHW int64 索引路径的主块与尾块计算统一为 MultiLineVF2BlockInt64,并将 NHWC 的 w 整块与尾块计算统一为 MergeWBlock。 3.PoolGrad 公共能力收编:抽取 NCHW 反向公共字段,以及 NHWC merge-HWC、merge-HWC-int64 公共计算逻辑,供 arch35 Kernel 复用。 4.AdaptivePool3D 参数解析收编:统一 Avg/Max parallel pool 的公共参数解析与块切分参数,新增 arch35 专用公共结构,保持原有参数含义和切分行为不变。 5.AdaptiveAvgPool3DGrad Kernel 收编:抽取 NCDHW big/small Kernel 的公共字段及参数解析逻辑,减少不同 Kernel 实现之间的重复代码。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10320 | 30 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
feat(aicpu): AICPU built-in整包准入manifest机制 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !11655 merge feat/aicpu-builtin-package-manifest into master feat(aicpu): AICPU built-in整包准入manifest机制 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 为 ops-nn 移植 AICPU built-in 整包准入 manifest 机制: 通过白名单控制 AICPU 算子是否准入 built-in 整包,默认全 OFF(与 ops-math 上线口径一致,算子准入由后续 PR 按需登记 xxx=ON),将"隐式排除"显式化为白名单机制。 **主要改动:** - 新增 cmake/config/aicpu_builtin_package_manifest.cmake:准入清单(AICPU_BUILTIN_PACKAGE_FORCE_ALL 默认 OFF + 空 manifest),在进入算子子目录前 include - cmake/func.cmake 新增 check_aicpu_builtin_pkg_allowed() 门控 helper - 23 个 AICPU 算子 op_kernel_aicpu/CMakeLists.txt 的 op_def 收集与 cust obj 编译包进 if (ENABLE_CUSTOM OR _AICPU_BUILTIN_PKG_ALLOWED) 门控 - gen_norm_symbol() 补 built-in 产出接线:NO_AICPU=OFF && ENABLE_PACKAGE=ON 时生成 aicpu_nn.json + libnn_aicpu_kernels.so(安装至 opp/built-in/op_impl/aicpu/{config,kernel}) - 顺手规范化 elu、adaptive_max_pool2d 的变体版权头(master 遗留问题,OAT 合规要求) **不受 manifest 控制(行为不变):** ENABLE_CUSTOM(custom 包直通)、UT(AddAicpuOpTestCase 与收集逻辑解耦)、host 常量折叠(libopconstant_folding_nn.so) **默认行为无回退:** master 上 gen_norm_symbol() 本无 AICPU 产出调用(收集物无消费者),空 manifest 下整包产物与 master 完全一致 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6515 ## 测试 本地 5 组 configure/build 验证: | 场景 | 结果 | |---|---| | 空 manifest 整包(ENABLE_PACKAGE=ON) | 干净跳过,无 aicpu 产物,与 master 一致 | | elu=ON | aicpu_nn.json 仅含 Elu;libnn_aicpu_kernels.so 仅链接 elu_cust_obj;安装路径正确 | | FORCE_ALL=ON | 23 算子全准入,json 含全部 23 个算子定义 | | ENABLE_CUSTOM=ON | 23 算子全收集,产出 cust_aicpu_kernel.json(→ vendors/custom_nn),与 master 无差异 | | UT(UT_TEST_ALL=ON) | 23 个算子 UT 用例正常创建 | pre-commit 全部通过(codespell、OAT 合规等)。 ## 文档更新 无需文档更新(纯构建配置改动) ## 类型标签 - 🐛 Bug修复 - ✅ ✨ 新特性 - ⚡ 性能优化 - ♻️ 重构 - 🧪 测试 - ✅ 📦 构建/CI - 🔧 配置变更 - 📝 文档更新 - ⬆️ 依赖升级 - 🔒 安全修复 - 🧹 代码清理 - ❓ 其他,请描述: See merge request: cann/ops-nn!11655 | 1 天前 | |
docs: 修复AvgPool2d与MultiScaleDeformableAttnFunction文档/示例问题 Co-authored-by: yuhao_<yuhao93@huawei.com> # message auto-generated for no-merge-commit merge: !11380 merge docs-master into master docs: 修复AvgPool2d与MultiScaleDeformableAttnFunction文档/示例问题 Created-by: yuhao_ Commit-by: yuhao_ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11380 | 14 天前 | |
docs: 修正AvgPool2dBackward在A2/A3上cubeMathType=1的精度转换类型 Co-authored-by: mufei_L<luomufei1@huawei.com> # message auto-generated for no-merge-commit merge: !11340 merge master into master docs: 修正AvgPool2dBackward在A2/A3上cubeMathType=1的精度转换类型 Created-by: mufei_L Commit-by: mufei_L Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修正AvgPool2dBackward在A2/A3上cubeMathType=1的精度转换类型 A2/A3的ALLOW_FP32_DOWN_PRECISION实际按FLOAT16计算,文档与实现对齐。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5675](https://gitcode.com/cann/ops-nn/issues/5675) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了pooling/avg_pool3_d_grad/docs/aclnnAvgPool2dBackward.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11340 | 15 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 16 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
fix(pooling): 消除 VF scope 内结构体参数访问,修复 Ascend950 VF stack 波动 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !11396 merge fix/pooling-vf-scope-param-struct into master fix(pooling): 消除 VF scope 内结构体参数访问,修复 Ascend950 VF stack 波动 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 - 回退“收编 Ascend950/arch35 Kernel 重复实现”在 pooling 侧引入的结构体参数访问,恢复局部变量推导,消除 -Wcce-compat 告警与 VF stack 上涨; - MaxPoolGradWithArgmaxV3 NCHW int64 索引路径:索引装载细化 + 主循环拆分 VF scope,修复VF stack 爆栈问题(6944B/6176B > 6144B)导致的编译失败。 ## 关联的Issue [#6326](https://gitcode.com/cann/ops-nn/issues/6326) ## 测试 本地复跑不同的数据类型用例组合均通过,-d模式下无爆栈问题,精度均通过,David冒烟无异常 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11396 | 14 天前 | |
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 | 3 个月前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
docs(global_lp_pool): 补充 GlobalLpPool proto 注释 DEPRECATED/EXPERIMENTAL 警告 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !11819 merge fix-global-lp-pool-proto-deprecated into master docs(global_lp_pool): 补充 GlobalLpPool proto 注释 DEPRECATED/EXPERIMENTAL 警告 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 补充 pooling/global_lp_pool/op_graph/global_lp_pool_proto.h 中 GlobalLpPool 算子原型注释,增加如下告警标识,与 common/inc/op_graph/op_nn_proto_extend.h 中同名算子的注释保持一致: * @par Restrictions: * Warning: THIS FUNCTION IS DEPRECATED. * Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. ## 关联的Issue 关联 Issue #6559(Closes #6559) ## 测试 纯注释改动,不涉及算子实现与编译逻辑;已通过仓库 pre-commit 全部检查(trailing-whitespace、end-of-file、clang-format、codespell、OAT 开源合规扫描)。 ## 文档更新 更新了 pooling/global_lp_pool/op_graph/global_lp_pool_proto.h 的算子原型注释。 ## 类型标签 - [x] 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11819 | 2 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
maxpool修复内存检查问题 Co-authored-by: Annyqw<yeqianwen2@huawei.com> Co-authored-by: yuhao_<yuhao93@huawei.com> # message auto-generated for no-merge-commit merge: !11379 merge maxpool-master into master maxpool修复内存检查问题 Created-by: yuhao_ Commit-by: Annyqw;yuhao_ Merged-by: cann-robot Description: ## 描述 ### 背景 adaptive_max_pool3d_grad、max_pool3d_grad_with_argmax、max_pool3d_with_argmax_v2 三个算子在内存检查中暴露出两类问题: 1. **UB 缓冲复用时序缺失**:同一块 UB 缓冲在前一轮搬运(MTE2/MTE3)尚未完成时,就被下一轮的向量计算(V)复用;或向量指令结果未写完即被后续指令读取。跨流水之间缺少必要的 SetFlag/WaitFlag 或 PipeBarrier 保护。 2. **向量指令 mask 超出窗口**:indices 为 32bit(int32/float),单条向量指令的 mask 窗口上限为 256B(即 64 个元素)。原实现直接以 ncFactor / addNumCount 作为 mask,窗口大于 64 时越界使用,访问到非法地址。 ### 修改内容 **1. pooling/adaptive_max_pool3d_grad/op_kernel/adaptive_max_pool3d_grad_normal.h** - TransposeBase16M8 转置完成后补 PipeBarrier<PIPE_V>(),保证 argmaxUb 读完再释放/复用。 - CalcBlock 的 woCntIndex 循环补 MTE3_V 事件配对(循环前 SetFlag、每轮 Y 拷出后 SetFlag、循环结束后 WaitFlag),保证 yTransposeBuf / kernelIdxBuf 的「Y 拷出(MTE3)」与「下一轮向量计算(V)」之间不冲突。 **2. pooling/max_pool3d_grad_with_argmax/op_kernel/max_pool3d_grad_with_argmax_normal.h** - TransposeAddrBase16M8 后补 PipeBarrier<PIPE_V>():argmaxUb 之后会被复用为 tmpIndex / tmpGrad,需等转置读完再复用。 - 将 MTE3_V 的 SetFlag/WaitFlag 从循环之后提前到循环之前,循环结束改用 PipeBarrier<PIPE_V>(),使其真正生效。 **3. pooling/max_pool3d_with_argmax_v2/op_kernel/max_pool3d_with_argmax_big_kernel.h** - 修复 Adds 的 mask 超窗口问题:以 repeatTimes = addNumCount / 64 + repeatStride = 256B/block 的 repeat 形式覆盖超出部分,并补充 tail 尾块处理。 **4. pooling/max_pool3d_with_argmax_v2/op_kernel/max_pool3d_with_argmax_v2_no_expand_indices.h** - 新增常量 INDICES_MASK_MAX = 256 / sizeof(int32_t)(= 64)。 - BaseCompute 中 CalNextIdxData 之后、inputQue.AllocTensor / CopyInput 之前补 V_MTE2 事件,保证读取 xLocal 的向量计算完成后才允许 MTE2 覆盖。 - CopyMaxOut 后补 PipeBarrier<PIPE_V>()。 - CopyInputNc/Dx/HxRepeat 三处最内层搬运循环补 V_MTE2 事件;bf16 分支在 DataCopyPad 之后、CastBF16ToF32 之前补 MTE2_V 事件。 - PoolMaxAndIndices 中 Duplicate/Add/Select 的 mask 由 mask 改为 indicesMask = min(mask, INDICES_MASK_MAX);当 mask > indicesMask 时调用 AscendCUtils::SetMask 复位窗口后再执行 32bit 的 Compare;内层循环补 PipeBarrier<PIPE_V>() 保证 indicesLocal 的读写顺序。 - CopyOutDy/Nc/HyRepeat 的 bf16 分支在 CastF32ToBF16 前补 MTE3_V 事件,避免 V 写与 MTE3 读之间的 WAR 冲突。 ### 影响范围 仅涉及上述 3 个算子的 kernel 实现,不改变算子接口、tiling 计算结果与 op_def 注册。 ## 关联的Issue 无 ## 测试 - **精度**:ATK 执行 aclnnMaxPool3dWithArgmax(ST 50 例)、aclnnMaxPool3dWithArgmaxBackward(ST 50 例)、aclnnAdaptiveMaxPool2dBackward(ST 50 例),以及补充的泛化用例两组各 180 例,精度校验通过,无精度劣化。 - **内存检查**:mssanitizer memcheck 复跑,原有内存读写/越界类报错已消除,仅余 VECTOR_MASK_x、FFTS_BASE_ADDR 寄存器未复位类告警(非内存问题)。 - **性能**:ATK e2e / device 改动前后对比(同环境背靠背、同批用例),各用例集整体 e2e 变化在 ±3% 以内;少数长循环大 shape 用例因新增同步存在回退,已定位为同步点位置过前导致 V 与 MTE3/MTE2 流水重叠被打断,正在通过将同步点下沉至缓冲复写处的方式进一步消除,不影响本 PR 的缺陷修复。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11379 | 5 天前 | |
maxpool修复内存检查问题 Co-authored-by: Annyqw<yeqianwen2@huawei.com> Co-authored-by: yuhao_<yuhao93@huawei.com> # message auto-generated for no-merge-commit merge: !11379 merge maxpool-master into master maxpool修复内存检查问题 Created-by: yuhao_ Commit-by: Annyqw;yuhao_ Merged-by: cann-robot Description: ## 描述 ### 背景 adaptive_max_pool3d_grad、max_pool3d_grad_with_argmax、max_pool3d_with_argmax_v2 三个算子在内存检查中暴露出两类问题: 1. **UB 缓冲复用时序缺失**:同一块 UB 缓冲在前一轮搬运(MTE2/MTE3)尚未完成时,就被下一轮的向量计算(V)复用;或向量指令结果未写完即被后续指令读取。跨流水之间缺少必要的 SetFlag/WaitFlag 或 PipeBarrier 保护。 2. **向量指令 mask 超出窗口**:indices 为 32bit(int32/float),单条向量指令的 mask 窗口上限为 256B(即 64 个元素)。原实现直接以 ncFactor / addNumCount 作为 mask,窗口大于 64 时越界使用,访问到非法地址。 ### 修改内容 **1. pooling/adaptive_max_pool3d_grad/op_kernel/adaptive_max_pool3d_grad_normal.h** - TransposeBase16M8 转置完成后补 PipeBarrier<PIPE_V>(),保证 argmaxUb 读完再释放/复用。 - CalcBlock 的 woCntIndex 循环补 MTE3_V 事件配对(循环前 SetFlag、每轮 Y 拷出后 SetFlag、循环结束后 WaitFlag),保证 yTransposeBuf / kernelIdxBuf 的「Y 拷出(MTE3)」与「下一轮向量计算(V)」之间不冲突。 **2. pooling/max_pool3d_grad_with_argmax/op_kernel/max_pool3d_grad_with_argmax_normal.h** - TransposeAddrBase16M8 后补 PipeBarrier<PIPE_V>():argmaxUb 之后会被复用为 tmpIndex / tmpGrad,需等转置读完再复用。 - 将 MTE3_V 的 SetFlag/WaitFlag 从循环之后提前到循环之前,循环结束改用 PipeBarrier<PIPE_V>(),使其真正生效。 **3. pooling/max_pool3d_with_argmax_v2/op_kernel/max_pool3d_with_argmax_big_kernel.h** - 修复 Adds 的 mask 超窗口问题:以 repeatTimes = addNumCount / 64 + repeatStride = 256B/block 的 repeat 形式覆盖超出部分,并补充 tail 尾块处理。 **4. pooling/max_pool3d_with_argmax_v2/op_kernel/max_pool3d_with_argmax_v2_no_expand_indices.h** - 新增常量 INDICES_MASK_MAX = 256 / sizeof(int32_t)(= 64)。 - BaseCompute 中 CalNextIdxData 之后、inputQue.AllocTensor / CopyInput 之前补 V_MTE2 事件,保证读取 xLocal 的向量计算完成后才允许 MTE2 覆盖。 - CopyMaxOut 后补 PipeBarrier<PIPE_V>()。 - CopyInputNc/Dx/HxRepeat 三处最内层搬运循环补 V_MTE2 事件;bf16 分支在 DataCopyPad 之后、CastBF16ToF32 之前补 MTE2_V 事件。 - PoolMaxAndIndices 中 Duplicate/Add/Select 的 mask 由 mask 改为 indicesMask = min(mask, INDICES_MASK_MAX);当 mask > indicesMask 时调用 AscendCUtils::SetMask 复位窗口后再执行 32bit 的 Compare;内层循环补 PipeBarrier<PIPE_V>() 保证 indicesLocal 的读写顺序。 - CopyOutDy/Nc/HyRepeat 的 bf16 分支在 CastF32ToBF16 前补 MTE3_V 事件,避免 V 写与 MTE3 读之间的 WAR 冲突。 ### 影响范围 仅涉及上述 3 个算子的 kernel 实现,不改变算子接口、tiling 计算结果与 op_def 注册。 ## 关联的Issue 无 ## 测试 - **精度**:ATK 执行 aclnnMaxPool3dWithArgmax(ST 50 例)、aclnnMaxPool3dWithArgmaxBackward(ST 50 例)、aclnnAdaptiveMaxPool2dBackward(ST 50 例),以及补充的泛化用例两组各 180 例,精度校验通过,无精度劣化。 - **内存检查**:mssanitizer memcheck 复跑,原有内存读写/越界类报错已消除,仅余 VECTOR_MASK_x、FFTS_BASE_ADDR 寄存器未复位类告警(非内存问题)。 - **性能**:ATK e2e / device 改动前后对比(同环境背靠背、同批用例),各用例集整体 e2e 变化在 ±3% 以内;少数长循环大 shape 用例因新增同步存在回退,已定位为同步点位置过前导致 V 与 MTE3/MTE2 流水重叠被打断,正在通过将同步点下沉至缓冲复写处的方式进一步消除,不影响本 PR 的缺陷修复。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11379 | 5 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !11282 merge fixUTVC7Coverage into master test(pooling): 补充迁移 pooling 算子 tiling UT 并修复失联测试 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为迁移至 ops-nn 的 pooling 算子补充 op_host tiling UT(ascend950/arch35 模板链路),新增 10 个测试文件共 158 个用例,未修改任何算子源码。 **新增覆盖(按 common 目录):** - adaptive_pool3d_common(61.8% → 94.5%):AdaptiveMaxPool3d 的 para/big_kernel/simt 三模板(优先级 0/1/2)首次正向选中。存量测试未设置平台 version(NpuArch=3510),common 基类 GetShapeAttrsInfo 的 arch 检查将三个模板全部拒绝、落到算子私有模板;新用例补齐平台设置并覆盖 GetAndCheckIndicesDtype 全分支(INT32/INT64/强制升档/非法值)。 - pool_3d_common(26.7% → 83.2%):打通 AvgPool3D arch35 模板链(存量测试 is_regbase=false 走 310P 旧路径),Avg/Max 两算子覆盖 0/10/11/12/13/19 全部注册模板;新增 SAME/VALID padding 校验(CheckOutPutShapeForSame/Valid 此前整体 0 覆盖)、sparse 模式(stride≥2×kernel)、大输入切分(CalcSplitMaxRows/Cols/EnableSplit)、divisor_override、ceil_mode 分支。 - pool_grad_common(98.7% 保持):nchw common 经 max_pool_grad_with_argmax_v3 的 NCHW 用例进一步覆盖。 **其余算子**(max_pool3d_grad、max_pool3d_with_argmax_v2、max_pool_grad_with_argmax(_v3)、max_pool_with_argmax_v3、adaptive_avg_pool2d/3d(_grad)):max_pool3d_grad 从零新建 tiling UT(此前仅有 infershape),其余补充 NCHW 路径、split_w/simt 模板正向选中、穷举搜索与兜底路径等未触发分支。 **顺带修复一处存量测试问题:** - test_adaptive_avg_pool3d_tiling_rebase.cpp 文件名不匹配 CMake glob(test_*_tiling.cpp)导致从未编译执行,重命名为 test_adaptive_avg_pool3d_rebase_tiling.cpp 移入 arch35/ 目录,并修复 gtest 符号冲突、过期 tiling key 期望值(旧编码)、缺失 SetOpType、tiling data 结构体新增 threadNum 字段。 **多 SoC 隔离说明:** 多 SoC 算子(adaptive_avg_pool3d/avg_pool3_d 等)的 arch35 专项用例统一置于 tests/ut/op_host/arch35/ 子目录,非 ascend950 构建的 UT glob 不收集该目录,避免在 Atlas 训练系列 SoC 构建下因 arch35 模板未注册而失败。 **版本兼容说明:** max_pool3d_grad 的 3 个用例(011/012/014)中 TilingKey/BlockDim/Workspace 的具体取值在 CANN 9.0 与 9.3.0 间存在实现差异(key 编码位/BlockDim 算法/Workspace 策略),此类断言放宽为环境无关的语义断言(key>0、blockDim>=1、workspace>=下界),保留 tiling 成功与模板 fallthrough 的验证语义。 无法覆盖代码(死代码/UT 框架限制/极端 shape 代价,如无调用者的 Tiling4AvgPool3DRegBase、metadef 空平台断言路径等)已逐一归类分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6289 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 构建命令:bash build.sh -u --ophost --soc=ascend950 --cov - **本 PR 范围内全部用例通过**(CI ascend950 轮 4209 用例全部 PASSED,含本 PR 全部新增用例) - 覆盖率(lcov,tiling 行覆盖,ascend950 构建): | 目录 | 基线 | 本 PR | |------|------|-------| | adaptive_pool3d_common | 61.8% | 94.5% | | pool_3d_common | 26.7% | 83.2% | | pool_grad_common | 98.7% | 98.7% | | 全局(行/函数) | 78.2% / 82.0% | 89%+ / 92%+ | - pre-commit hooks 全部通过(clang-format、OAT license 检查、codespell) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 pooling 算子 tiling UT 覆盖率(含 1 处存量测试失联修复) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11282 | 15 天前 | |
处理AvgPool3D算子divisorOverride是0和CountIncludePad是true场景下精度失败的问题 Co-authored-by: liu_hp711<liuhongpeng2@h-partners.com> # message auto-generated for no-merge-commit merge: !11604 merge avgpool3d into master 处理AvgPool3D算子divisorOverride是0和CountIncludePad是true场景下精度失败的问题 Created-by: liu_hp711 Commit-by: liu_hp711 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 处理AvgPool3D算子divisorOverride是0和CountIncludePad是true场景下精度失败的问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6443 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ST用例,ATK用例 OK,冒烟用例OK。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11604 | 3 天前 | |
fix(pooling): 消除 VF scope 内结构体参数访问,修复 Ascend950 VF stack 波动 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !11396 merge fix/pooling-vf-scope-param-struct into master fix(pooling): 消除 VF scope 内结构体参数访问,修复 Ascend950 VF stack 波动 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 - 回退“收编 Ascend950/arch35 Kernel 重复实现”在 pooling 侧引入的结构体参数访问,恢复局部变量推导,消除 -Wcce-compat 告警与 VF stack 上涨; - MaxPoolGradWithArgmaxV3 NCHW int64 索引路径:索引装载细化 + 主循环拆分 VF scope,修复VF stack 爆栈问题(6944B/6176B > 6144B)导致的编译失败。 ## 关联的Issue [#6326](https://gitcode.com/cann/ops-nn/issues/6326) ## 测试 本地复跑不同的数据类型用例组合均通过,-d模式下无爆栈问题,精度均通过,David冒烟无异常 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11396 | 14 天前 | |
feat(max_pool3d_grad): implement NDHWC support and optimize NCDHW tiling key Co-authored-by: liuchuangdev<liuchuang51@huawei.com> Co-authored-by: fengjiawei1<fengjiawei5@huawei.com> # message auto-generated for no-merge-commit merge: !9788 merge feat/max_pool3d_grad_optimize into master feat(max_pool3d_grad): implement NDHWC support and optimize NCDHW tiling key Created-by: liuchuangdev Commit-by: fengjiawei1;liuchuangdev Merged-by: cann-robot Description: ## 描述 为 max_pool3d_grad(arch35)新增 **NDHWC 数据格式原生支持**,并重构 **NCDHW 大 kernel**、补齐公共层与测试,同时修复若干语义/健壮性问题。 ### 1. 新增 NDHWC 支持(核心) - **设备 kernel**: - max_pool3d_grad_ndhwc_small_kernel.h / max_pool3d_grad_ndhwc_big_kernel.h:NDHWC 小/大 kernel。 - max_pool3d_grad_ndhwc_impl_gather.h:前向**重算 argmax** 的 gather,按 dhwc/hwc/wc 与 lane 容量做**多级级联降级**(MultiNc/MultiDep/MultiRow/SingleRow + BigC 的 ChunkC)。 - max_pool3d_grad_ndhwc_impl_scatter.h:反向 **Scatter 四级并发策略**(前向产出 argmax → 按梯度 scatter 回输入),含 V_MTE2/MTE3_MTE2 硬事件与阶段池 alias 排空。 - **host tiling**:max_pool3d_grad_ndhwc_small_kernel_tiling.cpp、max_pool3d_grad_ndhwc_big_kernel_tiling.{h,cpp}:NDHWC 的分轴切分(N/C/D/H/W,C 方向 cDim/cAligned 分块)、大小 kernel 阈值、UB 预算与核分配。 - **公共层**:pool_grad_common/.../pool3d_grad_ndhwc_small_kernel_tiling.{h,cpp} 新增 NDHWC 公共 tiling 基类;pool3d_grad_struct_common.h 扩展 Pool3DGradNCDHWTilingData 字段并新增 Pool3DGradNDHWCTilingData。 ### 2. NCDHW 大 kernel 重构 - 前向拷贝改 MultiCopy 多维一次拷、拷贝拆分 MultiRows/SingleRow/WithD;新增 CalcRealIndex3D 三维索引分解;反向基类提取到 impl_scatter.h 供大小 kernel 共用;tiling 侧按对齐装载量与 UB 预算封顶 inputBufferSize、NoSplit 判据改对齐口径防越界、D 维搬运合并 LoopMode 单条、maxCount_ 向量化对齐。 ### 3. 语义与健壮性修复 - SIMT/golden 语义对齐 torch(-inf 空窗丢 grad、NaN 处理、重叠覆盖不累加、bf16 位模式转换); - Mte3Drain 事件方向改 MTE3_MTE2,修复阶段池跨 tile 的 MTE3 读被 MTE2 写复写; - 修正 NDHWC 前向 gather 级联降级条件为内层维度口径、BigC 路径 argmax 坐标与批偏移; - 补回 NCDHW MaxPool3DGradNCDHWTilingHelper::IsMeetUBSize 定义,修复运行期 undefined symbol(vtable 缺失)。 ### 4. UB 与流水优化(本次联调) - NDHWC 小 kernel:pad 计算缓冲 inputCalcBuff_ 由独立分配改为**复用 forwardBufPool_**,把 UB 让给更大 tile(别名由现有 Mte3Drain→ForwardCopyIn→DeQue 链覆盖,未新增同步); - 删除 Forward() pad 路径一处被后续排空覆盖的**冗余 V_MTE2** 排空; - MAX_INT32 魔法数改用标准库 INT32_MAX 并删除重复定义,向仓库主流写法对齐。 ### 5. 测试 - 新增 NDHWC tiling 单测:test_max_pool3d_grad_ndhwc_tiling.cpp、test_max_pool3d_grad_ndhwc_big_tiling.cpp; - 新增 ST 用例集 tests/st/arch35/ttk_kernel_max_pool3d_grad_st.csv(覆盖 NDHWC/NCDHW、fp16/bf16/fp32、各 padding、边界与特殊值,维度/总量控制在 uint32 内、大值分布到 N/C/D/H/W)。 - 白盒用例、门槛用例、冒烟测试通过 ### 方法说明 NDHWC 与 NCDHW 走各自模板实例化,公共 tiling 逻辑下沉到 pool_grad_common;对外 aclnn/算子接口与语义不变,data_format 新增 NDHWC 分支。 ## 关联的Issue [#6242](https://gitcode.com/cann/ops-nn/issues/6242) ## 测试 - 编译门禁:bash build.sh --soc=ascend950 --ops=max_pool3d_grad 通过(host tiling + device kernel 均编译)。 - 链接检查:nm 确认 libophost_nn.so 无未定义 MaxPool3DGradNCDHWTilingHelper vtable 符号。 - 单测:test_max_pool3d_grad_ndhwc_tiling.cpp / ..._big_tiling.cpp(tiling 结果、核分配/尾块、UB 预算)。 - 系统测试:ttk_kernel_max_pool3d_grad_st.csv,与 numpy/torch golden 对拍(含 -inf/NaN/tie/±inf、pad、tile 边界)。 - 代码规范:pre-commit(clang-format / trailing-whitespace / OAT)通过。 - 待补充:真机/仿真跑特殊值(NaN、NaN 后更大值、多 tie、全 ±inf)验证 NDHWC 与 SIMT 路径 argmax 一致(Reg::Max 的 NaN 语义需实测确认)。 ## 文档更新 - 新增 pooling/max_pool3d_grad/docs/PR_ISSUE_max_pool3d_grad.md(本文件)。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9788 | 15 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 15 天前 | |
[CANNBot]修复PSROIPoolingV2 Golden的Promote float64兼容 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !11830 merge codex/fix-psroi-pooling-v2-golden-promote-fp64-20261013 into master [CANNBot]修复PSROIPoolingV2 Golden的Promote float64兼容 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 修复 PSROIPoolingV2 Golden 在 ops-test-kit Promote 模式下拒绝 float64 输入的问题。 TTK 在 cross_check 精度比较中将原 float32 输入提升为 float64,生成高精度参考值。现有 Golden 的计算核心支持 float64,但入口只允许 float16/float32,因此在生成 Golden 阶段提前抛出 TypeError,导致用例无法进入完整精度比较。 本 PR 仅修改 pooling/psroi_pooling_v2/tests/assets/golden.py: - 读取 TTK 的 golden_mode 元数据,仅在 golden_mode == "Promote" 时接受 float64。 - 保留 x/rois dtype 必须一致的校验,非 Promote 模式仍只允许 float16/float32。 - 保持 Promote 输出为 float64,不降回 float32。 - 更新函数说明和错误信息;不修改数学计算核心、第三方 Torch 计算、精度阈值、kernel 或正式算子的 dtype 支持。 ## 关联的Issue 原始缺陷与既有关联:https://gitcode.com/wangyueting/changwei_hebaojing/issues/23 同仓缺陷跟踪:https://gitcode.com/cann/ops-nn/issues/6578 保留原始缺陷报告的既有平台关联;同仓条目是同一问题的跟踪镜像。本次通过正文补充本仓跟踪链接,未解除旧关联。 ## 测试 - 三份本地 Golden 的公共接口行为测试 36/36 PASS,覆盖原 float16/float32、Promote float64、float64 低位精度不降级、混合/非法 dtype 拒绝、空 batch/rois 以及 Torch provider。 - PR 隔离工作区的 Golden 与验证过的正式 Golden 字节一致;重新执行针对该工作区的 12 项公共接口测试、TTK SpecLoader 的 Promote 调用、Python 语法检查和 git diff --check,全部 PASS。 - 在 Ascend950PR 上实际回归两条原始 GEIR 用例,保留原 Spec cross_check L1 判据;第三方为真实 Torch CPU provider。每条设备执行 3 次,输出 MD5 一致,精度比较均 PASS: | 用例 | 结果 | 精度证据 | | --- | --- | --- | | PSROIPoolingV2_L0_accuracy_perf_c_s_002 | PASS | float64 Golden / float32 设备输出;最大绝对误差 7.947285973752827e-08;无 NaN/Inf | | PSROIPoolingV2_L0_accuracy_perf_c_s_008 | PASS | 输出 shape (9186,1,127,127);Golden 与设备输出均为 148160994 个 +Inf,0 NaN、0 -Inf | 测试边界:仅回归上述两条 GEIR 用例,未运行全量。三方仅验证 Torch CPU 功能,未验证 GPU 三方性能,本轮没有可报告的 CST kernel 耗时。原用例内容、精度判据/阈值、kernel 和 OPP 包均未修改;C++ 实现未改,本轮无需重新编译 kernel,也不宣称远端 CI 已通过。 ## 文档更新 仅更新 Golden 函数内的 Promote dtype 说明及错误信息,无 README 或其他文档改动。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11830 | 1 天前 | |
修复ROIPooling golden三方不相等scale场景走了CPU的问题 Co-authored-by: m0_46386992<wanghongbin19@huawei.com> # message auto-generated for no-merge-commit merge: !11367 merge ROIPooling_golden_fix2 into master 修复ROIPooling golden三方不相等scale场景走了CPU的问题 Created-by: m0_46386992 Commit-by: m0_46386992 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ROIPooling golden的三方实现,在非相等scale路径下会走到CPU实现中;因此修改golden,非相等scale路径下三方使用gpu上的小算子拼接形式完成。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6300 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 本地测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11367 | 14 天前 | |
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: !318 merge license2 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!318 | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 1 天前 | ||
| 15 天前 | ||
| 5 天前 | ||
| 30 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 1 天前 | ||
| 14 天前 | ||
| 15 天前 | ||
| 16 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 14 天前 | ||
| 3 个月前 | ||
| 15 天前 | ||
| 2 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 3 天前 | ||
| 14 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 1 天前 | ||
| 14 天前 | ||
| 10 个月前 |