一种用于执行人工神经网络正向运算的装置和方法制造方法及图纸

技术编号:17541379 阅读:26 留言:0更新日期:2018-03-24 18:08
本披露提供了一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块。本披露提供的技术方案具有计算速度快,效率高的优点。

A device and method used to perform forward operation of artificial neural networks

The disclosure provides a device for performing forward operation of artificial neural network, including floating point data statistics module, data conversion unit and fixed-point data operation module. The technical scheme provided by this disclosure has the advantages of fast calculation and high efficiency.

【技术实现步骤摘要】
一种用于执行人工神经网络正向运算的装置和方法
本披露涉及一种用于执行人工神经网络正向运算的装置和方法。
技术介绍
数据处理是大部分算法需要经过的步骤或阶段,在计算机引入数据处理领域后,越来越多的数据处理通过计算机来实现,现有的算法中有计算设备在进行神经网络的数据计算时速度慢,效率低。披露内容本披露实施例提供了一种神经网络运算装置和方法,可提升计算装置的处理速度,提高效率。第一方面,提供一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Pointlocation;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Pointlocation来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算;所述人工神经网络正向运算的指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。第二方面,提供一种执行人工神经网络正向运算的方法,包括以下步骤:获取所述人工神经网络各个层的长位数浮点数据,包括每一层的权值、偏置和/或输入输出值;对获取的所述长位数浮点数据,统计落在一列逐渐缩小的区间:[-2X-1-i,2X-1-i-2-i]i=0,1,...,N中的比例,其中X是短位数定点数据类型的总位数;得到的相应的比例记为:p0,p1,…,pN,其中N是预先设定的一个正整数;对于所述长位数浮点数据,预先设定一个溢出率EPL,取小数点位置Pointlocation为:max{i|pi≥1-EPL,i∈{0,1,...,N}};即在0,1,...,N中取最大的i,使得pi≥1-EPL;根据所述小数点位置Pointlocation,将所有所述长位数浮点数据采用短位数定点数据类型表示;对所述短位数定点数据执行人工神经网络正向运算;所述人工神经网络正向运算的指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。可以看出,通过本披露实施例,计算装置设置有寄存器单元了存储介质,其分别存储标量数据以及矩阵数据,并且本披露为两种存储器分配了单位读取方式以及批量读取方式,通过对矩阵数据的特点分配匹配其特征的数据读取方式,能够很好的利用带宽,避免因为带宽的瓶颈对矩阵计算速度的影响,另外,对于寄存器单元来说,由于其存储的为标量数据,设置了标量数据的读取方式,提高了带宽的利用率,所以本披露提供的技术方案能够很好的利用带宽,避免带宽对计算速度的影响,所以其具有计算速度快,效率高的优点。附图说明图1A是一种计算装置结构示意图。图1B是另一种计算装置结构示意图。图2A是本披露实施例提供的计算装置的另一种结构示意图。图2B是本披露实施例提供的卷积计算指令的流程示意图。图3为根据本披露一实施例的用于存储数据的定点数据结构的具体表示方法;图4为根据本披露一实施例的用于执行人工神经网络正向运算的装置中浮点数据统计模块的示例框图;图5为根据本披露一实施例的用于执行人工神经网络正向运算的装置中正向运算模块的短位数定点计算部分示例框图;图6为根据本披露一实施例的神经网络正向运算过程的示例框图;图7示意性示出了根据本披露一实施例的用于执行人工神经网路正向运算装置的运算流程示例框图;图8为根据本披露一实施例的算法实施总体流程图。具体实施方式本披露提供一种矩阵计算装置,包括存储单元、寄存器单元和矩阵运算单元,存储单元中存储有矩阵,寄存器单元中存储有矩阵存储的地址矩阵运算单元根据矩阵运算指令在寄存器单元中获取矩阵地址,然后,根据该矩阵地址在存储单元中获取相应的矩阵,接着,根据获取的矩阵进行矩阵运算,得到矩阵运算结果。本披露将参与计算的矩阵数据暂存在高速暂存存储器上,使得矩阵运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量矩阵计算任务的执行性能。需要说明的是,本披露具体实施方式中的矩阵具体可以为m*n矩阵、1*n矩阵或m*1矩阵,其中m、n为大于等于2的整数。当矩阵为1*n矩阵或m*1矩阵时,也可以称为向量,下述矩阵均可以为上述三种类型矩阵中的任意一种,下面不在赘述。以人工神经网络算法为例,多种神经网络算法中都含有大量的矩阵运算。在神经网络中,输出神经元的运算表达式为y=f(wx+b),其中w是第一矩阵,x是第二矩阵、b是第三矩阵,计算输出矩阵y的过程为矩阵w与矩阵x相乘,加上矩阵b。因此,矩阵运算成为目前各种计算装置在设计时需要考虑的问题,现有的矩阵的计算速度慢,无法满足用户对计算装置的要求,效率低。参阅图1A,图1A为一种计算装置,在如图1A所示的矩阵的计算装置中,其包含多个通用处理器101(CPU),每个CPU均包含自身的内存,其处理的方法可以为,多个CPU并行处理矩阵的计算,此方案虽在在矩阵的计算中采用并行处理的方式,但是其并不能有效的提高效率,因为对于矩阵运算中,第二矩阵运算的结果可能需要使用第一矩阵运算的结果,具体的,第一矩阵运算为f(1)=A+B,第二矩阵运算为:f(2)=f(1)+C,对于第二矩阵运算来说,其需要提取第一矩阵运算的结果f(1)才能够进行实际的矩阵计算处理,此种情况在神经网络计算中尤为突出,由于多个CPU并行处理矩阵运算,那么在矩阵计算的分配时,很有可能CPU1执行第一矩阵运算,CPU2执行第二矩阵运算,那么对于CPU2来说,其需要从CPU1提取第一矩阵运算的结果f(1),所以对于多CPU并行处理矩阵来说,多个CPU之间的通讯成为矩阵运算的瓶颈,影响矩阵计算的速度。参阅图1B,图1B为另一种计算装置,在如图1B所示的计算装置中,其包含有图形处理器(GPU)102,通过GPU102来执行矩阵的运算,对于GPU来说,其本身也包含内存1021,GPU102在处理矩阵运算时,GPU102需要从内存1021中提取矩阵运算所需的矩阵,矩阵由于其数据量大,单个矩阵所占用的存储空间比标量要大很多,对于GPU102来说,虽然其运算能够非常强,但是GPU102的内存的容量不够,无法存储大量的矩阵,为了解决这个问题,图1B配置了片外数据库103,GPU102可以从片外数据库103中读取矩阵,具体的读取方式为,GPU102从片外数据库103中提取待计算的矩阵,将该矩阵存储在内存1021中,在执行矩阵运算时,进行矩阵指令的译码处理,然后从内存1021中提取该矩阵进行计算。此技术方案在执行矩阵计算中,GPU102进行矩阵指令的译码会占用GP本文档来自技高网...
一种用于执行人工神经网络正向运算的装置和方法

