一种用于稀疏连接的人工神经网络计算装置和方法制造方法及图纸

技术编号:14572413 阅读:267 留言:0更新日期:2017-02-06 09:19
一种用于稀疏连接的人工神经网络计算装置,包括:映射单元,用于将输入数据转换成输入神经元和权值一一对应的存储方式;存储装置,用于存储数据和指令;运算单元,用于根据指令对数据执行相应运算;所述运算单元主要执行三步运算,第一步将输入的神经元和权值数据相乘;第二步执行加法树运算,将第一步处理后的加权输出神经元通过加法树逐级相加,或将输出神经元通过和偏置相加得到加偏置输出神经元;第三步执行激活函数运算,得到最终输出神经元。本发明专利技术的装置解决了CPU和GPU运算性能不足,前端译码开销大的问题,有效提高了对多层人工神经网络运算算法的支持,避免了内存带宽成为多层人工神经网络运算及其训练算法性能瓶颈的问题。

【技术实现步骤摘要】

本专利技术涉及数据处理
,更具体地涉及一种用于稀疏连接的人工神经网络计算装置和方法
技术介绍
人工神经网络(ArtificialNeuralNetworks,ANNs)简称为神经网络(NNs),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间的相互连接关系,从而达到处理信息的目的。神经网络用到的算法就是向量乘法,并且广泛采用符号函数及其各种逼近。就像大脑里的神经网络一样,神经网络由一些互相连接的节点组成,如图1所示,每个圆圈表示一个神经元,每个箭头表示两个神经元之间的连接又被称为权值。神经元的计算公式可以简单的描述成:其中,x表示所有和输出神经元相连接的输入神经元,w表示x和输出神经元之间对应的权值。f(x)是一个非线性函数,通常称作激活函数,常用的函数如:等。神经网络被广泛应用于各种应用场景:计算视觉、语音识别和自然语言处理等。在近几年的时间里,神经网络的规模一直在增长。在1998年,Lecun用于手写字符识别的神经网络的规模小于1M个权值;在2012年,krizhevsky用于参加ImageNet竞赛的规模是60M个权值。神经网络是一个高计算量和高访存的应用,权值越多,计算量和访存量都会增大。为了减小计算量和权值数量,从而降低访存量,出现了稀疏连接的神经网络,如图2所示即为一个稀疏的神经网络。随着神经网络计算量和访存量的急剧增大,现有技术中通常采用通用处理器计算稀疏的人工神经网络。对于通用处理器,输入神经元、输出神经元和权重分别存储在三个数组中,同时还有一个索引数组,索引数组存储了每个输出和输入连接的连接关系。在计算时,主要的运算是神经元与权值相乘。由于权值和神经元不是一一对应的关系,所以每一次运算都要通过索引数组找到神经元对应的权值。由于通用处理器计算能力和访存能力都很弱,满足不了神经网络的需求。而多个通用处理器并行执行时,通用处理器之间相互通讯又成为了性能瓶颈。在计算剪枝之后的神经网络时,每次乘法运算都要去索引数组里重新查找权值对应的位置,增加了额外的计算量和访存开销。因此计算神经网络耗时长,功耗高。通用处理器需要把多层人工神经网络运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销。另一种支持稀疏连接的人工神经网络运算及其训练算法的已知方法是使用图形处理器(GPU),该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。但由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对稀疏的人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行稀疏的人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种用于稀疏连接的人工神经网络计算装置和方法。为了实现上述目的,作为本专利技术的一个方面,本专利技术提供了一种用于稀疏连接的人工神经网络计算装置,包括:映射单元,用于将输入数据转换成输入神经元和权值一一对应的存储方式,并存储在存储装置和/或缓存中;存储装置,用于存储数据和指令;运算单元,用于根据所述存储装置中存储的指令对所述数据执行相应的运算;所述运算单元主要执行三步运算,第一步是将所述输入神经元和权值数据相乘;第二步执行加法树运算,用于将第一步处理后的加权输出神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏置输出神经元;第三步执行激活函数运算,得到最终输出神经元。其中,所述映射单元中的一一对应关系表示为:第一种情形:采用1表示有连接,0表示无连接,每个输出与所有输入的连接状态组成一个0和1的字符串来表示该输出的连接关系;或者采用1表示有连接,0表示无连接,每个输入与所有输出的连接状态组成一个0和1的字符串来表示该输入的连接关系;第二种情形:将一输出第一个连接所在的位置距离第一个输入神经元的距离、所述输出第二个输入神经元距离上一个输入神经元的距离,所述输出第三个输入神经元距离上一个输入神经元的距离,……,依次类推,直到穷举所述输出的所有输入,来表示所述输出的连接关系。作为本专利技术的另一个方面,本专利技术还提供了一种用于稀疏连接的人工神经网络的计算方法,包括以下步骤:步骤1,将输入数据转换成输入神经元和权值一一对应的存储方式;其中,所述对应关系表示为:第一种情形:采用1表示有连接,0表示无连接,每个输出与所有输入的连接状态组成一个0和1的字符串来表示该输出的连接关系;或者采用1表示有连接,0表示无连接,每个输入与所有输出的连接状态组成一个0和1的字符串来表示该输入的连接关系;第二种情形:将一输出第一个连接所在的位置距离第一个输入神经元的距离、所述输出第二个输入神经元距离上一个输入神经元的距离,所述输出第三个输入神经元距离上一个输入神经元的距离,……,依次类推,直到穷举所述输出的所有输入,来表示所述输出的连接关系步骤2,将输入的神经元和权值数据相乘;步骤3,执行加法树运算,将第一步处理后的加权输出神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏置输出神经元;步骤4,执行激活函数运算,得到最终输出神经元;其中,所述激活函数为sigmoid函数、tanh函数或ReLU函数。基于上述技术方案可知,本专利技术的人工神经网络计算装置和方法具有以下有益效果:(1)通过采用针对稀疏的多层人工神经网络运算的专用SIMD指令和定制的运算单元,解决了CPU和GPU运算性能不足,前端译码开销大的问题,有效提高了对多层人工神经网络运算算法的支持;(2)通过采用针对多层人工神经网络运算算法的专用片上缓存,充分挖掘了输入神经元和权值数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层人工神经网络运算及其训练算法性能瓶颈的问题。附图说明图1是神经网络的节点结构示意图;图2是稀疏连接的神经网络的节点结构示意图;图3是作为本专利技术一实施例的总体结构的示意性框图;图4是作为本专利技术一实施例的一稀疏连接的神经网络的节点结构示意图;图5是图4的神经网络的连接关系示意图;图6是作为本文档来自技高网
...
一种用于稀疏连接的人工神经网络计算装置和方法

