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来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算;所述人工神经网络正向运算的指令为矩阵运算指令,包括:操作码和操作域;所述操作码,用于识别不同的矩阵运算指令;所述操作域,用于指示所述矩阵运算指令的数据信息,所述数据信息为指定大小的立即数或指定大小的数据对应的寄存器号。第二方面,提供一种执行人工神经网络正向运算的方法,包括以下步骤:获取所述人工神经网络各个层的长位数浮点数据,包括每一层的权值、偏置和/或输入输出值;对获取的所述长位数浮点数据,统计落在一列逐渐缩小的区间:[-2X-1-i,2X-1 ...
【技术保护点】
一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其特征在于,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Point location;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Point location来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算;所述人工神经网络正向运算的指令为矩阵运算指令,包括:操作码和操作域;所述操作码,用于识别不同的矩阵运算指令;所述操作域,用于指示所述矩阵运算指令的数据信息,所述数据信息为指定大小的立即数或指定大小的数据对应的寄存器号。
【技术特征摘要】
1.一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其特征在于,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Pointlocation;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Pointlocation来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算;所述人工神经网络正向运算的指令为矩阵运算指令,包括:操作码和操作域;所述操作码,用于识别不同的矩阵运算指令;所述操作域,用于指示所述矩阵运算指令的数据信息,所述数据信息为指定大小的立即数或指定大小的数据对应的寄存器号。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所述的装置,其特征在于,所述矩阵运算指令为:矩阵乘向量指令MMV、向量乘矩阵指令VMM、矩阵乘标量指令VMS、张量运算指令TENS、矩阵加法指令MA、矩阵减法指令MS、矩阵检索指令MR、矩阵加载指令ML或矩阵搬运指令MMOVE中的一个或任意组合;所述操作域存储所述MMV的矩阵数据和向量数据的立即数或寄存器号;所述MMV,用于从存储器的指定地址取出指定大小的矩阵数据和向量数据,并将该矩阵数据和向量数据执行矩阵乘向量计算,将该计算结果写回至所述存储器;或所述操作域存储所述MMV的矩阵数据和向量数据;所述VMM,用于从存储器的指定地址取出指定长度的向量数据和矩阵数据,进行向量乘矩阵的乘法运算,将该计算结果写回至存储器;或所述操作域存储所述VMS的矩阵数据;所述VMS,用于从存储器的指定地址取出指定长度的矩阵数据,从标量寄存器堆的指定地址中取出标量数据,进行标量乘矩阵数据的乘法运算,将计算结果写回存储器;或所述操作域存储所述TENS的两块矩阵数据,所述TENS,用于从存储器的两个指定地址分别取出指定大小的两块矩阵数据,对两矩阵数据进行张量运算,并将计算结果写回至存储器;或所述操作域...
【专利技术属性】
技术研发人员:陈天石,刘少礼,王在,胡帅,
申请(专利权)人:上海寒武纪信息科技有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。