01 传统卷积层计算
首先我们定义符号F()函数为卷积函数
一维卷积:F(n,m)
n代表输出的维度,m代表滤波器的维度
二维卷积:F(n*m,r*s)
n*m代表输出的维度,r*s代表滤波器的维度
下面我们具体谈谈针对二维的卷积加速
传统的卷积层加速:
![1eea0e0a346d4191f97709da46bbb1ba.png](https://i-blog.csdnimg.cn/blog_migrate/28f760eb0ab9d482b7805ccc0876c104.jpeg)
对于最简单的F(n*m,r*s)
最传统暴力的卷积运算:
时间成本:1. 乘法:(n*m*r*s)2. 加法:(n*m*(r – 1)*(s – 1))空间成本:1. 输入层:(n+r-1)*(m + s - 1)2. 卷积核:(r*s)
02 Imcol+GEMM
为了更好的理解,首先给出这幅图:
![bee0d4a23dee21418968ac3288d044b6.png](https://i-blog.csdnimg.cn/blog_migrate/3b2e0ca1b660ae161179ea395539d723.jpeg)