一种卷积神经网络加速装置和方法制造方法及图纸

技术编号:18657974 阅读:29 留言:0更新日期:2018-08-11 14:25
本发明专利技术的实施例提供一种卷积神经网络加速装置和方法。该卷积神经网络加速装置包括:调度单元,所述调度单元根据输入数据的尺寸/维度及滤波器的尺寸/步长产生控制命令,控制数据搬移单元和行数据扩展单元的行为;数据搬移单元,根据所述调度单元的命令,主动从系统存储空间中读取原始输入数据;行数据缓存单元,所述行数据缓存单元用于存储读入的原始输入数据;以及行数据扩展单元,所述行数据扩展单元每次从所述行数据缓存单元中读出一行原始数据,然后按照滤波窗口的尺寸将行数据扩展为不同滤波窗口中的一行数据。

A convolution neural network acceleration device and method

The embodiment of the invention provides a convolution neural network acceleration device and method. The convolutional neural network accelerator comprises a scheduling unit which generates control commands according to the size/dimension of input data and the size/step size of the filter to control the behavior of the data moving unit and the row data expanding unit, and a data moving unit which actively stores empty space from the system according to the command of the scheduling unit. A row data caching unit for storing read-in raw input data; and a row data extending unit for reading out one row of raw data from the row data caching unit at a time, and then expanding the row data according to the size of the filter window It is shown as a row of data in different filter windows.

