CN109460813B - 卷积神经网络计算的加速方法、装置、设备及存储介质 - Google Patents
卷积神经网络计算的加速方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109460813B CN109460813B CN201811051235.8A CN201811051235A CN109460813B CN 109460813 B CN109460813 B CN 109460813B CN 201811051235 A CN201811051235 A CN 201811051235A CN 109460813 B CN109460813 B CN 109460813B
- Authority
- CN
- China
- Prior art keywords
- data
- image
- address generator
- neural network
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Abstract
本发明适用数据处理技术领域,提供了一种卷积神经网络计算的加速方法、装置、设备及存储介质,该方法包括:根据对目标图像对应的图像数据进行卷积计算的请求,控制地址生成器将从配置寄存器中读取的地址生成器指令转化成图像数据在数据内存中存储的数据地址,控制数据内存将从该数据地址中读取的图像数据输入到输入移位寄存器中,以将该图像数据输入到卷积神经网络中进行神经元计算,再将计算得到的特征图数据输入到输出移位寄存器中,控制输出移位寄存器根据预设图像数据内存存储方式将特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算,从而提高了数据的复用性,并降低读取内存数据的次数,进而提高了卷积神经网络计算的速度。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及一种卷积神经网络计算的加速方法、装置、设备及存储介质。
背景技术
近年来,由于大数据应用的普及与计算机硬件的进步,深度学习技术在计算机视觉、自然语言处理以及智能系统决策等领域被广泛用来对数据进行特征提取、分类以及递归运算,而卷积运算是一种非常重要的深度学习特征提取方法,现在主流的深度学习神经网络(例如,基于神经网络的手写自动识别系统LeNet1、AlexNet以及VGG‐16)都是由一层层的卷积层堆叠而成的,随着神经网络层数的提高,使得分类的准确率得到提升,同时也造成了卷积运算算力消耗大的问题。
目前加速卷积计算的方法主要有两种,一种是通过剪裁神经网络的节点,将一些不重要的计算节点去掉,以达到减少计算量的目的,然而,这种方法明显的缺陷是由于人为的剪裁了计算节点,导致最后神经网络精度的降低,另一个缺点就是由于深度学习技术还在快速迭代过程中,在没有确切知道哪些计算节点比较重要的情况下,就采用剪裁网络的方法太过激进。另一种加速卷积网络的方法是将卷积计算的参数量化,比如将原来的float64类型的数据转化为低精度的float16或者float8精度的数据,虽然参数精度的降低,确实减小了计算量,然而还是无法避免神经网络精度降低的问题。
以上两种方法虽然在一定程度上减轻了卷积运算带来的算力消耗,而由于通用计算机硬件平台的计算能力和处理速度跟不上,因此,就需要设计出专用的卷积处理芯片,通过卷积处理芯片对图像内存数据进行读取,对于卷积处理芯片来说,大约80%的能量是消耗在数据的传输上,因此,如何对图像数据的内存存储进行优化是亟待解决的问题。
发明内容
本发明的目的在于提供一种卷积神经网络计算的加速方法、装置、设备及存储介质,旨在解决由于现有技术无法提供一种有效的卷积神经网络计算的加速方法,导致卷积神经网络的计算结果精度低的问题。
一方面,本发明提供了一种卷积神经网络计算的加速方法,所述方法包括下述步骤:
当接收到通过卷积神经网络对目标图像对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令;
根据所述地址生成器指令,控制所述地址生成器输出所述图像数据在数据内存中存储的数据地址;
控制所述数据内存从所述地址生成器输出的所述数据地址中读取所述图像数据,并将读取到的所述图像数据输入到输入移位寄存器中;
控制所述输入移位寄存器将接收到的所述图像数据输入到所述卷积神经网络中进行神经元计算,得到对应的特征图数据,并将所述特征图数据输入到输出移位寄存器中;
控制所述输出移位寄存器根据预设的图像数据内存存储方式将接收到的所述特征图数据输入到所述数据内存中进行存储,以加速完成当前的所述卷积计算。
优选地,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令的步骤之前,所述方法还包括:
设置与所述地址生成器相关的地址生成器指令、以及与所述卷积神经网络相关的卷积神经网络配置参数,并将所述地址生成器指令和所述卷积神经网络配置参数存储在所述配置寄存器中。
优选地,控制所述地址生成器输出所述图像数据在数据内存中存储的数据地址的步骤,包括:
根据存储在所述配置寄存器中的所述卷积神经网络配置参数,得到通过当前的所述卷积计算待输出的所述图像数据对应的特征图像素点;
控制所述地址生成器根据所述特征图像素点获得与所述特征图像素点对应的所述目标图像的像素点范围,根据所述像素点范围连续输出对应的数据地址。
优选地,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令的步骤之前,所述方法还包括:
获取所述目标图像的宽度、高度和图像通道数,根据所述宽度和所述高度计算所述目标图像的图像像素点数,并根据所述图像通道数获取所述目标图像中每个图像像素点对应的各个图像通道值;
根据所述图像像素点数,依次将所述每个图像像素点对应的所述各个图像通道值以连续的数据地址在所述数据内存中进行存储。
另一方面,本发明提供了一种卷积神经网络计算的加速装置,所述装置包括:
指令读取单元,用于当接收到通过卷积神经网络对目标图像对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令;
数据地址输出单元,用于根据所述地址生成器指令,控制所述地址生成器输出所述图像数据在数据内存中存储的数据地址;
图像数据读取单元,用于控制所述数据内存从所述地址生成器输出的所述数据地址中读取所述图像数据,并将读取到的所述图像数据输入到输入移位寄存器中;
神经元计算单元,用于控制所述输入移位寄存器将接收到的所述图像数据输入到所述卷积神经网络中进行神经元计算,得到对应的特征图数据,并将所述特征图数据输入到输出移位寄存器中;以及
特征图存储单元,用于控制所述输出移位寄存器根据预设的图像数据内存存储方式将接收到的所述特征图数据输入到所述数据内存中进行存储,以加速完成当前的所述卷积计算。
优选地,所述数据地址输出单元包括:
像素点获取单元,用于根据存储在所述配置寄存器中的所述卷积神经网络配置参数,得到通过当前的所述卷积计算待输出的所述图像数据对应的特征图像素点;以及
地址输出子单元,用于控制所述地址生成器根据所述特征图像素点获得与所述特征图像素点对应的所述目标图像的像素点范围,根据所述像素点范围连续输出对应的数据地址。
优选地,所述装置还包括:
参数设置存储单元,用于设置与所述地址生成器相关的地址生成器指令、以及与所述卷积神经网络相关的卷积神经网络配置参数,并将所述地址生成器指令和所述卷积神经网络配置参数存储在所述配置寄存器中;
通道值获取单元,用于获取所述目标图像的宽度、高度和图像通道数,根据所述宽度和所述高度计算所述目标图像的图像像素点数,并根据所述图像通道数获取所述目标图像中每个图像像素点对应的各个图像通道值;以及
数据存储单元,用于根据所述图像像素点数,依次将所述每个图像像素点对应的所述各个图像通道值以连续的数据地址在所述数据内存中进行存储。
另一方面,本发明还提供了一种计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述卷积神经网络计算的加速方法所述的步骤。
另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述卷积神经网络计算的加速方法所述的步骤。
本发明根据对目标图像对应的图像数据进行卷积计算的请求,控制地址生成器将从配置寄存器中读取的地址生成器指令转化成图像数据在数据内存中存储的数据地址,控制数据内存从该数据地址中读取图像数据,并将该图像数据输入到输入移位寄存器中,控制输入移位寄存器将该图像数据输入到卷积神经网络中进行神经元计算,得到对应的特征图数据,并将特征图数据输入到输出移位寄存器中,控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算,从而提高了数据的复用性,并降低读取内存数据的次数,进而提高了卷积神经网络计算的速度。
附图说明
图1是本发明实施例一提供的卷积神经网络计算的加速方法的实现流程图;
图2是本发明实施例二提供的卷积神经网络计算的加速装置的结构示意图;
图3是本发明实施例三提供的卷积神经网络计算的加速装置的结构示意图;以及
图4是本发明实施例四提供的计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的卷积神经网络计算的加速方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在步骤S101中,当接收到通过卷积神经网络对目标图像对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令。
本发明实施例适用于数据处理平台、设备或系统,例如,个人计算机、服务器等。当接收到通过卷积神经网络对用户输入的目标图像中对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令,地址生成器根据相应的地址生成器指令执行相应的动作。
在控制地址生成器从配置寄存器中读取预先存储的地址生成器指令之前,优选地,设置与地址生成器相关的地址生成器指令、以及与卷积神经网络相关的卷积神经网络配置参数,并将地址生成器指令和卷积神经网络配置参数存储在配置寄存器中,其中,卷积神经网络配置参数包括卷积核大小、步长以及卷积计算输出的特征图像素点的个数,从而提高数据读取时的便利性。
在控制地址生成器从配置寄存器中读取预先存储的地址生成器指令之前,又一优选地,获取目标图像的宽度、高度和图像通道数,根据宽度和高度计算目标图像的图像像素点数,并根据图像通道数获取目标图像中每个图像像素点对应的各个图像通道值,根据图像像素点数,依次将每个图像像素点对应的各个图像通道值以连续的数据地址在数据内存中进行存储,从而提高数据存储时的便利性,进而降低数据读取时的算法复杂度。
作为示例地,RGB图像的图像通道数为3,分别为R通道、G通道以及B通道,RGB图像的每个像素点是分别由这3个通道对应的通道值构成,在通过本发明实施例进行存储的时候,以连续的内存地址依次对RGB图像的所有像素点进行存储,在存储时,为每个像素点对应的3个通道值分配3个连续的地址分别进行存储,即先将一个像素点对应的3个通道值分别存储在3个连续的内存地址中,再接着该像素点的内存地址,存储后一个像素点对应的3个通道值,以此类推,直至将所有像素点都进行存储,例如,一个像素点对应的3个通道值存储在0x01、0x02、0x03内存地址中,则下一个像素点存储的地址为0x04、0x05、0x06,以此类推。
在步骤S102中,根据地址生成器指令,控制地址生成器输出图像数据在数据内存中存储的数据地址。
在本发明实施例中,地址生成器主要是将从配置寄存器里读取的数据或地址生成器指令转化成数据内存里对应的数据地址,然后将产生的数据地址发送给数据内存,以供数据内存读取相应的图像数据。
在控制地址生成器输出图像数据在数据内存中存储的数据地址时,优选地,根据存储在配置寄存器中的卷积神经网络配置参数,得到通过当前的卷积计算待输出的图像数据对应的特征图像素点,控制地址生成器根据特征图像素点获得与特征图像素点对应的目标图像的像素点范围,根据像素点范围连续输出对应的数据地址,实现根据输出的连续的特征图像素点数据映射到目标图像像素的连续的数据内存的数据地址,从而提高数据的复用性,降低读取内存数据的次数。
在本发明实施例中,优选地,地址生成器不仅生成数据地址,还产生卷积神经网络对应的神经元左起始点行(Neuron Left Start Point Row)对应的起始数据内存的地址等参数,通过另外一条数据线传递给流程元素(Process Element,PE),使得PE同步上输入移位寄存器,从而完成卷积计算的操作,提高卷积计算的速度。
在步骤S103中,控制数据内存从地址生成器输出的数据地址中读取图像数据,并将读取到的图像数据输入到输入移位寄存器中。
在本发明实施例中,数据内存根据地址生成器输出的数据地址读取相应的图像数据,再将读取到的图像数据通过并行或者串行的方式输入到输入移位寄存器中。
在步骤S104中,控制输入移位寄存器将接收到的图像数据输入到卷积神经网络中进行神经元计算,得到对应的特征图数据,并将特征图数据输入到输出移位寄存器中。
在本发明实施例中,输入到输入移位寄存器中的图像数据可以在移位脉冲作用下依次逐位右移或左移,控制输入移位寄存器将图像数据以并行输入/输出或者串行输入/输出或者并行输入、串行输出或者串行输入、并行输出的输入输出方式输出到卷积神经网络,通过该卷积神经网络中各个神经元的计算,得到对应的特征图数据,再控制卷积神经网络将计算得到的特征图数据输入到输出移位寄存器中,其中,卷积神经网络由许多独立的神经元(例如,模式神经元、数据选择器神经元、激活神经元、卷积池化神经元等)组成,卷积神经网络根据接收到的不同的图像数据进行不同的神经元计算。
在步骤S105中,控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算。
在本发明实施例中,输出移位寄存器中的特征图数据可以在移位脉冲作用下依次逐位右移或左移,特征图数据既可以并行输入/输出,也可以串行输入/输出,还可以并行输入、串行输出或者串行输入、并行输出,输出移位寄存器将接收到的特征图数据,以预设的图像数据内存存储方式存入到数据内存中,以加速完成当前的卷积计算,而这些存入数据内存的特征图数据在下一层神经网络计算中再以步骤S101~步骤S104介绍的方式读入处理器中,如此循环往复,就能快速、高效地完成多层神经网络的前向推导。
在控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储时,优选地,根据目标图像的图像通道数以及特征图数据的像素点数,控制输出移位寄存器依次将特征图数据的每个像素点对应的各个图像通道值以连续的数据地址在数据内存中进行存储,从而提高数据存储时的便利性,进而降低数据读取时的算法复杂度。
在本发明实施例中,根据对目标图像对应的图像数据进行卷积计算的请求,控制地址生成器将从配置寄存器中读取的地址生成器指令转化成图像数据在数据内存中存储的数据地址,控制数据内存从该数据地址中读取图像数据,并将该图像数据输入到输入移位寄存器中,控制输入移位寄存器将该图像数据输入到卷积神经网络中进行神经元计算,得到对应的特征图数据,并将特征图数据输入到输出移位寄存器中,控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算,从而提高了数据的复用性,并降低读取内存数据的次数,进而提高了卷积神经网络计算的速度。
实施例二:
图2示出了本发明实施例二提供的卷积神经网络计算的加速装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
指令读取单元21,用于当接收到通过卷积神经网络对目标图像对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令。
本发明实施例适用于数据处理平台、设备或系统,例如,个人计算机、服务器等。当接收到通过卷积神经网络对用户输入的目标图像中对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令,地址生成器根据相应的地址生成器指令执行相应的动作。
数据地址输出单元22,用于根据地址生成器指令,控制地址生成器输出图像数据在数据内存中存储的数据地址。
在本发明实施例中,地址生成器主要是将从配置寄存器里读取的数据或地址生成器指令转化成数据内存里对应的数据地址,然后将产生的数据地址发送给数据内存,以供数据内存读取相应的图像数据。
在本发明实施例中,优选地,地址生成器不仅生成数据地址,还产生卷积神经网络对应的神经元左起始点行(Neuron Left Start Point Row)对应的起始数据内存的地址等参数,通过另外一条数据线传递给流程元素(Process Element,PE),使得PE同步上输入移位寄存器,从而完成卷积计算的操作,提高卷积计算的速度。
图像数据读取单元23,用于控制数据内存从地址生成器输出的数据地址中读取图像数据,并将读取到的图像数据输入到输入移位寄存器中。
在本发明实施例中,数据内存根据地址生成器输出的数据地址读取相应的图像数据,再将读取到的图像数据通过并行或者串行的方式输入到输入移位寄存器中。
神经元计算单元24,用于控制输入移位寄存器将接收到的图像数据输入到卷积神经网络中进行神经元计算,得到对应的特征图数据,并将特征图数据输入到输出移位寄存器中。
在本发明实施例中,输入到输入移位寄存器中的图像数据可以在移位脉冲作用下依次逐位右移或左移,控制输入移位寄存器将图像数据以并行输入/输出或者串行输入/输出或者并行输入、串行输出或者串行输入、并行输出的输入输出方式输出到卷积神经网络,通过该卷积神经网络中各个神经元的计算,得到对应的特征图数据,再控制卷积神经网络将计算得到的特征图数据输入到输出移位寄存器中,其中,卷积神经网络由许多独立的神经元(例如,模式神经元、数据选择器神经元、激活神经元、卷积池化神经元等)组成,卷积神经网络根据接收到的不同的图像数据进行不同的神经元计算。
特征图存储单元25,用于控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算。
在本发明实施例中,输出移位寄存器中的特征图数据可以在移位脉冲作用下依次逐位右移或左移,特征图数据既可以并行输入/输出,也可以串行输入/输出,还可以并行输入、串行输出或者串行输入、并行输出,输出移位寄存器将接收到的特征图数据,以预设的图像数据内存存储方式存入到数据内存中,以加速完成当前的卷积计算,而这些存入数据内存的特征图数据在下一层神经网络计算中再以指令读取单元21~神经元计算单元24介绍的方式读入处理器中,如此循环往复,就能快速、高效地完成多层神经网络的前向推导。
在控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储时,优选地,根据目标图像的图像通道数以及特征图数据的像素点数,控制输出移位寄存器依次将特征图数据的每个像素点对应的各个图像通道值以连续的数据地址在数据内存中进行存储,从而提高数据存储时的便利性,进而降低数据读取时的算法复杂度。
在本发明实施例中,卷积神经网络计算的加速装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。
实施例三:
图3示出了本发明实施例三提供的卷积神经网络计算的加速装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
参数设置存储单元31,用于设置与地址生成器相关的地址生成器指令、以及与卷积神经网络相关的卷积神经网络配置参数,并将地址生成器指令和卷积神经网络配置参数存储在配置寄存器中;
通道值获取单元32,用于获取目标图像的宽度、高度和图像通道数,根据宽度和高度计算目标图像的图像像素点数,并根据图像通道数获取目标图像中每个图像像素点对应的各个图像通道值;
数据存储单元33,用于根据图像像素点数,依次将每个图像像素点对应的各个图像通道值以连续的数据地址在数据内存中进行存储;
指令读取单元34,用于当接收到通过卷积神经网络对目标图像对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令;
数据地址输出单元35,用于根据地址生成器指令,控制地址生成器输出图像数据在数据内存中存储的数据地址;
图像数据读取单元36,用于控制数据内存从地址生成器输出的数据地址中读取图像数据,并将读取到的图像数据输入到输入移位寄存器中;
神经元计算单元37,用于控制输入移位寄存器将接收到的图像数据输入到卷积神经网络中进行神经元计算,得到对应的特征图数据,并将特征图数据输入到输出移位寄存器中;以及
特征图存储单元38,用于控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算。
优选地,数据地址输出单元35包括:
像素点获取单元351,用于根据存储在配置寄存器中的卷积神经网络配置参数,得到通过当前的卷积计算待输出的图像数据对应的特征图像素点;以及
地址输出子单元352,用于控制地址生成器根据特征图像素点获得与特征图像素点对应的目标图像的像素点范围,根据像素点范围连续输出对应的数据地址。
在本发明实施例中,卷积神经网络计算的加速装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。具体地,各单元的实施方式可参考前述实施例一的描述,在此不再赘述。
实施例四:
图4示出了本发明实施例四提供的计算设备的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
本发明实施例的计算设备4包括处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42。该处理器40执行计算机程序42时实现上述卷积神经网络计算的加速方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,处理器40执行计算机程序42时实现上述各装置实施例中各单元的功能,例如图2所示单元21至25的功能。
在本发明实施例中,根据对目标图像对应的图像数据进行卷积计算的请求,控制地址生成器将从配置寄存器中读取的地址生成器指令转化成图像数据在数据内存中存储的数据地址,控制数据内存从该数据地址中读取图像数据,并将该图像数据输入到输入移位寄存器中,控制输入移位寄存器将该图像数据输入到卷积神经网络中进行神经元计算,得到对应的特征图数据,并将特征图数据输入到输出移位寄存器中,控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算,从而提高了数据的复用性,并降低读取内存数据的次数,进而提高了卷积神经网络计算的速度。
本发明实施例的计算设备可以为个人计算机、服务器。该计算设备4中处理器40执行计算机程序42时实现卷积神经网络计算的加速方法时实现的步骤可参考前述方法实施例的描述,在此不再赘述。
实施例五:
在本发明实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述卷积神经网络计算的加速方法实施例中的步骤,例如,图1所示的步骤S101至S105。或者,该计算机程序被处理器执行时实现上述各装置实施例中各单元的功能,例如图2所示单元21至25的功能。
在本发明实施例中,根据对目标图像对应的图像数据进行卷积计算的请求,控制地址生成器将从配置寄存器中读取的地址生成器指令转化成图像数据在数据内存中存储的数据地址,控制数据内存从该数据地址中读取图像数据,并将该图像数据输入到输入移位寄存器中,控制输入移位寄存器将该图像数据输入到卷积神经网络中进行神经元计算,得到对应的特征图数据,并将特征图数据输入到输出移位寄存器中,控制输出移位寄存器根据预设的图像数据内存存储方式将接收到的特征图数据输入到数据内存中进行存储,以加速完成当前的卷积计算,从而提高了数据的复用性,并降低读取内存数据的次数,进而提高了卷积神经网络计算的速度。
本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,ROM/RAM、磁盘、光盘、闪存等存储器。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种卷积神经网络计算的加速方法,其特征在于,所述方法包括下述步骤:
当接收到通过卷积神经网络对目标图像对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令;
根据所述地址生成器指令,控制所述地址生成器输出所述图像数据在数据内存中存储的数据地址;
控制所述数据内存从所述地址生成器输出的所述数据地址中读取所述图像数据,并将读取到的所述图像数据输入到输入移位寄存器中;
控制所述输入移位寄存器将接收到的所述图像数据输入到所述卷积神经网络中进行神经元计算,得到对应的特征图数据,并将所述特征图数据输入到输出移位寄存器中;
控制所述输出移位寄存器根据预设的图像数据内存存储方式将接收到的所述特征图数据输入到所述数据内存中进行存储,以加速完成当前的所述卷积计算;
控制地址生成器从配置寄存器中读取预先存储的地址生成器指令的步骤之前,所述方法还包括:
获取所述目标图像的宽度、高度和图像通道数,根据所述宽度和所述高度计算所述目标图像的图像像素点数,并根据所述图像通道数获取所述目标图像中每个图像像素点对应的各个图像通道值;
根据所述图像像素点数,依次将所述每个图像像素点对应的所述各个图像通道值以连续的数据地址在所述数据内存中进行存储。
2.如权利要求1所述的方法,其特征在于,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令的步骤之前,所述方法还包括:
设置与所述地址生成器相关的地址生成器指令、以及与所述卷积神经网络相关的卷积神经网络配置参数,并将所述地址生成器指令和所述卷积神经网络配置参数存储在所述配置寄存器中。
3.如权利要求1或2所述的方法,其特征在于,控制所述地址生成器输出所述图像数据在数据内存中存储的数据地址的步骤,包括:
根据存储在所述配置寄存器中的所述卷积神经网络配置参数,得到通过当前的所述卷积计算待输出的所述图像数据对应的特征图像素点;
控制所述地址生成器根据所述特征图像素点获得与所述特征图像素点对应的所述目标图像的像素点范围,根据所述像素点范围连续输出对应的数据地址。
4.一种卷积神经网络计算的加速装置,其特征在于,所述装置包括:
指令读取单元,用于当接收到通过卷积神经网络对目标图像对应的图像数据进行卷积计算的请求时,控制地址生成器从配置寄存器中读取预先存储的地址生成器指令;
数据地址输出单元,用于根据所述地址生成器指令,控制所述地址生成器输出所述图像数据在数据内存中存储的数据地址;
图像数据读取单元,用于控制所述数据内存从所述地址生成器输出的所述数据地址中读取所述图像数据,并将读取到的所述图像数据输入到输入移位寄存器中;
神经元计算单元,用于控制所述输入移位寄存器将接收到的所述图像数据输入到所述卷积神经网络中进行神经元计算,得到对应的特征图数据,并将所述特征图数据输入到输出移位寄存器中;以及
特征图存储单元,用于控制所述输出移位寄存器根据预设的图像数据内存存储方式将接收到的所述特征图数据输入到所述数据内存中进行存储,以加速完成当前的所述卷积计算;
通道值获取单元,用于获取所述目标图像的宽度、高度和图像通道数,根据所述宽度和所述高度计算所述目标图像的图像像素点数,并根据所述图像通道数获取所述目标图像中每个图像像素点对应的各个图像通道值;以及
数据存储单元,用于根据所述图像像素点数,依次将所述每个图像像素点对应的所述各个图像通道值以连续的数据地址在所述数据内存中进行存储。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
参数设置存储单元,用于设置与所述地址生成器相关的地址生成器指令、以及与所述卷积神经网络相关的卷积神经网络配置参数,并将所述地址生成器指令和所述卷积神经网络配置参数存储在所述配置寄存器中。
6.如权利要求4或5所述的装置,其特征在于,所述数据地址输出单元包括:
像素点获取单元,用于根据存储在所述配置寄存器中的所述卷积神经网络配置参数,得到通过当前的所述卷积计算待输出的所述图像数据对应的特征图像素点;以及
地址输出子单元,用于控制所述地址生成器根据所述特征图像素点获得与所述特征图像素点对应的所述目标图像的像素点范围,根据所述像素点范围连续输出对应的数据地址。
7.一种计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811051235.8A CN109460813B (zh) | 2018-09-10 | 2018-09-10 | 卷积神经网络计算的加速方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811051235.8A CN109460813B (zh) | 2018-09-10 | 2018-09-10 | 卷积神经网络计算的加速方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109460813A CN109460813A (zh) | 2019-03-12 |
CN109460813B true CN109460813B (zh) | 2022-02-15 |
Family
ID=65606587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811051235.8A Active CN109460813B (zh) | 2018-09-10 | 2018-09-10 | 卷积神经网络计算的加速方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460813B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058883B (zh) * | 2019-03-14 | 2023-06-16 | 梁磊 | 一种基于opu的cnn加速方法及系统 |
CN110334801A (zh) * | 2019-05-09 | 2019-10-15 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络的硬件加速方法、装置、设备及系统 |
CN114090470B (zh) * | 2020-07-29 | 2023-02-17 | 深圳市中科元物芯科技有限公司 | 数据预加载装置及其预加载方法、存储介质和计算机设备 |
CN112183732A (zh) * | 2020-10-22 | 2021-01-05 | 中国人民解放军国防科技大学 | 卷积神经网络加速方法、装置和计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960042290A (ko) * | 1995-05-12 | 1996-12-21 | 문정환 | 컴퓨터의 입/출력 컴피그레이션 셋팅시스템 및 방법 |
CN102508802A (zh) * | 2011-11-16 | 2012-06-20 | 刘大可 | 基于并行随机存储器的数据写入、读取方法、装置及系统 |
WO2018071546A1 (en) * | 2016-10-11 | 2018-04-19 | The Research Foundation For The State University Of New York | System, method, and accelerator to process convolutional neural network layers |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887069A (en) * | 1992-03-10 | 1999-03-23 | Hitachi, Ltd. | Sign recognition apparatus and method and sign translation system using same |
US5870105A (en) * | 1996-05-31 | 1999-02-09 | Hewlett-Packard Company | System and method for local storage of image data during object to image mapping |
MY125161A (en) * | 1998-04-27 | 2006-07-31 | Matsushita Electric Ind Co Ltd | Convolutional interleaver, convolutional deinterleaver, convolutional interleaving method, and convolutional deinterleaving method |
JP5376920B2 (ja) * | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
JP6945987B2 (ja) * | 2016-10-28 | 2021-10-06 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
CN106779060B (zh) * | 2017-02-09 | 2019-03-08 | 武汉魅瞳科技有限公司 | 一种适于硬件设计实现的深度卷积神经网络的计算方法 |
CN107657581B (zh) * | 2017-09-28 | 2020-12-22 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN108171317B (zh) * | 2017-11-27 | 2020-08-04 | 北京时代民芯科技有限公司 | 一种基于soc的数据复用卷积神经网络加速器 |
-
2018
- 2018-09-10 CN CN201811051235.8A patent/CN109460813B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960042290A (ko) * | 1995-05-12 | 1996-12-21 | 문정환 | 컴퓨터의 입/출력 컴피그레이션 셋팅시스템 및 방법 |
CN102508802A (zh) * | 2011-11-16 | 2012-06-20 | 刘大可 | 基于并行随机存储器的数据写入、读取方法、装置及系统 |
WO2018071546A1 (en) * | 2016-10-11 | 2018-04-19 | The Research Foundation For The State University Of New York | System, method, and accelerator to process convolutional neural network layers |
Also Published As
Publication number | Publication date |
---|---|
CN109460813A (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460813B (zh) | 卷积神经网络计算的加速方法、装置、设备及存储介质 | |
CN111414987B (zh) | 神经网络的训练方法、训练装置和电子设备 | |
KR20200022739A (ko) | 데이터 증강에 기초한 인식 모델 트레이닝 방법 및 장치, 이미지 인식 방법 및 장치 | |
CN111144561A (zh) | 一种神经网络模型确定方法及装置 | |
CN112562069B (zh) | 三维模型的构造方法、装置、设备和存储介质 | |
CN108304925B (zh) | 一种池化计算装置及方法 | |
CN107292458A (zh) | 一种应用于神经网络芯片的预测方法和预测装置 | |
CN110796251A (zh) | 基于卷积神经网络的图像压缩优化方法 | |
CN111226234A (zh) | 用于创建深度神经网络的方法、设备和计算机程序 | |
CN111931901A (zh) | 一种神经网络构建方法以及装置 | |
WO2016187706A1 (en) | Method and system for event-based neural networks | |
US20240071070A1 (en) | Algorithm and method for dynamically changing quantization precision of deep-learning network | |
CN109447254B (zh) | 一种卷积神经网络推理硬件加速方法及其装置 | |
CN111695689B (zh) | 一种自然语言处理方法、装置、设备及可读存储介质 | |
CN117011856A (zh) | 基于深度强化学习的手写笔迹骨架细化方法、系统、设备、介质 | |
CN110837885A (zh) | 一种基于概率分布的Sigmoid函数拟合方法 | |
CN108376283B (zh) | 用于神经网络的池化装置和池化方法 | |
CN116128044A (zh) | 一种模型剪枝方法、图像处理方法及相关装置 | |
WO2020051751A1 (zh) | 卷积神经网络计算的加速方法、装置、设备及存储介质 | |
KR102393761B1 (ko) | 이미지 처리를 위한 인공 신경망 모델 학습 방법 및 시스템 | |
CN113965313A (zh) | 基于同态加密的模型训练方法、装置、设备以及存储介质 | |
CN114626284A (zh) | 一种模型处理方法及相关装置 | |
CN111382834B (zh) | 一种置信度比较方法及装置 | |
CN112766462A (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN114021635A (zh) | 用于训练模型的方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |