基于多核的卷积神经网络加速方法及系统、存储介质及终端技术方案

技术编号:17597881 阅读:67 留言:0更新日期:2018-03-31 10:48
本发明专利技术提供一种基于多核的卷积神经网络加速方法及系统、存储介质及终端,包括将一层卷积神经网络拆分成至少两个子任务,每个子任务与一个卷积核相对应;所述卷积核之间串行连接;基于每个卷积核,并行执行第一预设数量个向量点积运算,每个向量点积运算包括第二预设数量个乘法运算;所述第一预设数量和所述第二预设数量之积为卷积核中的乘加器个数;将每个卷积核的向量点积运算结果根据输出优先级顺序输出。本发明专利技术的基于多核的卷积神经网络加速方法及系统、存储介质及终端通过多个并行的卷积核节省卷积神经网络的数据带宽;在相同硬件数据带宽的条件下,通过在卷积核中并行的向量点积运算提高卷积神经网络的处理速度。

Multi core based convolution neural network acceleration method and system, storage medium and terminal

The invention provides an acceleration method and system, storage medium and terminal convolution neural network based on multi core, including a convolutional neural network will be split into at least two sub tasks, each sub task and a corresponding convolution kernel; the convolution between the serial connection; each convolution based on the parallel execution of the first preset the number of vector dot product operation, each vector dot product operation includes second preset number multiplication; the first preset number and the preset number second product of the convolution kernel number by adder; each convolution kernel vector dot product operation results according to the priority order output output. The invention of the convolutional neural network based on multi core acceleration method and system, storage medium and terminal through multiple parallel convolution convolution neural network data to save bandwidth; on the same hardware data bandwidth conditions, processing speed vector in parallel by convolution kernel in product operation improved convolutional neural network.

