基于压缩感知的神经网络处理系统及方法与流程

文档序号:15589331发布日期:2018-10-02 18:45阅读:463来源:国知局

本公开属于计算机技术领域,更具体地涉及一种基于压缩感知的神经网络处理系统及方法。



背景技术:

人工神经网络(artificialneuralnetworks,anns)简称为神经网络(neuralnetworks,nns)。它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间的相互连接关系,从而达到处理信息的目的。深度学习(deeplearning)的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

目前的各种神经网络计算装置,往往面临访存瓶颈的问题,加载与存储数据造成了很大的时间与能量开销。



技术实现要素:

(一)要解决的技术问题

基于以上问题,本公开的目的在于提出一种基于压缩感知的神经网络处理系统及方法,用于解决以上技术问题的至少之一。

(二)技术方案

为了达到上述目的,作为本公开的一个方面,提供了一种基于压缩感知的神经网络处理系统,包括:

片下压缩单元,用于对片下数据进行压缩并发送至片上;以及

片上计算装置,与所述片下压缩单元连接,用于接收所述压缩并发送至片上的数据,执行神经网络运算;

其中,所述压缩单元基于压缩感知对所述片下数据进行压缩。

在一些实施例中,所述的神经网络处理系统,还包括:

片上解压缩单元,设于所述计算装置内,用于对经所述片下压缩单元压缩并发送片上的数据进行解压缩;

片上压缩单元,设于所述计算装置内,用于对片上数据进行压缩并发送至片下;以及

片下解压缩单元,设于所述计算装置外,用于对经所述片上压缩单元压缩并发送至片下的数据进行解压缩。

在一些实施例中,若数据是可压缩的或在一变换域是稀疏的,通过对数据进行随机采样,变换至一稀疏的域,使用一与变换基不相关的观测矩阵将变换后的数据投影得到观测值,其中观测值所在的空间维度比投影前的数据所在的空间维度低,从而实现基于压缩感知的数据压缩。

在一些实施例中,利用非线性重建算法,求解欠定方程组的稀疏解,重构原数据,从而实现基于压缩感知的数据解压缩,所述非线性重建算法包括贪婪算法、迭代阈值法、基追踪法。

在一些实施例中,利用所述压缩单元进行压缩的数据及利用所述解压缩单元进行解压缩的数据包括神经网络中的神经元数据和权值数据。

在一些实施例中,所述计算装置还包括:存储单元、指令控制单元以及运算单元;其中,

所述存储单元用于存储运算指令以及经所述片下压缩单元压缩后的数据;

所述片上解压缩单元与所述存储单元连接,用于接收所述存储单元发送的压缩后的数据并进行解压缩;

所述指令控制单元与所述存储单元连接,用于接收所述存储单元发送的运算指令,并译码为相应的微指令;

所述运算单元与所述解压缩单元和所述指令控制单元连接,用于接收所述微指令以及经所述片上解压缩单元解压缩后的数据,并进行神经网络运算;

所述片上压缩单元,用于对所述运算单元输出的数据进行压缩并发送至片下。

在一些实施例中,所述计算装置还包括:直接存储访问单元、指令缓存单元、输入权值缓存单元、输入神经元缓存单元以及输出缓存单元;其中,

所述直接存储访问单元用于在所述存储单元与所述指令缓存单元、所述输入权值缓存单元、所述输入神经元缓存单元和所述输出缓存单元之间进行数据读写;

所述指令缓存单元与所述直接存储访问单元连接,用于接收运算指令并发送至所述指令控制单元;

所述输入权值缓存单元与所述直接存储访问单元连接,用于接收权值数据并发送至所述片上解压缩单元;

所述输入神经元缓存单元与所述直接存储访问单元连接,用于接收神经元数据并发送至所述片上解压缩单元;

所述输出缓存单元与所述运算单元连接,用于接收运算单元输出的数据并发送至所述直接存储访问单元或发送至所述片上压缩单元。

