I need to implement an efficient version of an image convolution with non-separable kernels (so CUDA's sdk is useful just for the FFT example, but it is clearly stated that it works great only for big kernel sizes)
Aside from implementing it from scratch as comes to my mind, my need is to operate on priori-unknown-sizes matrices and kernels (they can be 10x10 as 20.000x20.000, I simply can't predict it)
What are your suggestions regarding the FFT example? (if this is your best pick, please provide me some good point to start figuring out how that works)
And for the second pick (manually implementing the convolution by myself), what the suggestions to maximize memory coalescence?