运算装置、运算方法和芯片制造方法及图纸

技术编号:20026726 阅读:28 留言:0更新日期:2019-01-06 05:28
本发明专利技术提供了一种运算装置,包括:筛选单元,用于根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算得到该输出神经元的特征图和与之对应的权值,并将结果输出至运算单元;和/或用于根据输出神经元与输入神经元组成的特征图中每行/列的连接状态数组,筛选出用于计算得到该输出神经元的特征图行/列,以及与之对应的权值行/列,并将所得结果输出至运算单元;以及运算单元,根据指令对筛选单元输出的数据执行相应的支持结构裁剪的人工神经网络运算,得到输出神经元。本发明专利技术避免了将所有输入神经元和权值都参与网络运算造成的运算量冗余和访存冗余,解决了CPU和GPU运算性能不足,前端译码开销大的问题。

【技术实现步骤摘要】
运算装置、运算方法和芯片
本专利技术属于数据处理
,涉及一种运算装置、运算方法和芯片。
技术介绍
人工神经网络(artificialneuralnetwork,ANN),简称神经网络(neuralnetwork,NN),是一种模仿生物神经网络的结构和功能的数学模型或运算模型。人工神经网络在诸多领域有着广泛的应用,如图像识别、计算机视觉、语音识别、自然语言处理等领域,并在这些领域取得了十分优秀的成果。随着神经网络的发展,其网络框架逐渐庞大,网络参数逐渐增多,其运算密集性和存储密集性的特征逐渐显著,例如,基于caffe的网络架构,GoogLeNetCaffemodel大小约为50MB,AlexNetCaffemodel和ResNet-152Caffemodel大小约为230MB,而VGG-16Caffemodel更是超过500MB大小,因此建立一个高效率、低冗余的神经网络非常重要。目前神经网络的发展主要局限于以下两个方面,从硬件方面来说,人工神经网络的运算密集性和存储密集性导致了运行人工神经网络对于硬件设备的要求很高,目前利用通用处理器(CPU)或图形处理器(GPU)来进行人工神经网络的运算仍然十分吃力,导致前端译码开销大。以GPU为例,由于GPU只有较小的片上缓存,因此,神经网络在运算的时候,网络模型数据需要反复从片外搬运,片外带宽成为主要的一个性能瓶颈,大量的时间耗费在数据传递上,带来巨大的功耗;从算法方面来说,对于密集型运算来说,访存量很大,算法的设计优劣决定该神经网络的效率。因此,如何设计一种高效的人工神经网络,实现有效输出,减小运算量和访存量,成为人工神经网络发展亟需解决的技术问题。
技术实现思路
(一)要解决的技术问题本专利技术提供了运算装置、运算方法和芯片,以至少部分解决以上所提出的技术问题。(二)技术方案根据本专利技术的一个方面,提供了一种运算装置,包括:筛选单元400,用于根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算得到该输出神经元的特征图和与之对应的权值,并将结果输出至运算单元600;和/或用于根据输出神经元与输入神经元组成的特征图中每行的连接状态数组,筛选出用于计算得到该输出神经元的特征图行,以及与之对应的权值行,并将结果输出至运算单元600;和/或用于根据输出神经元与输入神经元组成的特征图中每列的连接状态数组,筛选出用于计算得到该输出神经元的特征图列,以及与之对应的权值列,并将所得结果输出至运算单元600;以及运算单元600,根据指令对筛选单元400输出的数据结果执行相应的支持结构裁剪的人工神经网络运算,得到输出神经元。在本专利技术的一个实施例中,筛选单元400的筛选过程包括:对于权值未经离线筛选的情况,根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算的特征图及与之对应的权值,然后将筛选后的特征图及与之对应的权值输出至运算单元;和/或根据输出神经元与输入神经元组成的特征图中行/列的连接状态数组筛选出用于计算的特征图行/列及与之对应的权值行/列,然后将筛选后的特征图行/列及与之对应的权值行/列输出至运算单元;对于权值已经离线筛选完成的情况,直接根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算的特征图,然后将筛选后的特征图输出至运算单元,同时已经离线筛选完成的权值不经过筛选单元直接输送给运算单元;和/或根据输出神经元与输入神经元组成的特征图中行/列的连接状态数组筛选出用于计算的特征图行/列及与之对应的权值行/列,然后将筛选后的特征图行/列及与之对应的权值行/列输出至运算单元。在本专利技术的一个实施例中,连接状态数组用以表示输出神经元与输入神经元之间的连接状态,表达方式包括:第一种表达方式:采用数字“0”和“1”表示连接状态,其中“1”表示有连接,“0”表示无连接;或者“0”表示有连接,“1”表示无连接;对于输出神经元与输入神经元组成的特征图的连接状态数组来说,是每个输出神经元与所有输入神经元组成的特征图的连接状态组成一个包括“0”和“1”的数组;对于输出神经元与输入神经元组成的特征图中行/列的连接状态数组来说,是每个输出神经元与所有输入神经元组成的特征图中行/列的连接状态组成一个包括“0”和“1”的数组;第二种表达方式:采用距离表示连接状态,对于输出神经元与输入神经元组成的特征图的连接状态数组来说,将每个输出神经元的第一个连接所在的输入神经元位置到第一个输入神经元的距离、第二个连接所在的输入神经元位置到上一个连接所在的输入神经元的距离,第三个连接所在的输入神经元位置到上一个连接所在的输入神经元的距离,……,依次类推,直到穷举与该输出神经元相连的所有输入神经元,组合成一个数组来表示该输出神经元对应的连接状态数组。在本专利技术的一个实施例中,第二种表达方式的数组中的元素为非负整数。在本专利技术的一个实施例中,采用输出神经元与输入神经元组成的特征图的连接状态数组或者输出神经元与输入神经元组成的特征图中行/列的连接状态数组筛选出的用于计算的特征图及与之对应的权值,或者特征图行/列及与之对应的权值行/列,满足条件包括:第一种表达方式:筛选出来用于计算输出神经元的特征图和与之对应的权值,其对应的连接状态数组,其中的元素值都为:表示有连接的数字;和/或筛选出来用于计算输出神经元的特征图行/列和与之对应的权值行/列,其对应的连接状态数组,其中的元素值都为:表示有连接的数字;第二种表达方式:对每个输出神经元Oj对应的连接状态数组IndexA,每一位的值为非负整数,记全部的输入神经元为I1,I2,...,IN,设与该输出神经元相连的输入神经元为n≤N,k1,k2,...,kn∈{1,2,...,N},它们的值未知,则IndexA有n位,第1位的值A1,表示第一个连接所在的输入神经元位置距离I1的距离;第p位的值AP,p=2,3,...,n,表示当前连接所在的输入神经元位置距离上一个连接所在的输入神经元位置的距离;那么筛选出来用于计算出该输出神经元Oj的输入神经元为:与之相对应的权值为满足:k1=A1+1,kp=Ap+kp-1。在本专利技术的一个实施例中,该运算装置还包括:存储单元100,其存储数据和指令;其中,该存储单元100中存储的数据包括:输入神经元组成的特征图、权值、输出神经元与输入神经元组成的特征图的连接状态数组、输出神经元与输入神经元组成的特征图中每行的连接状态数组、输出神经元与输入神经元组成的特征图中每列的连接状态数组、输出神经元组成的特征图以及其他人工神经网络运算所需数据和参数。在本专利技术的一个实施例中,运算单元600包括:第一部分乘法器,将第一输入数据和第二输入数据进行相乘运算得到输出数据;第二部分一个或多个加法器,将相乘的结果通过加法树逐级相加,得到加权和,根据需要对加权和采取偏置处理或者不做处理;第三部分激活函数单元,对所述得到的加权和结果执行激活函数运算,得到输出神经元。在本专利技术的一个实施例中,第二部分一个或多个加法器组成加法树。在本专利技术的一个实施例中,运算单元600还包括:池化单元,对输入数据执行池化操作。在本专利技术的一个实施例中,该运算装置还包括:缓存单元300,其缓存数据和指令。(三)有益效果从上述技术方案可以看出,本专利技术提供的运算装置、运本文档来自技高网
...

