You should use FFT's for the convolution, see http://arxiv.org/abs/1312.5851
Also, while the original Blas was in Fortran, you probably want OpenBlas, which is in C. Or maybe Intels MKL.
Also, while the original Blas was in Fortran, you probably want OpenBlas, which is in C. Or maybe Intels MKL.
And since they claim fbfft was even faster than cufft, the situation should look even better for fft.
EDIT: And they are about tied in the 3x3, 64 case.
"The main competitor to the GEMM approach is using Fourier transforms to do the operation in frequency space, but the use of strides in our convolutions makes it hard to be as efficient."