Hi,
I want to write a convolution backward function , and it would call Pytorch’s cuda path for default. Basically it has the following definition:
std::tuple<at::Tensor,at::Tensor,at::Tensor>
custom_convolution_backward(const at::Tensor & grad_output,
const at::Tensor & input,
const at::Tensor & weight,
at::IntArrayRef stride,
at::IntArrayRef padding,
at::IntArrayRef dilation,
bool transposed,
at::IntArrayRef output_padding,
int64_t groups,
std::array<bool,3> output_mask);
I explore the source code in PyTorch and find that CUDA uses slow_conv2d_backward_out_cuda.
My question is :
- Is
slow_conv2d_backward_out_cuda
the right function I need to use? - The function has args of
finput
andfgrad_input
finput, what are these two? I can’t find docs nor comments on them. - Why can’t I find the convolution backward function in Convolution.cpp ? Isn’t it should write the backward path as in cudnn ?