Recent cudnn library (pytorch is based on)  already has fast conv2d algorithms in it like

Conv as matrix multiplication (GEMM) based on (I think) shtrassen fast matrix multiplication
Winograd fast conv2d
FFT Conv2d
So I think pytorch itself select optimal algorithm for you and you do not need to do this at all