【技术实现步骤摘要】
一种卷积神经网络加速装置和方法
本专利技术涉及卷积神经网络领域,尤其涉及一种卷积神经网络加速装置和方法。
技术介绍
卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈神经网络,与传统的BP神经网络相比,具有识别效率高、旋转缩放不变性好等优点,已在数字图像处理及人脸识别等各个领域得到了广泛的应用。传统卷积神经网络一般由多个交替的卷积层、池化层以及最后的全连接层组成。卷积神经网络可通过反向传播方法将网络损失传递到网络的所有层。参数更新学习过程通过随机梯度下降算法来实现。卷积神经网络与传统神经网络最大的区别在于,其卷积层采用了一种权值共享局部连接网络,而不是传统的权值独立全连接网络,这使得在层数相同的情况下,卷积神经网络的连接数目要远少于传统神经网络。卷积层的二维数据结构使得卷积神经网络非常适合于处理图像数据信息。此外,池化层的加入使得卷积神经网络对输入数据的几何变化(平移、缩放、旋转等)具有一定程度的稳健性。卷积神经网络由于其强大的数据特征提取能力和非线性学习能力,在性能上超越了大多数传统的机器视觉算法。目前在图像分类、目标识别等研究和应用领域,卷积神经网络已经成为主流方法。然而,基于卷积神经网络的图像处理技术,如图像识别技术,为了从复杂场景中分开并识别出每个物体,需要使用大量的模板对图像进行遍历卷积计算,其数据搬运量大,计算量大导致计算时间长,因此很难实现实时物体识别。异构计算系统是由主处理器和加速器两种体系结构处理器搭建而成的计算机系统。通过协调地使用性能、结构各异的处理单元,能够满足不同的计算需求,以获取最大总体性能方式完成加速计算。因此,异构计算对以上卷积神经网络计算问题的解决提供了较好的思路。现有常见的异构计算系统有CPU+GPU和CPU+MIC(超多核心)组成异构计算系统等。异构计算系统能够有效地获取高性能计算能力,具有可扩展性好、计算资源利用率高、发展潜力巨大等优点,目前已成为并行/分布计算领域中的研究热点之一。中国专利申请CN201710641599.0公开了一种异构计算平台与基于异构计算平台的加速方法。在该专利申请中,异构计算平台可包括主机与多个可编程器件,主机与各个可编程器件分别相连。主机用于初始化可编程器件、各个可编程器件的并行调度、为各个所述可编程器件发送计算数据以及获得计算结果。各个可编程器件并行处理分配给自身的计算数据。主机在完成所述可编程器件的初始化之后,为完成初始化的各个可编程器件发送计算数据;各个可编程器件在收到所述主机发送的计算数据之后,分别结合发送给自身的计算数据进行并行计算,得到计算结果;最后,主机从各个可编程器件获得上述计算结果并进行保存。在现有卷积神经网络计算中,由于主机和加速器(如可编程器件)的设计目标和计算性能的不同,计算数据的发送和搬运都需要主机来执行,通过大量的寄存器配置为加速器计算进行准备,然后启动加速器,通过中断方式告知主机加速完成,需要花费大量的主机时间和等待时间。此外,完成计算后主机从加速器系统内部存储中获得计算结果,并进行保存也会带来大量的系统时间损耗,从而严重影响了整个异构系统的计算效率。对于卷积神经网络计算,每一层的输入数据不能直接应用于卷积神经网络,需要主机按照滤波器窗口尺寸抽取对应的二维数据并转换成串行数组。这一过程需要消耗部分主机的算力。输入数据经过处理后,数据量会被放大,放大的倍数以滤波窗的尺寸和步长决定。这会导致对输入数据的带宽要求提高,或者在同等带宽下降低卷积神经网络的吞吐率。针对现有的利用异构计算系统进行卷积神经网络计算过程中存在的问题,本领域需要一种新型的卷积神经网络加速装置和方法,通过该加速装置和方法,能够减轻主机负担并降低对内存带宽的需求。
技术实现思路
针对现有技术中存在的问题,在本专利技术的一个实施例中,提供一种输入数据转换装置,包括:调度单元,所述调度单元根据输入数据的尺寸/维度及滤波器的尺寸/步长产生控制命令,控制数据搬移单元和行数据扩展单元的行为;数据搬移单元,根据所述调度单元的命令,主动从系统存储空间中读取原始输入数据;行数据缓存单元,所述行数据缓存单元用于存储读入的原始输入数据;以及行数据扩展单元,所述行数据扩展单元每次从所述行数据缓存单元中读出一行原始数据,然后按照滤波窗口的尺寸将行数据扩展为不同滤波窗口中的一行数据。在本专利技术的一个实施例中,输入数据转换装置还包括位宽转换单元,所述位宽转换单元将所述行数据扩展单元的扩展数据转换为统一的位宽,并输出到运算单元。在本专利技术的一个实施例中,所述行数据扩展单元是多路行数据扩展单元,多路行数据扩展单元同时扩展出多路滤波器窗口行数据。在本专利技术的一个实施例中,所述行数据缓存单元存储滤波窗口所需要的N行输入数据。在本专利技术的一个实施例中,所述行数据扩展单元从行缓存单元读入N行输入数据中的第一行数据,并扩展出全部滤波器窗口的该行数据;所述行数据扩展单元再从行缓存单元读入下一行数据,并扩展出全部滤波器窗口的该行数据;所述行数据扩展单元重复该动作直至扩展完成滤波器窗口里的所有N行数据;所述行数据缓存单元存储读入所述N行数据的下一行输入数据替换所述N行输入数据中的第一行数据,作为更新的N行输入数据;所述行数据扩展单元针对更新的N行输入数据,扩展出滤波器窗口里的所有N行数据。在本专利技术的另一个实施例中,提供一种卷积神经网络异构计算系统,包括:主控单元,主控单元将需要加速器进行处理的原始数据存储在系统存储器中;加速器,所述加速器包括输入数据转换装置以及运算单元。在本专利技术的又一个实施例中,提供一种卷积神经网络异构计算方法,包括:A)读入滤波窗口所需要的N行输入数据,并存入行数据缓存单元;B)通过行数据扩展单元从行缓存单元读入所述N行数据中的第一行数据,并扩展出全部滤波器窗口的该行数据;C)通过行数据扩展单元从行缓存单元读入下一行数据,并扩展出使用该行数据的全部滤波器窗口,重复步骤C)直至扩展完成滤波器窗口里的所有N行数据;D)将所述N行数据的下一行输入数据读入行数据缓存单元并替换所述N行输入数据中的第一行数据,作为更新的N行输入数据;E)重复步骤B)和步骤C),以便针对更新的N行输入数据,扩展出滤波器窗口里的所有N行数据。在本专利技术的又一个实施例中,通过位宽转换单元将滤波器窗口里的所有N行数据转换成统一的位宽,并输出至运算单元。在本专利技术的又一个实施例中,所述输入数据具有多个维度,对于每一个维度,在步骤D)之前,重复步骤A)至步骤C),并产生滤波窗口所需的数据。在本专利技术的又一个实施例中,重复步骤D)和步骤E),以便扩展出输入数据中所有行的滤波器窗口数据。在本专利技术的又一个实施例中,在步骤A)之前,在输入数据的第一行之前补入一行或多行零,并在输入数据的最后一行之后补入一行或多行零。通过本专利技术公开的输入数据转换装置和方法,异构计算系统的加速器可以自行完成卷积神经网络的数据预处理,降低了主控单元的算力要求。本专利技术公开的输入数据转换装置和方法充分利用了不同滤波器窗口输入数据的空间相关性,将卷积神经网络所需搬运的数据量降低到理论极限值,极大的降低了对内存带宽的需求。此外,在卷积计算过程中,数据搬移的工作完全由加速器主动发起,减轻了主控单元的负担。附图说明为了进一步阐明本本文档来自技高网
...

