| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
批量修改md中冗余空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6027 merge master into master 批量修改md中冗余空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6027 | 2 个月前 | |
池化算子和applyTopKTopP算子文档资料描述修正 Co-authored-by: chenfeng61<chenfeng61@huawei.com> # message auto-generated for no-merge-commit merge: !2972 merge fix/readme_cleancode into master 池化算子和applyTopKTopP算子文档资料描述修正 Created-by: chenyanbin8 Commit-by: chenfeng61 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 利用AI文档扫描工具对仓内资料进行检查扫描,池化算子和applyTopKTopP算子存在资料描述不正确地方,包含①example示例代码使用printf函数建议显示包含“cstdio”头文件、②example代码中使用错误数据类型创建tensor数据类型错误/未校验、③错别字描述错误、④错误逻辑描述、⑤apply_top_k_top_p_with_sorted算子《README.md》中sorted_indices数据类型描述错误。 具体的错误描述位于issue中,对对应资料错误之处修正。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及功能代码,example示例代码运行成功 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> aclnnAdaptiveAvgPool2d.md、aclnnAdaptiveAvgPool3d.md、aclnnAdaptiveAvgPool2dBackward.md、 aclnnAdaptiveAvgPool3dBackward.md、aclnnAdaptiveMaxPool2d.md、aclnnAdaptiveMaxPool3d.md、 aclnnAdaptiveMaxPool2dBackward.md、aclnnAdaptiveMaxPool2dBackward.md、aclnnAvgPool2d.md、 aclnnAvgPool3d.md、aclnnAvgPool2dBackward.md、aclnnAvgPool3dBackward.md、 aclnnMaxPool2dWithIndicesBackward.md、aclnnMaxPool2dWithMaskBackward.md、aclnnMaxPool3dWithArgmaxBackward.md、 aclnnMaxPool2dWithIndices.md、aclnnMaxPool2dWithMask.md、aclnnMaxPool3dWithArgmax.md、aclnnMaxPool.md、 apply_top_k_top_p_with_sorted算子README.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!2972 | 4 个月前 | |
修改重复代码 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6913 merge 9.1.0_issue3753 into 9.1.0 修改重复代码 Created-by: VoyageZhou Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 修改重复代码 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 3753](https://gitcode.com/cann/ops-nn/issues/3753) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ops/ops-nn/pooling/avg_pool3_d_grad/op_kernel/avg_pool3_d_grad_t_cast.h ops/ops-nn/conv/conv3d_transpose_v2/op_host/conv3d_transpose_v2_infershape.cpp ops/ops-nn/conv/conv3d_backprop_filter_v2/op_kernel/arch32/conv3d_backprop_filter_impl/conv_bp_config_base.h ops/ops-nn/conv/conv3d_backprop_input_v2/op_kernel/arch32/conv3d_backprop_input_impl/conv3d_bp_config_base.h ops/ops-nn/pooling/adaptive_avg_pool3d_grad/op_kernel/arch35/adaptive_avg_pool3d_grad_struct.h ops/ops-nn/pooling/max_pool3d_grad_with_argmax/op_api/max_pool3d_grad_with_argmax.cpp ## 类型标签 <!-- [x] 表示选中 --> - [X] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6913 | 1 个月前 | |
增加算子原型注册:maxpool、maxpoolwithargmaxv1、maxpoolgradwithargmaxv1 Co-authored-by: liuchuangdev<liuchuang51@huawei.com> # message auto-generated for no-merge-commit merge: !4394 merge add_reg_op into master 增加算子原型注册:maxpool、maxpoolwithargmaxv1、maxpoolgradwithargmaxv1 Created-by: liuchuangdev Commit-by: liuchuangdev Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加算子原型注册:maxpool、maxpoolwithargmaxv1、maxpoolgradwithargmaxv1 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#2184](https://gitcode.com/cann/ops-nn/issues/2184) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 功能回归 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4394 | 3 个月前 | |
opt maxpool3dgradwithargmax perf. Co-authored-by: liuchuangdev<liuchuang51@huawei.com> # message auto-generated for no-merge-commit merge: !6893 merge perf/maxpool3dgradwithargmax-optimize-910 into 9.1.0 opt maxpool3dgradwithargmax perf. Created-by: liuchuangdev Commit-by: liuchuangdev Merged-by: cann-robot Description: ## 描述 优化 MaxPool3DGradWithArgmax 算子在 arch35 上的 SIMD 内核性能,主要改动如下: ### 1. DataCopy 优化 - 将原来基于 LoopMode 的多层循环 DataCopy(按 d/h/high 维度分循环搬运)改为单次 DataCopy 整块 D×H×W 平面,减少 DataCopy 调度开销 - 新增 dhwPlaneAligned_ 成员,将 D×H×W 平面对齐到 MAX_DATA_NUM_IN_ONE_BLOCK,使单次 DataCopy 可行 ### 2. 移除 helpBuf_ 辅助缓冲区 - 删除 TBuf<QuePosition::VECCALC> helpBuf_ 及所有 fullLoad 函数的 helpAddr 参数 - 索引计算从 UB 预计算表改为寄存器直接生成(GenInitial3DIndicesFast、GenInitial4DIndicesFast 等),消除 DataCopy 开销 ### 3. 快速除法优化 - 坐标索引生成使用 PrecomputeDiv/DivMagic 快速整数除法替代 MicroAPI::Div - high 维输出索引计算使用 GetUintDivMagicAndShift + FastDivImpl 替代 MicroAPI::Div ### 4. 循环合并 - fullLoadMultipleLineProcessVF2:将 4 个 for highBlockIdx 循环两两合并为 2 个,4 个尾部循环两两合并为 2 个,减少循环开销和重复 offset 计算 - 非全载模板 multipleLineProcessVF2 同步应用循环合并优化 ### 涉及文件 - max_pool3d_grad_with_argmax_simd.h:新增 fast div 工具函数 - max_pool3d_grad_with_argmax_simd_full_load.h:全载模板核心优化 - max_pool3d_grad_with_argmax_simd_impl.h:非全载模板同步优化 - max_pool3d_grad_with_argmax_simd_tiling.cpp:tiling 参数适配 ## 关联的Issue [#3739](https://gitcode.com/cann/ops-nn/issues/3739) ## 测试 主线性能用例测试、门槛用例回归、冒烟测试 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6893 | 1 个月前 | |
use ASCENDC_TPL_TILING_STRUCT_SEL for max_pool3d_grad_with_argmax tiling key registration Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !7378 merge fix/bug-9.1.0 into 9.1.0 use ASCENDC_TPL_TILING_STRUCT_SEL for max_pool3d_grad_with_argmax tiling key registration Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 max_pool3d_grad_with_argmax aclnn接口内存检测时发生oom ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4021 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7378 | 1 个月前 | |
opt maxpool3dgradwithargmax perf. Co-authored-by: liuchuangdev<liuchuang51@huawei.com> # message auto-generated for no-merge-commit merge: !6893 merge perf/maxpool3dgradwithargmax-optimize-910 into 9.1.0 opt maxpool3dgradwithargmax perf. Created-by: liuchuangdev Commit-by: liuchuangdev Merged-by: cann-robot Description: ## 描述 优化 MaxPool3DGradWithArgmax 算子在 arch35 上的 SIMD 内核性能,主要改动如下: ### 1. DataCopy 优化 - 将原来基于 LoopMode 的多层循环 DataCopy(按 d/h/high 维度分循环搬运)改为单次 DataCopy 整块 D×H×W 平面,减少 DataCopy 调度开销 - 新增 dhwPlaneAligned_ 成员,将 D×H×W 平面对齐到 MAX_DATA_NUM_IN_ONE_BLOCK,使单次 DataCopy 可行 ### 2. 移除 helpBuf_ 辅助缓冲区 - 删除 TBuf<QuePosition::VECCALC> helpBuf_ 及所有 fullLoad 函数的 helpAddr 参数 - 索引计算从 UB 预计算表改为寄存器直接生成(GenInitial3DIndicesFast、GenInitial4DIndicesFast 等),消除 DataCopy 开销 ### 3. 快速除法优化 - 坐标索引生成使用 PrecomputeDiv/DivMagic 快速整数除法替代 MicroAPI::Div - high 维输出索引计算使用 GetUintDivMagicAndShift + FastDivImpl 替代 MicroAPI::Div ### 4. 循环合并 - fullLoadMultipleLineProcessVF2:将 4 个 for highBlockIdx 循环两两合并为 2 个,4 个尾部循环两两合并为 2 个,减少循环开销和重复 offset 计算 - 非全载模板 multipleLineProcessVF2 同步应用循环合并优化 ### 涉及文件 - max_pool3d_grad_with_argmax_simd.h:新增 fast div 工具函数 - max_pool3d_grad_with_argmax_simd_full_load.h:全载模板核心优化 - max_pool3d_grad_with_argmax_simd_impl.h:非全载模板同步优化 - max_pool3d_grad_with_argmax_simd_tiling.cpp:tiling 参数适配 ## 关联的Issue [#3739](https://gitcode.com/cann/ops-nn/issues/3739) ## 测试 主线性能用例测试、门槛用例回归、冒烟测试 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6893 | 1 个月前 | |
AddMaxPool3DGrad Co-authored-by: huohuo_wy<wangyan389@huawei.com> # message auto-generated for no-merge-commit merge: !799 merge pooling into master AddMaxPool3DGrad Created-by: huohuo_wangyan Commit-by: huohuo_wy Merged-by: cann-robot Description: ## 描述 1) 新增算子实现:通过两段式接口(获取工作空间与执行)实现了上述反向传播算子,包含严格的参数校验、张量格式转换及智能选择底层计算内核等逻辑。2) 代码重构与优化:对 AdaptiveMaxPool3DGrad 和 MaxPool3DGradWithArgmax 等算子的内核及分片(Tiling)实现进行了深度重构,通过引入公共函数库和模板基类(如 pool_3d_common)大幅消除了代码重复,统一了计算逻辑,并修复了输出维度计算、缓冲区初始化等潜在缺陷。3) 文档与构建完善:全面更新了相关算子的API文档,细化了产品支持列表,补充了结构化参数说明和完整调用示例;简化了多个项目的CMake构建逻辑,提升了构建的清晰度和可维护性。4) 测试增强:修正了测试代码中的路径与变量错误,新增了针对重叠模式等边界场景的单元测试,提升了测试的健壮性和覆盖率。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!799 | 6 个月前 | |
批量修改md中冗余空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6027 merge master into master 批量修改md中冗余空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6027 | 2 个月前 |
MaxPool3DGradWithArgmax
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
算子功能:正向最大池化的反向传播,将梯度回填到每个窗口最大值的坐标处,相同坐标处累加。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行MaxPool3DGradWithArgmax计算的入参,表示正向的输入Tensor。 | FLOAT、FLOAT16、BFLOAT16 | NCDHW |
| grad | 输入 | 待进行MaxPool3DGradWithArgmax计算的入参,表示当前节点的梯度。 | FLOAT、FLOAT16、BFLOAT16 | NCDHW |
| argmax | 输入 | 表示正向输入中最大元素的索引位置。数据格式需要与`x`一致,shape需要与`grad`一致。 | INT32 | NCDHW |
| ksize | 属性 | 表示最大池化的窗口大小。 | INT64 | - |
| strides | 属性 | 表示池化操作的步长。 | INT64 | - |
| pads | 属性 | 表示在输入的D、H、W方向上pads补0的层数。 | INT64 | - |
| dilation | 可选属性 | 表示控制窗口中元素的步幅。 | INT64 | - |
| ceil_mode | 可选属性 | 表示正向最大池化过程中推导的输出的shape是否向上取整。 | BOOL | - |
| y | 输出 | 待进行MaxPool3DGradWithArgmax计算的出参。shape、数据格式需要与`x`一致。 | FLOAT、FLOAT16、BFLOAT16 | NCDHW |
约束说明
无。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_max_pool3d_with_argmax_backward.cpp | 通过aclnnMaxPool3dWithArgmaxBackward接口方式调用MaxPool3DGradWithArgmax算子。 |