【技术保护点】
一种用于稀疏连接的人工神经网络计算装置,其特征在于,包括:映射单元,用于将输入数据转换成输入神经元和权值一一对应的存储方式,并存储在存储装置和/或缓存中;存储装置,用于存储数据和指令;运算单元,用于根据所述存储装置中存储的指令对所述数据执行相应的运算;所述运算单元主要执行三步运算,第一步是将所述输入神经元和权值数据相乘;第二步执行加法树运算,用于将第一步处理后的加权输出神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏置输出神经元;第三步执行激活函数运算,得到最终输出神经元。

【技术特征摘要】
1.一种用于稀疏连接的人工神经网络计算装置,其特征在于,包括:
映射单元,用于将输入数据转换成输入神经元和权值一一对应的存储
方式,并存储在存储装置和/或缓存中;
存储装置,用于存储数据和指令;
运算单元,用于根据所述存储装置中存储的指令对所述数据执行相应
的运算;所述运算单元主要执行三步运算,第一步是将所述输入神经元和
权值数据相乘;第二步执行加法树运算,用于将第一步处理后的加权输出
神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏
置输出神经元;第三步执行激活函数运算,得到最终输出神经元。
2.如权利要求1所述的用于稀疏连接的人工神经网络计算装置,其
特征在于,所述映射单元中的一一对应关系如下表示:
第一种情形:
采用1表示有连接,0表示无连接,每个输出与所有输入的连接状
态组成一个0和1的字符串来表示该输出的连接关系;或者
采用1表示有连接,0表示无连接,每个输入与所有输出的连接状
态组成一个0和1的字符串来表示该输入的连接关系;
第二种情形:
将一输出第一个连接所在的位置距离第一个输入神经元的距离、所
述输出第二个输入神经元距离上一个输入神经元的距离,所述输出第三个
输入神经元距离上一个输入神经元的距离,……,依次类推,直到穷举所
述输出的所有输入,来表示所述输出的连接关系。
3.如权利要求1所述的用于稀疏连接的人工神经网络计算装置,其
特征在于,所述人工神经网络计算装置还包括DMA,用于在所述存储装
置和缓存中进行数据或者指令读写。
4.如权利要求3所述的用于稀疏连接的人工神经网络计算装置,其
特征在于,所述人工神经网络计算装置还包括:
指令缓存,用于存储专用指令;以及
控制单元,用于从所述指令缓存中读取专用指令,并将其译码成各运
算单元指令。
5.如权利要求3所述的用于稀疏连接的人工神经网络计算装置,其
特征在于,所述人工神经网络计算装置还包括:
输入神经元缓存,用于缓存输入到所述运算单元的输入神经元数据;
以及
权值缓存,用于缓存权值数据。
6.如权利要求3所述的用于稀疏连接的人工神经网络计...

【专利技术属性】
技术研发人员:张士锦郭崎陈云霁陈天石
申请(专利权)人:南京艾溪信息科技有限公司
类型:发明
国别省市:江苏;32

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

1