【技术保护点】
1.一种运算装置,包括:筛选单元(400),用于根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算得到该输出神经元的特征图和与之对应的权值,并将结果输出至运算单元(600);和/或用于根据输出神经元与输入神经元组成的特征图中每行的连接状态数组,筛选出用于计算得到该输出神经元的特征图行,以及与之对应的权值行,并将结果输出至运算单元(600);和/或用于根据输出神经元与输入神经元组成的特征图中每列的连接状态数组,筛选出用于计算得到该输出神经元的特征图列,以及与之对应的权值列,并将所得数据结果输出至运算单元(600);以及运算单元(600),根据指令对筛选单元(400)输出的数据执行相应的支持结构裁剪的人工神经网络运算,得到输出神经元。

【技术特征摘要】
1.一种运算装置,包括:筛选单元(400),用于根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算得到该输出神经元的特征图和与之对应的权值,并将结果输出至运算单元(600);和/或用于根据输出神经元与输入神经元组成的特征图中每行的连接状态数组,筛选出用于计算得到该输出神经元的特征图行,以及与之对应的权值行,并将结果输出至运算单元(600);和/或用于根据输出神经元与输入神经元组成的特征图中每列的连接状态数组,筛选出用于计算得到该输出神经元的特征图列,以及与之对应的权值列,并将所得数据结果输出至运算单元(600);以及运算单元(600),根据指令对筛选单元(400)输出的数据执行相应的支持结构裁剪的人工神经网络运算,得到输出神经元。2.根据权利要求1所述的运算装置,其中,所述筛选单元(400)的筛选过程包括:对于权值未经离线筛选的情况,根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算的特征图及与之对应的权值,然后将筛选后的特征图及与之对应的权值输出至运算单元;和/或根据输出神经元与输入神经元组成的特征图中行/列的连接状态数组筛选出用于计算的特征图行/列及与之对应的权值行/列,然后将筛选后的特征图行/列及与之对应的权值行/列输出至运算单元;对于权值已经离线筛选完成的情况,直接根据输出神经元与输入神经元组成的特征图的连接状态数组筛选出用于计算的特征图,然后将筛选后的特征图输出至运算单元,同时已经离线筛选完成的权值不经过筛选单元直接输送给运算单元;和/或根据输出神经元与输入神经元组成的特征图中行/列的连接状态数组筛选出用于计算的特征图行/列及与之对应的权值行/列,然后将筛选后的特征图行/列及与之对应的权值行/列输出至运算单元。3.根据权利要求1所述的运算装置,其中,所述连接状态数组用以表示输出神经元与输入神经元之间的连接状态,表达方式包括:第一种表达方式:采用数字“0”和“1”表示连接状态,其中“1”表示有连接,“0”表示无连接;或者“0”表示有连接,“1”表示无连接;对于输出神经元与输入神经元组成的特征图的连接状态数组来说,是每个输出神经元与所有输入神经元组成的特征图的连接状态组成一个包括“0”和“1”的数组;对于输出神经元与输入神经元组成的特征图中行/列的连接状态数组来说,是每个输出神经元与所有输入神经元组成的特征图中行/列的连接状态组成一个包括“0”和“1”的数组;第二种表达方式:采用距离表示连接状态,对于输出神经元与输入神经元组成的特征图的连接状态数组来说,将每个输出神经元的第一个连接所在的输入神经元位置到第一个输入神经元的距离、第二个连接所在的输入神经元位置到上一个连接所在的输入神经元的距离,第三个连接所...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1