【技术实现步骤摘要】
基于多核的卷积神经网络加速方法及系统、存储介质及终端
本专利技术涉及数据处理的
,特别是涉及一种基于多核的卷积神经网络加速方法及系统、存储介质及终端。
技术介绍
目前,深度学习和机器学习在视觉处理、语音识别和图像分析领域得到了广泛的应用。卷积神经网络是深度学习和机器学习的重要组成部分。提高卷积神经网络的处理速度,可以等比例提高深度学习和机器学习的处理速度。现有技术中,视觉处理、语音识别和图像分析的应用都是基于多层卷积神经网络。每层卷积神经网络都要经过大量的数据处理和卷积运算,对硬件处理速度和资源的消耗要求很高。随着可穿戴设备、物联网应用和自动驾驶技术的不断发展,如何将卷积神经网络在嵌入式产品的中实现并到达可以流畅处理的速度,成为当前硬件架构设计面临的巨大挑战。以典型的卷积神经网络ResNet和VGG16为例,ResNet在16位浮点精度下,如果要运行到60帧每秒的速度,需要15G字节带宽;VGG16在16位浮点精度下,如果要运行到60帧每秒的速度,需要6.0G字节带宽。目前,为了实现卷积神经网络的加速,通过并行排列多个卷积单元来实现。在理想情况下,卷积单元越多,处理速度越快。但是在实际应用中,数据带宽会大大限制卷积单元的处理速度,硬件的带宽资源非常珍贵,提高硬件的数据带宽代价巨大。因此,在有限的数据带宽和硬件开销下,提高卷积神经网络的处理速度,成为当前硬件架构设计急需解决的问题。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种基于多核的卷积神经网络加速方法及系统、存储介质及终端,通过多个并行的卷积核节省卷积神经网络的数据带宽;在相同硬件数据带宽的条件下,通过在卷积核中并行的向量点积运算提高卷积神经网络的处理速度。为实现上述目的及其他相关目的,本专利技术提供一种基于多核的卷积神经网络加速方法,包括以下步骤:将一层卷积神经网络拆分成至少两个子任务,每个子任务与一个卷积核相对应;所述卷积核之间串行连接以供输入数据在所述卷积核之间串行传输;基于每个卷积核,并行执行第一预设数量个向量点积运算,每个向量点积运算包括第二预设数量个乘法运算;所述第一预设数量和所述第二预设数量之积为卷积核中的乘加器个数;将每个卷积核的向量点积运算结果根据输出优先级顺序输出。于本专利技术一实施例中,所述第二预设数量为3个以支持3D向量点积。于本专利技术一实施例中,所述输出优先级根据所述输入数据输入卷积核的先后顺序确定,先输入所述输入数据的卷积核比后输入所述输入数据的卷积核具有更高的输出优先级。于本专利技术一实施例中,基于每个卷积核,并行执行第一预设数量个向量点积运算包括以下步骤:获取(N+M-1)个输入数据;其中N为所述第一预设数量,M为所述第二预设数量;将前1到N个输入数据分别输入至第1到N个乘加器与第一系数相乘;将前2到N+1个输入数据分别输入至第N+1到2N个乘加器与第二系数相乘;以此类推,将前M到N+M-1个输入数据分别输入至第(N*M-N+1)到N*M个乘加器与第M系数相乘;将M次乘法中N个位置上对应位置处的乘积累加,得到N个向量点积运算结果。对应地,本专利技术提供一种基于多核的卷积神经网络加速系统,包括卷积核设置模块、向量点积模块和输出模块;所述卷积核设置模块用于将一层卷积神经网络拆分成至少两个子任务,每个子任务与一个卷积核相对应;所述卷积核之间串行连接以供输入数据在所述卷积核之间串行传输;所述向量点积模块用于基于每个卷积核,并行执行第一预设数量个向量点积运算,每个向量点积运算包括第二预设数量个乘法运算;所述第一预设数量和所述第二预设数量之积为卷积核中的乘加器个数;所述输出模块用于将每个卷积核的向量点积运算结果根据输出优先级顺序输出。于本专利技术一实施例中,所述第二预设数量为3个以支持3D向量点积。于本专利技术一实施例中,所述输出优先级根据所述输入数据输入卷积核的先后顺序确定,先输入所述输入数据的卷积核比后输入所述输入数据的卷积核具有更高的输出优先级。于本专利技术一实施例中,所述向量点积模块基于每个卷积核,并行执行第一预设数量个向量点积运算时执行以下步骤:获取(N+M-1)个输入数据;其中N为所述第一预设数量,M为所述第二预设数量;将前1到N个输入数据分别输入至第1到N个乘加器与第一系数相乘;将前2到N+1个输入数据分别输入至第N+1到2N个乘加器与第二系数相乘;以此类推,将前M到N+M-1个输入数据分别输入至第(N*M-N+1)到N*M个乘加器与第M系数相乘;将M次乘法中N个位置上对应位置处的乘积累加,得到N个向量点积运算结果。本专利技术提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的基于多核的卷积神经网络加速方法。最后,本专利技术提供一种终端,包括处理器及存储器;所述存储器用于存储计算机程序;所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述的基于多核的卷积神经网络加速方法。如上所述,本专利技术的基于多核的卷积神经网络加速方法及系统、存储介质及终端,具有以下有益效果:(1)节省了卷积神经网络运算动态存储器的带宽消耗;以4卷积核模式为例,在相同的数据处理速度下,能够在卷积神经网络运行时节省75%的输入图像数据带宽;(2)提高了卷积神经网络的处理速度,在相同硬件数据带宽的条件下,以3D向量点积为例,能够提高卷积神经网络的处理速度到300%;(3)减少了卷积神经网络的动态功耗,以4个卷积核、3D向量点积为例,减少运算时间到原来的33%,减少卷积神经网络的输入图像带宽到原来的25%,减少动态功耗85%;(4)优化了卷积神经网络在嵌入式产品中的处理速度,具有架构清晰、分工明确、易实现、流程简单等优点,能够广泛应用于物联网、可穿戴设备和车载设备中。附图说明图1显示为本专利技术的基于多核的卷积神经网络加速方法于一实施例中的流程图;图2显示为输入图像、系数和输出图像的坐标示意图;图3显示为本专利技术的基于多核的卷积神经网络加速方法于一实施例中的架构示意图;图4显示为本专利技术的基于多核的卷积神经网络加速方法中并行3D向量点积于一实施例中的第一状态图;图5显示为本专利技术的基于多核的卷积神经网络加速方法中并行3D向量点积于一实施例中的第二状态图;图6显示为本专利技术的基于多核的卷积神经网络加速方法中并行3D向量点积于一实施例中的第三状态图;图7显示为本专利技术的基于多核的卷积神经网络加速方法中并行3D向量点积求和于一实施例中的状态图;图8显示为本专利技术的基于多核的卷积神经网络加速系统于一实施例中的结构示意图;图9显示为本专利技术的终端于一实施例中的结构示意图。元件标号说明21卷积核设置模块22向量点积模块23输出模块31处理器32存储器具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型本文档来自技高网...
基于多核的卷积神经网络加速方法及系统、存储介质及终端

