Closed
Description
The following ops are using ir.FallbackKernel
via make_fallback()
in lowering.py and appear in benchmarks. We should rewrite them to use decomps or lowerings.
- Add decomp/lowering: aten.as_strided_scatter #93650
- aten.grid_sampler_2d_backward (higher priority)
- aten.upsample_bilinear2d_backward (higher priority)
- aten._adaptive_avg_pool2d_backward
- aten.upsample_bicubic2d_backward
- aten._fused_moving_avg_obs_fq_helper
- aten.upsample_nearest3d (needed for FAIR model)
- aten.avg_pool3d (needed for FAIR model)
- aten.bucketize (needed for internal model) - not targeting for codegen, do a fallback
- aten.prod (needed for research model) - not targeting for codegen, do a fallback
Might not be possible (in a performant way), but currently use fallbacks:
- aten.convolution_backward (might need to hold of on this if perf doesn't match)
- aten._cudnn_rnn (might need to hold of on this if perf doesn't match) - not targeting for codegen, do a fallback
- aten._cudnn_rnn_backward (might need to hold of on this if perf doesn't match) - not targeting for codegen, do a fallback
- aten._embedding_bag (may have a template internally) (Attempted with [No CI] Decomp for _embedding_bag #84235, but it's very hard to make it performant and inductor-friendly)
- [inductor] Lower aten.cumsum #93631 not targeting for codegen, do a fallback
- torchvision.roi_align (need to sort of decomps for domain libs)
Done:
- aten._adaptive_avg_pool2d
- aten.nll_loss_forward (PR)
- aten.grid_sampler_2d (could use the version from here)
- aten.upsample_bilinear2d Add decomposition for
aten.upsample_bilinear2d.vec
#80964 - aten.reflection_pad2d_backward (higher priority)
- aten.native_batch_norm_backward (move aten.native_batch_norm_backward decomposition to core #81522)
- aten.avg_pool2d_backward
- aten.expand_as
- aten.glu_backward (Added glu_backward decomp #78919)
- aten.masked_fill_
- aten.max_pool2d_with_indices_backward
- aten.select_scatter
- aten.upsample_nearest2d_backward
- aten.baddbmm
- aten.log1p
- aten.bernoulli_
- aten.conj_physical
- [inductor] Lower aten.index_add_/aten.index_add torchdynamo#885
- aten.im2col_backward
- aten.native_group_norm_backward ([Prim] Implement group_norm_backward #84037)
- aten.im2col (Decomp for aten.im2col #84303)
- aten.binary_cross_entropy_with_logits (needed for internal model)
- aten.upsample_bicubic2d (adds nn.Crop1d, nn.Crop2d, nn.Crop3d, see #1331 #1349)
- aten.unfold Add refs for torch.unfold and a decomposition for its backward. #85629
- aten.unfold_backward Add refs for torch.unfold and a decomposition for its backward. #85629
- aten.col2im Implement col2im decomposition and fix im2col and add a few preconditions #85541
- aten.mse_loss_backward (higher priority)
- aten.softplus (needed for research model)
- aten.softplus_backward (needed for research model)
cc @ezyang @msaroufim @wconstab @bdhirsh @anijain2305 @zou3519 @voznesenskym @penguinwu @EikanWang @jgong5 @Guobing-Chen @XiaobingSuper @zhuhaozhe @blzheng @wenzhe-nrv @jiayisunx @peterbell10 @ipiszy @yf225 @chenyang78 @kadeng @muchulee8 @aakhundov @ColinPeppler @soumith @ngimel