【技术保护点】
1.一种输入数据转换装置,包括:调度单元,所述调度单元根据输入数据的尺寸/维度及滤波器的尺寸/步长产生控制命令,控制数据搬移单元和行数据扩展单元的行为;数据搬移单元,根据所述调度单元的命令,主动从系统存储空间中读取原始输入数据;行数据缓存单元,所述行数据缓存单元用于存储读入的原始输入数据;以及行数据扩展单元,所述行数据扩展单元每次从所述行数据缓存单元中读出一行原始数据,然后按照滤波窗口的尺寸将行数据扩展为不同滤波窗口中的一行数据。

【技术特征摘要】
1.一种输入数据转换装置,包括:调度单元,所述调度单元根据输入数据的尺寸/维度及滤波器的尺寸/步长产生控制命令,控制数据搬移单元和行数据扩展单元的行为;数据搬移单元,根据所述调度单元的命令,主动从系统存储空间中读取原始输入数据;行数据缓存单元,所述行数据缓存单元用于存储读入的原始输入数据;以及行数据扩展单元,所述行数据扩展单元每次从所述行数据缓存单元中读出一行原始数据,然后按照滤波窗口的尺寸将行数据扩展为不同滤波窗口中的一行数据。2.如权利要求1所述的输入数据转换装置,其特征在于,还包括位宽转换单元,所述位宽转换单元将所述行数据扩展单元的扩展数据转换为统一的位宽,并输出到运算单元。3.如权利要求1所述的输入数据转换装置,其特征在于,所述行数据扩展单元是多路行数据扩展单元,多路行数据扩展单元同时扩展出多路滤波器窗口行数据。4.如权利要求1所述的输入数据转换装置,其特征在于,所述行数据缓存单元存储滤波窗口所需要的N行输入数据。5.如权利要求1所述的输入数据转换装置,其特征在于,所述行数据扩展单元从行缓存单元读入N行输入数据中的第一行数据,并扩展出全部滤波器窗口的该行数据;所述行数据扩展单元再从行缓存单元读入下一行数据,并扩展出全部滤波器窗口的该行数据;所述行数据扩展单元重复该动作直至扩展完成滤波器窗口里的所有N行数据;所述行数据缓存单元存储读入所述N行数据的下一行输入数据替换所述N行输入数据中的第一行数据,作为更新的N行输入数据;所述行数据扩展单元针对更新的N行输入数据,...

【专利技术属性】
技术研发人员:刘明润陈亮李晓鹏
申请(专利权)人:上海熠知电子科技有限公司
类型:发明
国别省市:上海,31

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

1