【技术保护点】
一种基于多核的卷积神经网络加速方法,其特征在于,包括以下步骤:将一层卷积神经网络拆分成至少两个子任务,每个子任务与一个卷积核相对应;所述卷积核之间串行连接以供输入数据在所述卷积核之间串行传输;基于每个卷积核,并行执行第一预设数量个向量点积运算,每个向量点积运算包括第二预设数量个乘法运算;所述第一预设数量和所述第二预设数量之积为卷积核中的乘加器个数;将每个卷积核的向量点积运算结果根据输出优先级顺序输出。

【技术特征摘要】
1.一种基于多核的卷积神经网络加速方法,其特征在于,包括以下步骤:将一层卷积神经网络拆分成至少两个子任务,每个子任务与一个卷积核相对应;所述卷积核之间串行连接以供输入数据在所述卷积核之间串行传输;基于每个卷积核,并行执行第一预设数量个向量点积运算,每个向量点积运算包括第二预设数量个乘法运算;所述第一预设数量和所述第二预设数量之积为卷积核中的乘加器个数;将每个卷积核的向量点积运算结果根据输出优先级顺序输出。2.根据权利要求1所述的基于多核的卷积神经网络加速方法,其特征在于,所述第二预设数量为3个以支持3D向量点积。3.根据权利要求1所述的基于多核的卷积神经网络加速方法,其特征在于,所述输出优先级根据所述输入数据输入卷积核的先后顺序确定,先输入所述输入数据的卷积核比后输入所述输入数据的卷积核具有更高的输出优先级。4.根据权利要求1所述的基于多核的卷积神经网络加速方法,其特征在于,基于每个卷积核,并行执行第一预设数量个向量点积运算包括以下步骤:获取(N+M-1)个输入数据;其中N为所述第一预设数量,M为所述第二预设数量;将前1到N个输入数据分别输入至第1到N个乘加器与第一系数相乘;将前2到N+1个输入数据分别输入至第N+1到2N个乘加器与第二系数相乘;以此类推,将前M到N+M-1个输入数据分别输入至第(N*M-N+1)到N*M个乘加器与第M系数相乘;将M次乘法中N个位置上对应位置处的乘积累加,得到N个向量点积运算结果。5.一种基于多核的卷积神经网络加速系统,其特征在于,包括卷积核设置模块、向量点积模块和输出模块;所述卷积核设置模块用于将一层卷积神经网络拆分成至少两个子任务,每个子任务与一个卷积核相对应;所述卷积核之间串行连接以供输入数...

【专利技术属性】
技术研发人员:张慧明
申请(专利权)人:芯原微电子上海有限公司图芯芯片技术上海有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1