Common Terms
BLAS is a specification and de-facto standard for linear algebra applications.
ACML, ATLAS, MKL, OpenBLAS are examples of BLAS libraries.
There are three levels to BLAS functionality. (Level 3 = GEMM)
GEMM stands for General Matrix Multiply.
Convolution and GEMM
Do im2col and then do matrix multiplication!
* im2col duplicates each section of the image multiple times; however, this waste of memory is outweighed by the performance gain we get by transforming convolution into regular matrix multiplication.
https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/