The invention discloses a zero coefficient skip convolution neural network engine. The convolution engine, such as the convolution neural network, operates effectively on the sparse kernel by realizing zero skipping. The input block is loaded and the block is shifted by the row and column index of the coefficients in the kernel to calculate the additions to the input block for non zero coefficients. Each coefficient is used individually for the block, and the result is written to the accumulator buffer before moving to the next non zero coefficient. 3D or 4D convolutions can be implemented in this way, where the accumulation of different regions of the accumulator buffer are stored for the accumulation of different indexes along one dimension. The image is completely processed, and the results of each image are stored in the accumulator buffer before moving to the next image.
【技术实现步骤摘要】
零系数跳过卷积神经网络引擎背景相关申请本申请要求享有于2016年8月11日提交的且标题为“ZEROCOEFFICIENTSKIPPINGCONVOLUTIONNEURALNETWORKENGINE”的序列号为62/373,518的美国临时申请的权益,在此通过引用以其整体并入。专利
本专利技术涉及用于执行矩阵卷积(诸如,用于实现卷积神经网络)的系统和方法。专利技术背景使用卷积神经网络(CNN)的许多机器学习应用需要非常高的计算和存储带宽。减少该需求的一种方法是对系数进行零修剪,并且当系数为零时跳过计算。这些现有的软件和硬件优化技术基于矩阵乘法。一个示例是(BaoyuanLiu、MinWang1、HassanForoosh1、MarshallTappen以及MariannaPenksy)在稀疏卷积神经网络(SparseConvolutionalNeuralNetworks)中和(SongHanCVA组,斯坦福大学)在深层神经网络模型压缩和高效推理引擎(DeepNeuralNetworkModelCompressionandEfficientInferenceEngine)中描述的稀疏矩阵乘法技术,两者在此通过引用以其整体并入。在本文中公开的系统和方法提供了用于实现CNN的改进方法。附图简述为了使本专利技术的优点容易理解,通过参考在附图中所示的具体实施例,将呈现上面简要描述的本专利技术的更加具体的描述。应理解,这些附图只描绘了本专利技术的典型实施例,且因此不能被看作对其范围的限制,通过使用附图,将结合附加的特征和细节描述和解释本专利技术,其中:图1是根据在本 ...
【技术保护点】
一种用于执行卷积的方法,所述方法包括:提供系数C(kz,Z,kx,ky)的数组,所述系数C(kz,Z,kx,ky)的数组定义了Z维度、kz维度、kx维度和ky维度;提供多个输入图像,每个输入图像对应于在所述kz维度中的索引;(a)通过电子设备将在多个图块位置中的下一个图块位置选为当前图块位置;(b)通过电子设备将在所述多个输入图像中的下一个输入图像I(kz1)选为当前图像,并且将与所述当前图像对应的索引kz1选为当前kz索引;(c)通过所述电子设备将在所述当前图块位置处的所述当前图像I(kz1)的图块作为所述当前图块加载到缓冲器中;(d)对于具有在所述kz维度等于kz1的索引的系数的数组中的系数C(kz1,Z,kx,ky)的至少一部分中的每个系数,通过所述电子设备单独地并且按照顺序地执行以下操作:根据在所述ky维度中的所述每个系数的ky索引,设置所述当前图块的ky移位量;根据在所述kx维度中的所述每个系数的kx索引,设置所述当前图块的kx移位量;将所述ky移位量和所述kx移位量应用于所述当前图块,以获得移位的图块;将所述移位的图块乘以所述每个系数,以获得一组乘积;将所述一组乘积加到在累 ...
【技术特征摘要】
2016.08.11 US 62/373,518;2017.08.08 US 15/671,829;1.一种用于执行卷积的方法,所述方法包括:提供系数C(kz,Z,kx,ky)的数组,所述系数C(kz,Z,kx,ky)的数组定义了Z维度、kz维度、kx维度和ky维度;提供多个输入图像,每个输入图像对应于在所述kz维度中的索引;(a)通过电子设备将在多个图块位置中的下一个图块位置选为当前图块位置;(b)通过电子设备将在所述多个输入图像中的下一个输入图像I(kz1)选为当前图像,并且将与所述当前图像对应的索引kz1选为当前kz索引;(c)通过所述电子设备将在所述当前图块位置处的所述当前图像I(kz1)的图块作为所述当前图块加载到缓冲器中;(d)对于具有在所述kz维度等于kz1的索引的系数的数组中的系数C(kz1,Z,kx,ky)的至少一部分中的每个系数,通过所述电子设备单独地并且按照顺序地执行以下操作:根据在所述ky维度中的所述每个系数的ky索引,设置所述当前图块的ky移位量;根据在所述kx维度中的所述每个系数的kx索引,设置所述当前图块的kx移位量;将所述ky移位量和所述kx移位量应用于所述当前图块,以获得移位的图块;将所述移位的图块乘以所述每个系数,以获得一组乘积;将所述一组乘积加到在累加缓冲器中存储的一组累加的和,以获得一组更新的和;以及采用所述一组更新的和来重写所述一组累加的和;(e)执行(b)至(d),直到已根据(b)至(d)处理了在所述多个图像中的所有输入图像为止;(f)输出所述累加的和的当前值作为输出图像;(g)执行(a)至(f),直到已根据(a)至(f)处理了在所述多个图块位置中的所有图块位置为止;其中,所述ky移位量和所述kx移位量被选择为使得当(f)完成时,所述累加的和是所述当前图块与所述多个图像的三维卷积。2.根据权利要求1所述的方法,其中,执行(d)是在没有在所述缓冲器中重写或重新加载所述当前图块的情况下执行的。3.根据权利要求1所述的方法,其中,具有所述当前kz索引的所述系数的数组中的系数的至少一部分仅包括具有所述当前kz索引的所述系数的数组中的系数中的非零系数。4.根据权利要求1所述的方法,其中,(d)还包括解压缩多个核,每个核包括具有所述当前kz索引的所述系数的数组中的系数以及在所述Z维度中的唯一索引。5.根据权利要求4所述的方法,其中,解压缩所述多个核中的每个核包括获得一组条目,每个条目包括所述每个核的一个系数、所述一个系数的所述kx索引和所述ky索引。6.根据权利要求5所述的方法,其中,所述一组条目不包括对于所述系数的数组中的等于零的系数的条目。7.根据权利要求1所述的方法,其中,将所述ky移位量和所述kx移位量应用于所述当前图块以获得移位的图块包括:根据所述ky移位量,在所述缓冲器中选择起始地址;自所述起始地址开始从所述缓冲器读取图像数据;根据所述kx移位量使所述图像数据移位,以获得移位的数据。8.根据权利要求1所述的方法,其中,将所述移位的图块乘以所述每个系数以获得所述一组乘积包括:使用乘法器阵列使移位的部分中的每一行同时乘以所述每个系数。9.根据权利要求1所述的方法,其中,所述系数的数组限定卷积神经网络(CNN)。10.根据权利要求1所述的方法,其中,所述累加的和包括多组累加的和,每组累加的和与沿所述Z维度的不同的Z索引对应;其中,将所述一组乘积加到在所述累加缓冲器中存储的所述一组累加的和以获得所述一组更新的和以及采用所述一组更新的和来重写所述一组累加的和,包括:将所述一组乘积加到与所述每个系数的Z索引对应的、所述多个累加的和中的一组累加的和,以获得一组更新的和;以及采用所述一组更新的和来重写与所述每个系数的Z索引对应的、所述多个累加的和中的所...
【专利技术属性】
技术研发人员:罗文杰,
申请(专利权)人:图芯芯片技术有限公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。