Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
avg_pool3_d_grad(AvgPool3DGrad,3D 平均池化反向)此前仅有 910B 上的 TBE 通路实现,arch35(Ascend 950)平台无对应实现,无法在 torch 图模式 / aclnn 接口下使用。
avg_pool3_d_grad
vector
AvgPool3DGradTilingBase
orig_input_shape
AvgPool3DGradNCDHWTiling
AvgPool3DGradNDHWCTiling
AvgPool3DGradSimtTiling
inputData
SetScheduleMode(1)
GetTilingData
OP_CHECK_NULL_WITH_CONTEXT
avg_pool3d_backward
input < kernel
input image smaller than kernel size
IsUnknownRank -> SetUnknownRank
torch.ops.cann_ops_nn.avg_pool3d_backward
graph_convert_avg_pool3_d_grad.py
pooling/avg_pool3_d_grad/op_host/arch35/avg_pool3_d_grad_tiling_base.{h,cpp}
pooling/avg_pool3_d_grad/op_host/arch35/avg_pool3_d_grad_{ncdhw,ndhwc,simt}_tiling.{h,cpp}
pooling/avg_pool3_d_grad/op_kernel/arch35/avg_pool3_d_grad_{base,ncdhw_kernel,ndhwc_kernel,simt,tiling_data,tiling_key}.h
pooling/avg_pool3_d_grad/op_host/avg_pool3_d_grad_infershape.cpp
pooling/avg_pool3_d_grad/tests/assets/golden.py
pooling/avg_pool3_d_grad/torch_extension/
docs/zh/menu_torch_api.md
docs/zh/torch_api_list.md
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
avg_pool3_d_grad(AvgPool3DGrad,3D 平均池化反向)此前仅有 910B 上的 TBE 通路实现,arch35(Ascend 950)平台无对应实现,无法在 torch 图模式 / aclnn 接口下使用。Origin(信息来源)
vector
Benefit / Necessity (价值/作用)
Design(设计方案)
改动内容
1. Tiling(op_host/arch35/)
AvgPool3DGradTilingBase公共基类:入参(dtype/shape/format)、属性(kernel/stride/pad/ceil_mode/count_include_pad/divisor_override)解析与校验,orig_input_shape与 grads/output 多布局(NCDHW/NDHWC、4D/5D、N*C 合并)对齐,ceil_mode 输出尺寸推导。AvgPool3DGradNCDHWTiling:channel-first 布局的 UB 切分(对齐轴 / 非对齐轴动态调整);AvgPool3DGradNDHWCTiling:channel-last 布局的 UB 切分;AvgPool3DGradSimtTiling:全重叠小 shape 场景的 SIMT 兜底方案。inputData的自由函数收纳为基类私有成员;SetScheduleMode(1)(kernel 无跨核同步);GetTilingData后补OP_CHECK_NULL_WITH_CONTEXT判空(4 处)。2. Kernel(op_kernel/arch35/)
3. golden(tests/assets/golden.py)
avg_pool3d_backward在任一空间维input < kernel时抛input image smaller than kernel size(padding 不计入)。实现预检:命中即改走 numpy,避免测试中断;2D golden 保持不变。4. infershape
IsUnknownRank -> SetUnknownRank分支,对齐 max_pool_grad / avg_pool_v2_grad 等同族算子。5. torch_extension
torch.ops.cann_ops_nn.avg_pool3d_backward(schema/meta)+graph_convert_avg_pool3_d_grad.py,支撑 torch.compile 图模式执行。涉及文件(主要)
pooling/avg_pool3_d_grad/op_host/arch35/avg_pool3_d_grad_tiling_base.{h,cpp}pooling/avg_pool3_d_grad/op_host/arch35/avg_pool3_d_grad_{ncdhw,ndhwc,simt}_tiling.{h,cpp}pooling/avg_pool3_d_grad/op_kernel/arch35/avg_pool3_d_grad_{base,ncdhw_kernel,ndhwc_kernel,simt,tiling_data,tiling_key}.hpooling/avg_pool3_d_grad/op_host/avg_pool3_d_grad_infershape.cpppooling/avg_pool3_d_grad/tests/assets/golden.pypooling/avg_pool3_d_grad/torch_extension/docs/zh/menu_torch_api.md、docs/zh/torch_api_list.md