另一个是大矩阵乘的优化:就是前面说的那个Strassen算法加速矩阵运算,MNN是第一个用上这个来加速的推理引擎。Strassen是用加法替换乘法,需要递归调用来最大小性能。在MNN中,对于一个矩阵乘[n,k] X [k,m] ->[n,m] ,直接的乘法次数是mnk ,用Strassen的话只要7*m/2*n/2*k/2 次,但还额外要4次大小为[m/2,k/2] 的矩阵加、4次大小为[n/2,k/2] 的矩阵加、7次大小为 [m/2,n/2]的矩阵加法。所以Strassen算法递归执行的条件是: mnk- 7*m/2*n/2*k/2 >4*m/2*k/2+4*n/2*k/2+7*m/2*n/2