我正在对大量小图像(36 36 左右)和小过滤器(3 3 到 5*5)进行卷积。所以基于FFT的解决方案不是我想要的。也许高度优化和调整的实现(使用SSE / AVX,多线程)对我来说更好。
但是,BLAS中不包含卷积。并且 FFT 库 (FFTW) 没有卷积功能。我尝试了 scipy.signal.convolve2d,它甚至比我幼稚的 C 实现还要慢。
是否有专门针对 CPU 上的小内核优化的卷积库?如果它在大内核上自动切换到 FFT 会更好。
我正在使用 Python 进行编码,但是只要我可以使用ctypes导入它,C/C++ 库就可以了。我的 GPU 太旧,无法提供任何加速。
相关问题:
他们都在谈论 FFT,而不是矢量化。