Depthwise Convolution in Pytorch


I was using nvprof to profile the calls for various layers of MobilenetV2 in the forward and backward pass. For the Depthwise convolution the profiling says it uses the “spatialDepthwisConvolutionUpdateOutput” function, and from various other topics I have seen that PyTorch uses its own kernel for Depthwise convs instead of a cudnn kernel.

I was wondering which algorithm (GEMM, FFT, or WINOGRAD) is used to perform the convolution in Pytorch’s version?

It seems to use the im2col and matmul approach as seen here.