【技术保护点】
一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其特征在于,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Point location;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Point location来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算;所述人工神经网络正向运算的指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。

【技术特征摘要】
1.一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其特征在于,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Pointlocation;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Pointlocation来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算;所述人工神经网络正向运算的指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。2.如权利要求1所述的用于执行人工神经网络正向运算的装置,其特征在于,所述浮点数据统计模块包括数据提取单元、统计单元和分析单元,其中,所述数据提取单元用于提取基于长位数浮点数据的正向运算中各种不同类型的数据;所述统计单元用于统计同一类型数据的数据范围及各数据段的数据分布情况;所述分析单元根据统计单元统计的结果,得出用短位数定点表示各个类型数据应当设定的小数点位置Pointlocation。3.如权利要求1所述的用于执行人工神经网络正向运算的装置,其特征在于,所述用于执行人工神经网络正向运算的装置还包括舍入单元,所述舍入单元用于在运算结束后,对超出短位数定点精度范围的数据进行舍入操作。4.如权利要求3所述的用于执行人工神经网络正向运算的装置,其特征在于,所述舍入单元选自随机舍入单元、四舍五入单元、向上舍入单元、向下舍入单元、截断舍入单元中的任一种;其中,所述随机舍入单元执行如下操作:其中,y表示随机舍入后的短位定点数据,x表示随机舍入前的长位浮点数据,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location,表示对原数据x直接截得短位数定点数据所得的数,w.p.表示概率,即随机舍入获得的数据y为的概率为为的概率为所述四舍五入单元执行如下操作:其中,y表示四舍五入后的短位定点数据,x表示四舍五入前的长位浮点数据,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location,为ε的整数倍,其值为小于或等于x的最大数;所述向上舍入单元执行如下操作:其中,y表示向上舍入后的短位定点数据,x表示向上舍入前的长位浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location;所述向下舍入单元执行如下操作:其中,y表示向上舍入后的短位定点数据,x表示向上舍入前的长位浮点数据,为ε的整数倍,其值为小于或等于x的最大数,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location;所述截断舍入单元执行如下操作:y=[x];其中,y表示截断舍入后的短位定点数据,x表示截断舍入前的长位浮点数据,[x]表示对原数据x直接截得短位数定点数据所得的数。5.如权利要求3所述的用于执行人工神经网络正向运算的装置,其特征在于,所述数据转换单元先通过所述舍入单元对待处理的数据进行舍入操作,再根据浮点数据统计模块得到的小数点位置Pointlocation来实现长位数浮点数据类型向短位数定点数据类型的转换。6.如权利要求1所述的用于执行人工神经网络正向运算的装置,其特征在于,所述用于执行人工神经网络正向运算的装置还包括运算缓存单元,所述运算缓存单元采用长位数浮点数据类型存储正向运算中加法和乘法的中间运算结果。7.根据权利要求1所述的装置,其特征在于,所述卷积神经网络运算指令包括:卷积计算指令,用于将卷积核w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果。8.根据权利要求1所述的装置,其特征在于,所述卷积神经网络运算指令包括:COMPUTE指令、CONFIG指令、IO指令、NOP指令、JUMP指令或MOVE指令;所述COMPUTE指令包括:卷积神经网络sigmoid指令、卷积神经网络TanH指令、卷积神经网络ReLU指令以及卷积神经网络group指令;所述卷积神经网络sigmoid指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述sigmoid指令将输出结果做sigmoid激活;所述卷积神经网络TanH指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述TanH指令将输出结果做TanH激活;所述卷积神经网络ReLU指令,用于在装置分别从存储器的指定地...

【专利技术属性】
技术研发人员:陈天石刘少礼王在胡帅
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1