根据本公开的另一个方面,提供了一种基于压缩感知的神经网络处理方法,包括:

对片下数据进行压缩并发送至片上;

对所述压缩并发送至片上的数据进行解压缩;

接收所述解压缩后的数据并执行神经网络运算;

对神经网络运算得到的数据进行压缩并发送至片下;以及

对所述压缩并发送至片下的数据进行解压缩并存储为片下数据;

其中,基于压缩感知对数据进行所述压缩和/或解压缩操作。

在一些实施例中,若数据是可压缩的或在一变换域是稀疏的,通过对数据进行随机采样,变换至一稀疏的域,使用一与变换基不相关的观测矩阵将变换后的数据投影得到观测值,其中观测值所在的空间维度比投影前的数据所在的空间维度低,从而实现基于压缩感知的数据压缩。

在一些实施例中,利用非线性重建算法,求解欠定方程组的稀疏解,重构原数据,从而实现基于压缩感知的数据解压缩,所述非线性重建算法包括贪婪算法、迭代阈值法、基追踪法。

(三)有益效果

(1)本公开可以利用压缩感知对数据进行压缩,从而有效地减少了神经网络加速器所需的io量,减少了能耗,提高了处理速度;另外,利用压缩感知对数据进行解压缩,还原原数据,满足了神经网络处理的数据精度需求。

(2)本公开可以利用压缩感知对数据进行去噪声、提取特征等有益操作,提高数据质量。

附图说明

图1为依据本公开一实施例神经网络处理系统的方块图。

图2为依据本公开另一实施例神经网络处理系统方块图。

图3为依据本公开一实施例计算装置方块图。

图4为依据本公开另一实施例计算装置及神经网络处理系统方块图。

图5为依据本公开又一实施例计算装置及神经网络处理系统方块图。

图6为依据本公开另一实施例计算装置方块图。

图7为依据本公开又一实施例计算装置方块图。

图8为依据本公开实施例神经网络处理方法流程图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。

为了解决现有的各种神经网络计算装置面临访存瓶颈的问题,减少在加载与存储数据时造成的时间与能量开销,本公开提供一种神经网络处理系统及方法,利用压缩感知对数据进行压缩,从而减少时间与能量开销。

压缩感知(compressivesensing),又称压缩采样,压缩传感。它作为一个新的采样理论,通过开发信号的稀疏特性,在远小于nyquist采样率的条件下,用随机采样获取信号的离散样本,然后通过非线性重建算法完美的重建信号。所述“随机采样”一般是使用随机高斯观测矩阵对原始信号进行测量(感知),但也可以是其他观测矩阵,如随机贝努利矩阵等,且观测矩阵需服从约束等距性(restrictedisometryproperty,rip)等理论的约束。压缩感知可以有很高的压缩比。

所述压缩感知的过程可以为:如果原始信号是可压缩的或在某个变换域是稀疏的,就可以用一个与变换基不相关的观测矩阵将变换(即原始信号变换至一个稀疏的域)所得高维信号(投影前的信号)投影到一个低维空间上得到观测值(投影后的信号)(其中观测值所在的空间维度比投影前的数据所在的空间维度低),由此实现基于压缩感知的数据压缩。然后通过求解一优化问题就可以从这些少量的投影中以高概率重构出原信号(解压缩)。所述最优化问题实际上是求解一个欠定方程组的稀疏解。对数据基于压缩感知进行压缩,将压缩以后的数据加载到片上计算装置的存储单元中,之后对加载到计算装置存储单元上的数据进行解压缩,得到原始数据。压缩感知的过程中,对数据随机采样,从而映射到稀疏的域,得到原始数据稀疏的表示。

目前的压缩感知的重构,即基于压缩感知的解压缩的算法有很多种,包括贪婪算法、迭代阈值法、基追踪法等,这些方法均可以应用于本公开中的解压缩单元。

在一些实施例中,如图1所示,所述基于压缩感知的神经网络处理系统包括:

片下压缩单元,用于对片下数据进行压缩并发送至片上;以及

