文章写的通俗易懂,根据学习和理解,这里画图更又利于理解。
img2col + GEMM 是一种比较常用的卷积优化方法,因为这样可以利用到性能已经优化得比较好的 BLAS 库。早期的一些深度学习框架(如 Caffe)就是用了这种方式。但是这种方式有个弊端,就是需要大量的内存/显存来存储中间结果。隐式 GEMM 卷积则可以直接从原始 feature map 和 weight 中取值,避免产生占用巨大内存/显存的中间结果矩阵。
参考: CUDA 实践:隐式 GEMM 卷积 | CUDA - Zhongtian's Technical Notes