引言天气预报、石油勘探、核物理等现代科学技术大多依赖于计算机模拟,而模拟计算的核心是代表状态转移的矩阵计算。另一方面,近年来兴起的计算机图形处理和深度学习也与矩阵乘法有很大的关系。但是,矩阵乘法会消耗大量的计算资源。除了计算机体系结构的不断更新,软件优化方面也有大量的研究工作。本文简要介绍了一般矩阵乘法(GEMM,GeneralMatrixMultiplication)优化的基本概念和方法,QNNPACK在特定场景下对矩阵乘法的优化方法,以及使用GEMM优化神经网络中卷积计算的方向。旨在帮助大家在概念上建立一些直觉,不要太高。一般矩阵乘法优化(以下简称GEMM)的一般形式是𝐶=𝐴𝐵C=AB,其中𝐴A和𝐵B涵盖了各自的Transpose含义.图1是矩阵乘法计算中用于计算输出点的输入数据。三个矩阵的形状也如图所示。图1:计算输出元素的矩阵乘法该计算的伪代码如下。计算操作总数为(其中𝑀、𝑁、𝐾分别表示三层循环的执行次数,2表示最内层的一次乘法和加法的循环),内存访问操作总数为4𝑀𝑁𝐾(其中4是指内存访问𝐴、𝐵、𝐶、𝐶需要先读取内存,在storage中完成累加,忽略𝐶上的操作;初始化)。GEMM的优化就是基于此。for(intm=0;m