片上计算装置,与所述片下压缩单元连接,用于接收所述压缩并发送至片上的数据,执行神经网络运算;

其中,所述压缩单元基于压缩感知对所述片下数据进行压缩。

本实施例通过对片下数据压缩再加载至片上,减少了io数量,降低了时间与能量开销。

在一些实施例中,如图2所示,所述的神经网络处理系统包括上述片下压缩单元和片上计算装置,还包括:片下解压缩单元;且所述片上计算装置包括片上解压缩单元和片上压缩单元;其中

所述片下压缩单元,用于对片下数据进行压缩并发送至片上;

所述片上解压缩单元,设于所述计算装置内,用于对经所述片下压缩单元压缩并发送至片上的数据进行解压缩;

所述片上压缩单元,设于所述计算装置内,用于对片上数据进行压缩并发送至片下;以及

所述片下解压缩单元,设于所述计算装置外,用于对经所述片上压缩单元压缩并发送至片下的数据进行解压缩。由此,通过对片上数据压缩再输出至片下,同样减少了io数量,降低了时间与能量开销。

上述实施例中,解压缩单元用于对数据进行解压缩处理,将压缩后的数据还原。在解压缩单元中也可以有压缩模块或者在解压缩单元外也可以有其他压缩模块对解压缩后的数据使用其他方式(如量化等)进行压缩以降低数据维度,减少运算单元中的数据运算量,提高数据处理效率。

本公开中所提及的加载(load)、存储(store)到片上、片下操作,即io操作,可以是通过pcie总线等来传输数据,可以是通过dma,也可以是通过无线网络传输数据,对此不作限制,只要是在上述计算装置与他的装置之间传输数据,均可使用本公开中提及的传输方式。

另外,虽然上述实施例中是采用解压缩单元对数据进行解压缩操作,但是关于本公开中的对数据进行解压缩的操作,也可以使用神经网络计算装置的运算单元来进行(同样的,压缩操作既可以采用压缩单元来进行,也可以采用运算单元来进行)。若使用运算单元,则可以省去解压缩单元带来的硬件代价,使得面积更小,但增加了一定的运算单元的负担,使得流水线中计算阶段的时间变长,因此更适合于io操作占比更大的情况。若增加专门的解压缩单元,则可以充分利用流水线技术,使得解压缩单元与运算单元并行工作,将压缩操作作为加载数据操作的一部分。

在一些实施例中,如图3所示,该计算装置包括:解压缩单元101、存储单元102、指令控制单元107以及运算单元108;其中,

所述存储单元用于存储运算指令以及经压缩操作后的数据;

所述解压缩单元与所述存储单元连接,用于接收所述存储单元发送的压缩操作后的数据,并进行解压缩操作;

所述指令控制单元与所述存储单元连接,用于接收所述存储单元发送的运算指令,并译码为相应的微指令;

所述运算单元与所述解压缩单元和所述指令控制单元连接,用于接收所述微指令以及经解压缩操作后的数据,并进行神经网络运算。所述运算单元进行神经网络运算得到的运算结果可以反馈至所述计算装置的所述存储单元,也可以发送至片下。

进一步的,如图4所示,所述计算装置还可包括片上压缩单元111,用于对所述运算单元的运算结果进行压缩再发送至片下。相应的,所述神经网络处理系统还可进一步包括片下解压缩单元112,用于对经所述片上压缩单元压缩后发送至片下的数据进行解压缩,从而在片下存储。

如图5所示,所述神经网络处理系统还可以包括片下压缩单元113,用于在片下数据输入在所述计算装置之前,对数据进行压缩,以减少io开销。

在一些实施例中,如图6所示,所述计算装置包括:存储单元102、第一输入缓存单元105、第二输入缓存单元106、指令控制单元107、解压缩单元101以及运算单元108。其中所述第一输入缓存单元可以为神经元缓存单元,所述第二输入缓存单元可以为权值缓存单元。

