tentative fix for adaptiveavgpool gradient computation (#60630)

Summary:
Fixes https://github.com/pytorch/pytorch/issues/60524

Pull Request resolved: https://github.com/pytorch/pytorch/pull/60630

Reviewed By: jbschlosser

Differential Revision: D29374257

Pulled By: ngimel

fbshipit-source-id: be05f0ceb53e6f0f0a59a83b710dafde469d4e8a
diff --git a/aten/src/ATen/native/cuda/AdaptiveAveragePooling3d.cu b/aten/src/ATen/native/cuda/AdaptiveAveragePooling3d.cu
index 21d8d2c..abc98d0 100644
--- a/aten/src/ATen/native/cuda/AdaptiveAveragePooling3d.cu
+++ b/aten/src/ATen/native/cuda/AdaptiveAveragePooling3d.cu
@@ -194,7 +194,7 @@
           for (ow = ostartW; ow < oendW; ++ow) {
             int kW = end_index(ow, osizeW, isizeW) - start_index(ow, osizeW, isizeW);
             const accscalar_t divide_factor = kW * kH * kT;
-            accscalar_t grad_delta = static_cast<accscalar_t>(ptr_gradOutput[oh*isizeW + ow] / divide_factor);
+            accscalar_t grad_delta = static_cast<accscalar_t>(ptr_gradOutput[oh*osizeW + ow] / divide_factor);
             *ptr_gradInput += static_cast<scalar_t>(grad_delta);
           }
         }
diff --git a/torch/testing/_internal/common_nn.py b/torch/testing/_internal/common_nn.py
index 2acd6ae..0e8a7f0 100644
--- a/torch/testing/_internal/common_nn.py
+++ b/torch/testing/_internal/common_nn.py
@@ -3236,6 +3236,13 @@
         desc='tuple_none',
     ),
     dict(
+        module_name='AdaptiveAvgPool3d',
+        constructor_args=((3, 2, 2),),
+        cpp_constructor_args='torch::nn::AdaptiveAvgPool3dOptions({3, 2, 2})',
+        input_fn=lambda: torch.rand(1, 1, 3, 2, 6),
+        desc='last_dim',
+    ),
+    dict(
         module_name='SELU',
         input_size=(3, 2, 5),
         check_inplace=True