计算装置和方法制造方法及图纸

技术编号:16874728 阅读:77 留言:0更新日期:2017-12-23 12:26
一种计算装置和方法,该计算装置包括运算单元,用于根据指令对数据执行相应运算。本公开的装置解决了CPU和GPU运算性能不足,前端译码开销大的问题,有效提高了对人工神经网络运算算法的支持,避免了内存带宽成为人工神经网络运算及其训练算法性能瓶颈的问题。

Computing devices and methods

A computing device and method, which includes an operation unit, which is used to perform corresponding operations on the data according to the instruction. The device of this open address solves the problem of low performance of CPU and GPU, and high cost of front end decoding. It effectively improves the support of artificial neural network algorithm and avoids the problem of memory bandwidth becoming the bottleneck of artificial neural network operation and training algorithm.

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

【技术保护点】
一种计算装置,其特征在于,包括映射单元和运算单元,所述映射单元用于接收n1个第一输入数据和n2个第二输入数据,并产生第一输出数据;所述运算单元接收第一输出数据和指令,并根据指令执行运算,得到n3个第二输出数据;所述第二输入数据包括输入神经元,或包括权值,或包括输入神经元和权值;所述第二输出数据包括输出神经元;第一输入数据表示输入神经元的每一个和n3个输出神经元的每一个是否有对应;有对应包括输入神经元与输出神经元有对应的权值,无对应包括输入神经元与输出神经元没有对应的权值;映射单元产生第一输出数据包括映射单元根据第一输入数据输出有对应的第二输入数据;或者映射单元将无对应的第二输入数据补上零,然后输出第二输入数据,n1、n2、n3均为大于等于1的正整数。

【技术特征摘要】
1.一种计算装置,其特征在于,包括映射单元和运算单元,所述映射单元用于接收n1个第一输入数据和n2个第二输入数据,并产生第一输出数据;所述运算单元接收第一输出数据和指令,并根据指令执行运算,得到n3个第二输出数据;所述第二输入数据包括输入神经元,或包括权值,或包括输入神经元和权值;所述第二输出数据包括输出神经元;第一输入数据表示输入神经元的每一个和n3个输出神经元的每一个是否有对应;有对应包括输入神经元与输出神经元有对应的权值,无对应包括输入神经元与输出神经元没有对应的权值;映射单元产生第一输出数据包括映射单元根据第一输入数据输出有对应的第二输入数据;或者映射单元将无对应的第二输入数据补上零,然后输出第二输入数据,n1、n2、n3均为大于等于1的正整数。2.如权利要求1所述的计算装置,其特征在于,输入神经元与输出神经元有对应的权值包括输入神经元与输出神经元有对应的非零权值,输入神经元与输出神经元无对应的权值包括输入神经元与输出神经元没有对应的非零权值。3.如权利要求1-2中任一所述的计算装置,其特征在于,所述运算单元接收第一输出数据,并执行运算,得到n3个输出神经元包括:所述运算单元将输入神经元和权值相乘,得到加权神经元数据;将加权神经元数据相加得到总加权神经元数据;和/或对总加权神经元数据执行激活函数运算,得到输出神经元。4.如权利要求3所述的计算装置,其特征在于,所述运算单元将加权神经元数据相加得到总加权神经元数据包括将加权神经元数据执行加法树运算得到总加权神经元数据。5.如权利要求4所述的计算装置,其特征在于,所述运算单元将总加权神经元数据和偏置相加得到加偏置神经元数据,和/或对加偏置神经元数据执...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:南京艾溪信息科技有限公司
类型:发明
国别省市:江苏,32

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

1