可选的,所述计算装置还可包括直接存储访问(directmemoryaccess,dma)单元103、指令缓存单元104以及输出缓存单元109。

其中,所述存储单元用于存储运算指令(具体可包括但不限于神经网络运算指令、非神经网络运算指令、加法指令、卷积指令等)以及输入数据(具体可包括但不限于压缩处理后的输入数据、输入数据的位置关系数据、运算结果以及其他神经网络运算中产生的中间数据等)。所述输入数据包括但不限于输入权值和输入神经元数据,且所述输入数据可包括至少一个输入权值和/或至少一个输入神经元,具体数量不作限定,即所述输入数据。

所述直接存储访问dma单元用于在所述存储单元102与所述指令缓存单元104、所述第二输入缓存单元106、所述第一输入缓存单元105和所述输出缓存单元109之间进行数据读写。

更具体而言,所述dma单元103可从所述存储单元102中读取运算指令,并将该运算指令发送给指令控制单元107,或缓存至指令缓存单元104。

所述dma单元103还可从所述存储单元102中读取输入权值或处理后的输入权值,以发送至第一输入存储单元105或第二输入存储单元106中进行缓存。相应地,dma单元103还可从所述存储单元102中读取输入神经元或处理后的输入神经元,以发送至第一输入存储单元105或第二输入存储单元106中。其中,所述第一输入存储单元105和第二输入存储单元106中缓存的数据不同,例如第一输入缓存单元105为神经元缓存单元,其存储有输入神经元或处理后的输入神经元,第二输入缓存单元106为权值缓存单元,其存储输入权值或处理后的权值;反之亦然。

所述指令缓存单元104用于缓存运算指令。

所述指令控制单元107可用于从所述指令缓存单元或存储单元中获取运算指令,进一步地可将所述运算指令译码为相应的微指令,以便所述运算单元中的相关部件能够识别和执行。

所述输出缓存单元109可用于缓存所述运算单元输出的运算结果。

所述运算单元用于根据指令控制单元发送的微指令进行相应的数据运算处理,以获得运算结果。

所述解压缩单元用于对数据进行解压缩处理,将压缩后的数据还原。

当然,与前一实施例类似,所述计算装置还可包括片上压缩单元,用于对所述计算装置的运算结果进行压缩再发送至片下。相应的,所述神经网络处理系统还可进一步包括片下解压缩单元,用于对经所述片上压缩单元压缩后发送至片下的数据进行解压缩,从而在片下存储。所述神经网络处理系统还可以包括片下压缩单元,用于在片下数据输入在所述计算装置之前,对数据进行压缩,以减少io数量。

所述运算指令可以包括:操作域以及操作码,以卷积运算指令为例,如表1所示,其中,寄存器号(可选的,寄存器也可以是寄存器堆)0、寄存器号(可选的,寄存器也可以是寄存器堆)1、寄存器号(可选的,寄存器也可以是寄存器堆)2、寄存器号(可选的,寄存器也可以是寄存器堆)3、寄存器号(可选的,寄存器也可以是寄存器堆)4可以为操作域。

表1运算指令形式

在一些实施例中,如图7所示,与前述实施例计算装置不同的是,本实施例计算装置还包括预处理单元110,用于对输入存储单元的数据进行预处理。例如本公开中,所述存储单元中缓存的输入数据即可为经过该预处理单元处理后的输入数据等。所述预处理包括但不限于以下处理中的任一项或多项的组合:高斯滤波、二值化、归一化、正则化、异常数据筛选等等,本公开不做限定。本实施例其他功能模块与前一实施例类似,此处不再赘述。

本公开包括可选地使用专门的指令集来实现相应的压缩感知压缩、解压缩操作。也就是说,所述的压缩与解压缩操作,还可以使用专门的指令来完成,也可以默认地在load指令加载数据的时候,自动完成压缩与解压缩的操作,在store指令存储数据的时候,自动地完成压缩与解压缩的操作。

本公开包括使用压缩指令、解压缩指令来实现相应的压缩感知压缩、解压缩操作,所述压缩指令、解压缩指令的形式具体如表2所示。

