数据处理器、数据处理方法和电子设备技术

技术编号:37231625 阅读:33 留言:0更新日期:2023-04-20 23:14
本公开提供了一种数据处理器,涉及人工智能技术领域,尤其涉及深度学习、神经网络和云计算等技术领域。具体实现方案为:获取单元,配置为获取待处理数据;量化单元,配置为根据待处理数据中多个浮点数中的极值,对浮点数进行量化,得到量化数据,其中,量化数据包括浮点数的第一值和第二值;运算单元,配置为利用量化数据中浮点数的第一值和第二值进行运算处理,得到运算结果;以及输出单元,配置为输出运算结果。本公开还提供了一种数据处理方法和电子设备。设备。设备。

【技术实现步骤摘要】
数据处理器、数据处理方法和电子设备


[0001]本公开涉及人工智能
,尤其涉及深度学习、神经网络和云计算等
,可应用于图像处理、自然语言处理、语音识别、自动驾驶、产品推荐等场景下。更具体地,本公开提供了一种数据处理器、数据处理方法和电子设备。

技术介绍

[0002]随着人工智能技术的发展,深度学习模型广泛地应用于各种场景中。深度学习模型包括多种神经网络(Neural Network)模型。可以利用处理器实现神经网络模型涉及的大量操作。

技术实现思路

