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个操作域,其中,所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。第二方面,提供一种执行人工神经网络正向运算的方法,包括以下步骤:获取所述人工神经网络各个层的长位数浮点数据,包括每一层 ...
【技术保护点】
一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其特征在于,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。