表2压缩指令和解压缩指令形式

另外,所述计算装置中还可以包括其他类型的压缩单元,例如量化压缩单元,由此可以对数据采用其他方式(如量化等)进行压缩以降低数据占用存储资源量,乃至减少数据运算量,提高数据处理效率。

本公开中,所述片下数据、片上数据包括神经网络中的神经元数据和权值数据。所述压缩单元基于压缩感知对输入至所述压缩单元的数据进行压缩,所述解压缩单元基于压缩感知对输入至所述解压缩单元的数据进行解压缩,解压缩也即重构,用于还原原数据。

在一些实施例中,如图8所示,本公开还提供一种基于压缩感知的神经网络处理方法,包括:

对片下数据进行压缩并发送至片上,即片下压缩和加载步骤;

对所述压缩并发送至片上的数据进行解压缩,即片上解压缩步骤;

接收所述解压缩后的数据并执行神经网络运算,即片上运算步骤;

对神经网络运算得到的数据进行压缩并发送至片下,即片上压缩步骤;以及

对所述压缩并发送至片下的数据进行解压缩并存储为片下数据,即片下解压缩和存储步骤;

其中,基于压缩感知对数据进行所述压缩和/或解压缩操作。

所述压缩感知的过程可以为:如果原始信号是可压缩的或在某个变换域是稀疏的,就可以用一个与变换基不相关的观测矩阵将变换(即原始信号变换至一个稀疏的域)所得高维信号(投影前的信号)投影到一个低维空间上得到观测值(投影后的信号)(其中观测值所在的空间维度比投影前的数据所在的空间维度低),由此实现基于压缩感知的数据压缩。然后通过求解一优化问题就可以从这些少量的投影中以高概率重构出原信号(解压缩)。所述最优化问题实际上是求解一个欠定方程组的稀疏解。在一些实施例中,在片下压缩的步骤和片上解压缩的步骤之间还包括:在片上存储指令和经片下压缩后发送至片上的数据,即片上存储步骤;

在进行神经网络运算的步骤之前还包括:将所述指令译码为微指令,即片上译码步骤;

由此,利用所述微指令以及经片上解压缩后的数据进行神经网络运算。

在片上存储步骤之前,还包括:对所述经片下压缩后发送至片上的数据进行预处理,即片上预处理步骤。

在一些实施例中,利用压缩指令和解压缩指令进行压缩操作和解压缩操作,所述压缩指令包括:域1,用于存储指令类型;域2用于存储源地址是否在片上信息;域3,用于存储目的地址是否在片上信息;域4,用于存储源地址是否使用寄存器;域5,用于存储目的地址是否使用寄存器;域6,用于存储源地址;域7,用于存储目的地址;域8,用于存储寄存器号,参照前述表2所示。

在上述神经网络处理方法中,涉及到片上与片下之间数据传输可通过pcie总线、dma、无线网络实现。

本公开中,所述压缩以及解压缩操作的数据既可以是神经网络中的神经元数据,也可以是神经网络中的权值数据。此压缩操作可以作为神经网络训练阶段的一部分,得到数据或权值的压缩方法;也可以作为神经网络运算的一种算子操作。

另外,在片上压缩之后、片下存储之前,视其用途,可选择性的进行解压缩或者也可以不进行解压缩,以备后续所需,例如若数据存储片下之后还要再行加载至片上,此时就可以选择不进行解压缩。

在一些实施例中,本公开还提供了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行所述方法。

在一些实施例中,本公开还提供了一种芯片,所述芯片包括如上所述的计算装置。

在一些实施例中,本公开还提供了一种芯片封装结构,所述芯片封装结构包括如上第四方面提供的芯片。

在一些实施例中,本公开还提供了一种板卡,所述板卡包括如上所述的芯片封装结构。

在一些实施例中,本公开还提供了一种电子设备,所述电子设备包括如上所述的板卡。

在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。

在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1