[0003]本公开提供了一种数据处理器、数据处理方法和电子设备。
[0004]根据本公开的一方面,提供了一种数据处理器,该处理器包括:获取单元,配置为获取待处理数据;量化单元,配置为根据待处理数据中多个浮点数中的极值,对浮点数进行量化,得到量化数据,量化数据包括浮点数的第一值和第二值;运算单元,配置为利用量化数据中浮点数的第一值和第二值进行运算处理,得到运算结果;以及输出单元,配置为输出运算结果。
[0005]根据本公开的另一方面,提供了一种数据处理方法,该方法包括:获取待处理数据;根据待处理数据中多个浮点数中的极值,对浮点数进行量化,得到量化数据,量化数据包括浮点数的第一值和第二值;利用量化数据中浮点数的第一值和第二值进行运算处理,得到运算结果;以及输出运算结果。
[0006]根据本公开的另一方面,提供了一种电子设备,包括至少一个本公开提供的数据处理器。
[0007]据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行根据本公开提供的方法。
[0008]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本公开提供的方法。
[0009]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开提供的方法。
[0010]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0011]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0012]图1是根据本公开的一个实施例的浮点数的编码的示意图;
[0013]图2是根据本公开的一个实施例的数据处理器的结构框图;
[0014]图3是根据本公开的一个实施例的数据处理器的原理图;
[0015]图4是根据本公开的一个实施例的数据处理方法的流程图;以及
[0016]图5是根据本公开的一个实施例的可以应用数据处理器的电子设备的框图。
具体实施方式
[0017]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0018]深度学习技术可以将对象的低层特征组合形成更加抽象的高层特征,以表示对象的类别或属性。基于深度学习技术,可以发现与对象相关的数据的分布式特征。神经网络模型例如可以包括深度神经网络模型(Deepneuralnetwork,DNN)、循环神经网络模型(RecurrentNeuralNetwork,RNN)和卷积神经网络模型(ConvolutionalNeuralNetwork,CNN)等。
[0019]神经网络模型涉及大量计算密集型的操作。这些操作例如可以包括:矩阵乘法操作、卷积操作、池化(Pooling)操作等等。在利用中央处理器(CentralProcessingUnit,CPU)实现这些操作的情况下,需要较高的时间成本。为了提高应用神经网络模型的效率,可以利用神经网络处理器实现神经网络模型的操作。神经网络处理器可以是在图形处理器(GraphProcessingUnit,GPU)、场可编程门阵列(FieldProgrammableGateArray,FPGA)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)等等处理器的基础上实现的。神经网络处理器的计算效率更高。相较于通用型的中央处理器,神经网络处理器的计算性能可以提升至少一个数量级。
[0020]神经网络处理器处理的数据可以是浮点数。浮点数是与定点数相对的概念。计算机中的定点数约定小数点的位置不变,即,人为设定了一个数的小数点位置。例如,对于定点纯整数,可以约定小数点在数值位的最后。又例如对于定点纯小数,约定了数值位的最高位在小数点的后面。由于计算机字长的限制,当需要表示的数据有很大的数值范围时,不能直接用定点小数或定点整数表示。
[0021]浮点数可以由尾数M和阶码E构成。基数为2的数F的浮点数表示为:
[0022]F=M*2
E
(公式一)
[0023]浮点数的编码规则:尾数M必须为小数,用n+1位有符号定点小数表示;位数n+1决定了浮点数的精度。尾数越长,所能表示的精度越高。n为大于0的整数。阶码E必须为整数,用k+1位有符号定点整数表示;位数k+1决定了浮点数表示的数值范围,即,数据大小或小数点在数据中的真实位置;阶符可以决定阶码的正负。阶码越长,能表示的范围越大。
[0024]k为大于0的整数
[0025]浮点数编码的位数m为:
[0026]m=(n+1)+(k+1)(公式二)
[0027]神经网络模型对数据的处理可以包括两个阶段:训练阶段和推理阶段。在训练阶段,利用已知的数据集调整神经网络模型的参数,得到一个经训练的神经网络模型。在训练
阶段,数据集中的数据需要有较高的精度。类型为浮点数的数据可以应用在神经网络的训练阶段。
[0028]浮点数可以包括单精度浮点数(Float Point 32,FP32)、张量单精度浮点数(TensorFloat 32,TF32)、半精度浮点数(Float Point 32,FP16)和脑浮点数(Brain Float Point 16,BF 16)。
[0029]单精度浮点数、张量单精度浮点数的精度较高。这两类浮点数的位宽为32位,导致其访存的数据量会比半精度浮点数高一倍左右,也需要较多的计算资源。在处理类型为单精度浮点数、张量单精度浮点数的数据时,神经网络处理器的性能较差。例如,对于单精度浮点数,一种图形处理器的性能可以为60TOPS(Tera Operations Per Second,每秒钟可进行一万亿次操作)。对于张量单精度浮点数,该图形处理器的性能可以为500TOPS。对于半精度浮点数或脑浮点数,该图形处理器的性能可以为1000T本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理器,包括:获取单元,配置为获取待处理数据;量化单元,配置为根据所述待处理数据中多个浮点数中的极值,对所述浮点数进行量化,得到量化数据,其中,所述量化数据包括所述浮点数的第一值和第二值;运算单元,配置为利用所述量化数据中所述浮点数的所述第一值和所述第二值进行运算处理,得到运算结果;以及输出单元,配置为输出所述运算结果。2.根据权利要求1所述的处理器,还包括:存储单元,与所述量化单元和所述运算单元耦接,用于存储来自所述量化单元的所述量化数据。3.根据权利要求2所述的处理器,其中,所述量化单元包括:确定模块,配置为根据所述待处理数据中多个浮点数中的极值,确定至少一个数值区间;量化模块,配置为根据所述浮点数所处的数值区间,对所述浮点数进行量化,得到所述量化数据;以及写入模块,配置为将所述量化数据写入所述存储单元。4.根据权利要求3所述的处理器,其中,所述确定模块还配置为根据第一预设值和所述极值,确定至少一个数据阈值;以及根据第二预设值和所述至少一个数据阈值,确定所述至少一个数值区间。5.根据权利要求4所述的处理器,其中,所述至少一个数据阈值为I个数据阈值,所述至少一个数值区间为I个数值区间,I为大于1的整数,所述确定模块还配置为:将所述极值确定为第1个数据阈值;以及根据第i个数据阈值和所述第一预设值,确定第i+1个数据阈值,其中,i为大于或等于1的整数,i为小于I的整数。6.根据权利要求5所述的处理器,其中,所述确定模块还配置为:根据所述第i个数据阈值和所述第i+1个数据阈值,确定第i个数值区间;以及根据第I个数据阈值和所述第二预设值,确定第I个数值区间。7.根据权利要求4所述的处理器,其中,所述量化模块配置为:根据目标数据阈值和所述第一预设值,得到所述浮点数的所述第一值,其中,所述目标数据阈值为与所述浮点数所处的所述数值区间相关的两个数据阈值之间的较大值;以及根据所述第一预设值、所述浮点数和所述目标数据阈值,得到所述浮点数的所述第二值。8.根据权利要求2所述的处理器,其中,所述量化数据包括:目标处理函数相关的函数数据以及与所述目标处理函数相关的目标浮点数的第一值和第二值;所述运算单元包括:读取模块,配置为从所述存储单元读取所述目标处理函数以及与所述目标处理函数相关的目标浮点数;以及运算模块,配置为利用所述目标处理函数处理所述目标浮点数的第一值和第二值,得到所述运算结果。
9.根据权利要求8所述的处理器,其中,所述运算模块还配置为:根据所述目标浮点数的符号位,确定目标符号位;利用所述目标处理函数处理所述目标浮点数的第一值和第二值,得到输出浮点数的绝对值;根据所述输出浮点数的绝对值和所述目标符号位,得到输出浮点数;以及根据所述输出浮点数,得到所述运算结果。10.根据权利要求9所述的处理器,其中,所述待处理数据为至少两个,所述目标浮点数为至少两个,至少两个所述目标浮点数分别来自于至少两个待处理数据;所述运算模块还配置为:将至少两个所述目标浮点数的第一值以及至少两个所述目标浮点数的第二值依次相乘,得到所述输出浮点数的绝对值。11.一种数据处理方法,应用于数据处理器,所述方法包括:获取待处理数据;根据所述待处理数据中多个浮点数中的极值,对所述浮点数进行量化,得到量化数据,其中,所述量化数据包括所述浮点数的第一值和第二值;利用所述量化数据中所述浮点数的所述第一值和所述第二值进行运算处理,得到运算结果;以及输出所述运算结果。12.根据权利要求11所述的方法,其中,所述根据所述待处理数据中多个浮点数中的极值...

【专利技术属性】
技术研发人员:王勇陈庆澍王京欧阳剑邰秀瑢
申请(专利权)人:昆仑芯北京科技有限公司
类型:发明
国别省市:

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

1