Hi,
Thanks for the code.
I quickly tried it.

Your imports in your custom versions import modules from another package (old install I guess). They should be import _patchconv_ext._patch_convolution as patch_conv (and same for transposed).
Running with this I get a cuda kernel failed for your code though  Do you see the same thing?
What are the timings you get with the default settings? So that I can compare with what I get.

I slightly modified your test script (and removed your custom code that does not run here).
You can find in this gist https://gist.github.com/albanD/e57425691686b708b3d57329d633ad33 3 the results I have locally.
The conclusions I have:

cudnn benchmark does give the expected results for the forward pass (close to the conv with similar number of ops)
For the backward, not sure why the unfold version is soo good and the others not. I expect the expands lead to very efficient backward?

I tested on CUDA 10.0 with cudnn 76.02 on a Quadro GP100