From 5b19383769ccf78f886f6df0db50e670f1bef0bc Mon Sep 17 00:00:00 2001 From: Xiaohan Ding <55726946+DingXiaoH@users.noreply.github.com> Date: Sat, 30 Apr 2022 01:06:21 +0800 Subject: [PATCH] Update depthwise_conv2d_implicit_gemm.py Sometimes when the tensor format changes after this conv (e.g., NCHW -> NHWC for layer normalization), calling backward will raise an "input must be contiguous" error. Making the grad contiguous in advance simply solves it. --- .../depthwise_conv2d_implicit_gemm.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/19_large_depthwise_conv2d_torch_extension/depthwise_conv2d_implicit_gemm.py b/examples/19_large_depthwise_conv2d_torch_extension/depthwise_conv2d_implicit_gemm.py index b4a1aa1c8a..f8c98b3344 100755 --- a/examples/19_large_depthwise_conv2d_torch_extension/depthwise_conv2d_implicit_gemm.py +++ b/examples/19_large_depthwise_conv2d_torch_extension/depthwise_conv2d_implicit_gemm.py @@ -21,6 +21,7 @@ def forward(ctx, x, w): @staticmethod @torch.cuda.amp.custom_bwd def backward(ctx, grad): + grad = grad.contiguous() x, w = ctx.saved_tensors dx = _extension.backward_data_fp32(grad, w) dw = _extension.backward_filter_fp32(grad, x, w) @@ -37,6 +38,7 @@ def forward(ctx, x, w): @staticmethod @torch.cuda.amp.custom_bwd def backward(ctx, grad): + grad = grad.contiguous() x, w = ctx.saved_tensors dx = _extension.backward_data_fp16(grad, w) dw = _extension.backward_filter_fp16(grad, x, w)