Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
为AvgPoolV2Grad新增了对Ascend 35架构上NHWC数据格式的完整支持与性能优化。 主要解决了两个核心问题: 一是算子原先不支持SIMD NHWC格式,限制了其在特定硬件上的应用场景; 二是通过实现新的Tiling策略和计算内核,优化了NHWC格式下的内存访问与并行计算效率,以解决潜在的性能瓶颈。 此外,PR还修复了原有NCHW实现中一处错误信息打印错误,并优化了全局池化模式下的校验逻辑顺序。
NA
平均池化(Average Pooling)是卷积神经网络(CNN)中常用的一种技术,是一种通过对局部接受域内所有值求均值实现特征降维的池化方法。以下是关于平均池化的详细解释:
定义与工作原理:其本质为减少特征提取过程中邻域受限导致的估计值方差,常用于保留图像背景信息。具体来说,它类似于一个滑动窗口在输入特征图上滑动,对于每个局部区域,平均池化选择该区域内的平均数值作为输出结果。例如,对于一个2x2的池化核,如果输入是[[1,2], [3,4]],那么平均池化的输出就是2.5,因为2.5是这个区域内的平均值。
优点:平均池化有助于保持全局信息,而自适应平均池化则允许在任何输入尺寸下保持固定大小的输出。
参数:平均池化操作通常包括两个主要参数:池化窗口大小(池化核大小)和步幅(stride)。例如,常用的S=2,f=2的效果是特征图高度、宽度减半,通道数不变。
1)一个通用的Tiling策略类(AvgPoolV2GradCommonNHWCTiling),用于动态计算最优的数据切分和核心分配策略,以适配不同输入形状并充分利用硬件资源; 2)一个高度模板化的高性能计算内核(AvgPoolV2GradKernelNHWC),利用AscendC微API进行向量化计算,支持多种数据类型和配置; 3)在主调度逻辑中新增分支,以调用新的NHWC内核。 同时,修复了NCHW实现中w维度形状值打印错误的问题,并调整了全局池化模式下梯度形状检查的顺序,确保逻辑正确性。
/assign
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
为AvgPoolV2Grad新增了对Ascend 35架构上NHWC数据格式的完整支持与性能优化。
主要解决了两个核心问题:
一是算子原先不支持SIMD NHWC格式,限制了其在特定硬件上的应用场景;
二是通过实现新的Tiling策略和计算内核,优化了NHWC格式下的内存访问与并行计算效率,以解决潜在的性能瓶颈。
此外,PR还修复了原有NCHW实现中一处错误信息打印错误,并优化了全局池化模式下的校验逻辑顺序。
Origin(信息来源)
NA
Benefit / Necessity (价值/作用)
平均池化(Average Pooling)是卷积神经网络(CNN)中常用的一种技术,是一种通过对局部接受域内所有值求均值实现特征降维的池化方法。以下是关于平均池化的详细解释:
定义与工作原理:其本质为减少特征提取过程中邻域受限导致的估计值方差,常用于保留图像背景信息。具体来说,它类似于一个滑动窗口在输入特征图上滑动,对于每个局部区域,平均池化选择该区域内的平均数值作为输出结果。例如,对于一个2x2的池化核,如果输入是[[1,2], [3,4]],那么平均池化的输出就是2.5,因为2.5是这个区域内的平均值。
优点:平均池化有助于保持全局信息,而自适应平均池化则允许在任何输入尺寸下保持固定大小的输出。
参数:平均池化操作通常包括两个主要参数:池化窗口大小(池化核大小)和步幅(stride)。例如,常用的S=2,f=2的效果是特征图高度、宽度减半,通道数不变。
Design(设计方案)
1)一个通用的Tiling策略类(AvgPoolV2GradCommonNHWCTiling),用于动态计算最优的数据切分和核心分配策略,以适配不同输入形状并充分利用硬件资源;
2)一个高度模板化的高性能计算内核(AvgPoolV2GradKernelNHWC),利用AscendC微API进行向量化计算,支持多种数据类型和配置;
3)在主调度逻辑中新增分支,以调用新的NHWC内核。
同时,修复了NCHW实现中w维度形状值打印错误的问题,并调整了全局池化模式下梯度形状检查的顺序,确保逻辑正确性。