买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】计算装置及相关产品_上海寒武纪信息科技有限公司_201811456719.0 

申请/专利权人:上海寒武纪信息科技有限公司

申请日:2018-11-30

公开(公告)日:2021-04-09

公开(公告)号:CN109583579B

主分类号:G06N3/063(20060101)

分类号:G06N3/063(20060101);G06N20/00(20190101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.09#授权;2019.04.30#实质审查的生效;2019.04.05#公开

摘要:本公开涉及计算装置及相关产品,所述计算装置用于执行机器学习计算,所述装置包括控制器模块、运算模块、数据格式转换模块和数据格式选择模块,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换;所述运算模块用于在所述控制器模块的控制下,根据格式转换后的待运算数据进行运算。本公开实施例中的格式转换模块可以在保持数据精度的前提下,变换将待运算数据的位宽,适应不同的运算需求。

主权项:1.一种计算装置,其特征在于,所述计算装置用于执行机器学习计算,所述装置包括控制器模块、运算模块、数据格式转换模块和数据格式选择模块,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换;所述运算模块用于在所述控制器模块的控制下,根据格式转换后的待运算数据进行运算,其中,所述数据格式转换模块包括:待运算数据获取子模块,用于获取待运算数据;定位数位获取子模块,用于在待运算数据中确定定位数位;目标数位确定子模块,用于根据所述定位数位,在所述待运算数据中确定第一目标数位,以及确定在所述待运算数据的转换后数据中,与所述第一目标数位对应的第二目标数位;数值确定子模块,用于根据所述待运算数据中所述第一目标数位的数值,确定所述转换后数据中所述第二目标数位的数值;转换后数据获取子模块,用于根据所述第二目标数位的数值得到所述转换后数据。

全文数据:计算装置及相关产品技术领域本公开涉及信息处理技术领域,尤其涉及一种计算装置及相关产品。背景技术随着信息技术的不断发展,利用运算装置完成各种运算任务的需求越来越大。在各种不同的运算任务中,待运算数据不同的数据格式对于运算装置的运算效率和运算精度,会产生不同的影响,不能适应不同运算任务的需求。例如待运算数据的数据格式可以是定点数,定点数对于数值较大的数有较高的精度,对于数值较小的数有较低的精度。对于同样位宽的数,定点数的表示范围和精度负相关,因此,利用定点数来进行运算时,可能会存在表示范围不足的问题。发明内容有鉴于此,本公开提出了一种计算装置及相关产品,用以提高运算装置的处理效率,并提高运算结果的准确率。根据本公开的一方面,提供了一种计算装置,所述计算装置用于执行机器学习计算,所述装置包括控制器模块、运算模块、数据格式转换模块和数据格式选择模块,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换;所述运算模块用于在所述控制器模块的控制下,根据格式转换后的待运算数据进行运算。在一种可能的实现方式中,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换,包括:所述控制器模块用于根据所述数据格式选择模块发送的数据格式转换指令和所述待运算数据,确定是否对所述待运算数据进行数据格式转换,所述数据格式转换指令包括转换前的数据格式和转换后的数据格式;当确定对所述待运算数据进行数据格式转换时,所述控制器模块控制所述数据格式转换模块对待运算数据进行数据格式转换。在一种可能的实现方式中,所述运算模块包括多个运算子模块,各所述运算子模块分别用于对预设的数据格式的数据进行运算。在一种可能的实现方式中,所述数据格式转换模块用于:待运算数据获取子模块,用于获取待运算数据;定位数位获取子模块,用于在待运算数据中确定定位数位;目标数位确定子模块,用于根据所述定位数位,在所述待运算数据中确定第一目标数位,以及确定在所述待运算数据的转换后数据中,与所述第一目标数位对应的第二目标数位;数值确定子模块,用于根据所述待运算数据中所述第一目标数位的数值,确定所述转换后数据中所述第二目标数位的数值;转换后数据获取子模块,用于根据所述第二目标数位的数值得到所述转换后数据。在一种可能的实现方式中,所述定位数位获取子模块,包括:定位数位获取单元,用于在所述待运算数据的数据格式为定点数时,将二进制形式的定点数的整数部分中由高位至低位第一个1所在的数位,确定为定位数位。在一种可能的实现方式中,所述转换后数据为二进制形式的整数,所述目标数位确定子模块,用于:若所述定位数位为第N数位,在最低位的数位为第0数位,N为偶数的情况下,将第N-1数位至第N2+1数位确定为所述定点数中的第一目标数位;在所述转换后数据中确定与所述第一目标数位对应的第二目标数位。在一种可能的实现方式中,所述目标数位确定子模块,还用于:将所述转换后数据中与所述第一目标数位对应的第二目标数位确定为第N2-2数位至第0数位。在一种可能的实现方式中,所述转换后的数据包括尾数位和幂次位,所述转换后数据获取子模块,包括:尾数位数值获取单元,用于根据所述第二目标数位的数值确定所述转换后数据中尾数位的数值;幂次位指数位获取单元,用于根据所述待运算数据中定位数位上的数值,确定所述转换后数据中幂次位和指数位的数值;转换后数据获取单元,用于根据所述尾数位的数值、所述幂次位的数值和所述指数位的数值,得到所述转换后的数据。在一种可能的实现方式中,所述尾数位数值获取单元,用于:当所述转换后数据的尾数位的位宽大于所述第二目标数位的位宽时,根据所述第二目标数位的数值和预设的补齐数值,确定所述转换后数据中的尾数位的数值。在一种可能的实现方式中,所述幂次位指数位获取单元,用于:当所述定位数位上的数值为偶数时,将所述转换后数据中幂次位的数值确定为0,或当所述定位数位上的数值为奇数时,将所述转换后数据中幂次位的数值确定为1。在一种可能的实现方式中,所述定点数的位宽为M,所述转换后数据的位宽为N,M≥2N。在一种可能的实现方式中,所述定位数位获取子模块,用于:在所述待运算数据的数据格式为指定数据格式时,将所述待运算数据中由高位至低位第一个1所在的数位,确定为定位数位,其中,所述指定数据格式为八位二进制形式的整数,所述指定数据格式中包括幂次位和尾数位,所述幂次位位于高位,所述尾数位位于低位。在一种可能的实现方式中,所述转换后数据的数据格式为十六位二进制形式的定点数,所述目标数位确定子模块,用于:若定位数位为第N数位,将第N-2数位至第0数位确定为待运算数据中的第一目标数位;将所述转换后数据中由高位至低位的第二个数位开始的N-1个数位,确定为所述转换后数据中与所述第一目标数位对应的第二目标数位。在一种可能的实现方式中,所述转换后数据获取子模块,用于:确定所述转换后数据中,第十六数位的数值;根据第十六数位和所述第二目标数位的数值得到所述转换后数据。在一种可能的实现方式中,所述转换后数据获取子模块,用于:将除第十六数位和所述第二目标数位之外的数位设为0。在一种可能的实现方式中,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换,包括:所述控制器模块,用于获取待运算数据、机器学习模型、计算指令以及所述数据格式选择模块确定的数据转换格式;所述控制器模块,用于控制所述数据格式转换模块对待运算数据进行数据格式转换,得到转换后的待运算数据;所述控制器模块,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述转换后的待运算数据发送给所述运算模块。根据本公开的一方面,提供了一种神经网络运算装置,所述神经网络运算装置包括一个或多个上述任一项所述的计算装置,所述神经网络运算装置用于完成设定的神经网络运算。根据本公开的一方面,提供了一种组合运算装置,所述组合运算装置包括一个或多个上述任一项所述的神经网络运算装置,通用互联接口和其他处理装置;所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。根据本公开的一方面,提供了一种神经网络芯片,所述神经网络芯片包括:上述任一项所述的计算装置;或上述的神经网络运算装置;或上述的组合处理装置。根据本公开的一方面,提供了一种电子设备,所述电子设备包括:上述任一项所述的计算装置;或上述的神经网络运算装置;或上述的组合处理装置;或上述的神经网络芯片。在本公开实施例中,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换;所述运算模块用于在所述控制器模块的控制下,根据格式转换后的待运算数据进行运算。数据格式转换模块可以在保持数据精度的前提下,变换将待运算数据的位宽,适应不同的运算需求。在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和或医疗设备。在一些实施例中,所述交通工具包括飞机、轮船和或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和或心电图仪。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。图1示出根据本公开一实施例的计算装置的框图;图2示出根据本公开一实施例的计算装置的框图;图3示出根据本公开一实施例的组合处理装置的框图。具体实施方式以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。图1示出根据本公开一实施例的计算装置的框图,如图1所示,所述计算装置用于执行机器学习计算,所述装置包括控制器模块10、运算模块20、数据格式转换模块30和数据格式选择模块40,所述控制器模块10用于根据所述数据格式选择模块40确定的数据转换格式,控制所述数据格式转换模块30对待运算数据进行数据格式转换;所述运算模块20用于在所述控制器模块10的控制下,根据格式转换后的待运算数据进行运算。在一种可能的实现方式中,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换,包括:所述控制器模块用于根据所述数据格式选择模块发送的数据格式转换指令和所述待运算数据,确定是否对所述待运算数据进行数据格式转换,所述数据格式转换指令包括转换前的数据格式和转换后的数据格式;当确定对所述待运算数据进行数据格式转换时,所述控制器模块控制所述数据格式转换模块对待运算数据进行数据格式转换。在一种可能的实现方式中,所述运算模块包括多个运算子模块,各所述运算子模块分别用于对预设的数据格式的数据进行运算。在本实施例中,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换;所述运算模块用于在所述控制器模块的控制下,根据格式转换后的待运算数据进行运算。数据格式转换模块可以在保持数据精度的前提下,变换将待运算数据的位宽,适应不同的运算需求。图2示出根据本公开一实施例的计算装置的框图,如图2所示,所述数据格式转换模块30包括:待运算数据获取子模块31,用于获取待运算数据;定位数位获取子模块32,用于在待运算数据中确定定位数位;目标数位确定子模块33,用于根据所述定位数位,在所述待运算数据中确定第一目标数位,以及确定在所述待运算数据的转换后数据中,与所述第一目标数位对应的第二目标数位;数值确定子模块34,用于根据所述待运算数据中所述第一目标数位的数值,确定所述转换后数据中所述第二目标数位的数值;转换后数据获取子模块35,用于根据所述第二目标数位的数值得到所述转换后数据。在一种可能的实现方式中,根据运算任务的不同可以获取不同的待运算数据。例如,在神经网络运算中,用于神经网络中各层运算的输入神经元数据、输出神经元数据或权值,都可以作为待运算数据进行数据转换。在对图像进行去噪声、增强、提取特征等各种图像运算的运算中,可以将图像数据作为待运算数据进行格式转换。在基于芯片的运算任务中,输入芯片中用于运算的数据,或存储在芯片中用于运算的数据,也可以作为待运算数据进行数据转换。例如,对于神经网络中的第N层卷积层,可以接收第N-1层卷积层的输出神经元数据。第N层卷积层的神经元可以将接收到的第N-1层卷积层的输出神经元数据作为待运算数据进行数据转换,并利用转换后数据和权重等相关数据执行本层的卷积运算,得到第N层卷积层的输出神经元数据。在一种可能的实现方式中,待运算数据可以包括多种数据格式,例如待运算数据可以为定点数或浮点数。待运算数据可以由一个或多个数位上的数值组成。对于本公开实施例中的数据转换方法,在确定待运算数据的数据格式为指定数据格式时,可以将待运算数据中的多个数位上的数值进行转换,得到待运算数据的转换后数据上与之对应的多个数位上的数值。可以在待运算数据中确定其中一个或多个数位为定位数位。定位数位可以用于在待运算数据中定位出用于转换的数位的位置。例如,根据定位数位,可以在待运算数据中确定出用于转换的数位的开始位置、结束位置或中间位置等。在一种可能的实现方式中,第一目标数位可以包括待运算数据中的一个或多个数位。第二目标数位可以为待运算数据的转换后数据中的一个或多个数位。第一目标数位的数量可以与第二目标数位的数量相等或不等。例如,待运算数据可以包括十个数位例如x9,x8,x7,x6,x5,x4,x3,x3,x2,x1,x0。可以将待运算数据中由高位至低位的第二个数位,确定为定位数位,即可以将x8确定为定位数位。可以将定位数位确定为第一目标数位中的第一个数位,且第一目标数位包括五个数位。则在待运算数据中的第一目标数位为x8,x7,x6,x5,x4。待运算数据的转换后数据可以包括八位数位,例如y7,y6,y5,y4,y3,y2,y1,y0,可以将转换后数据中由高位至低位的五个数位,确定为第二目标数位,第二目标数位为转换后数据中的y7,y6,y5,y4,y3。在一种可能的实现方式中,当第一目标数位的数量与第二目标数位的数量相等时,可以将第一目标数位中的单个数位与第二目标数位中的单个数位之间进行一一对应。可以根据第一目标数位中单个数位上的数值,得到第二目标数位中与之对应的数位上的数值。可以将第一目标数位中单个数位上的数值,直接确定为第二目标数位中与之对应的数位上的数值。也可以将第一目标数位中单个数位上的数值,经过设定的运算或变换后,得到第二目标数位中与之对应的数位上的数值。例如,可以将第一目标数位中的单个数位上的值进行01转换,得到第二目标数位中与之对应的数位上的数值。在一种可能的实现方式中,当第一目标数位的数量与第二目标数位的数量不相等时,可以根据多个第一目标数位上的数值得到一个第二目标数位上的数值,或根据一个第一目标数位上的数值得到多个第二目标数位上的数值。也可以根据A个第一目标数位上的数值得到B个第二目标数位上的数值,其中,A与B不等。本公开对此不做限定。在一种可能的实现方式中,当转换后数据的数位数量,等于第二目标数位的数位数量时,可以根据第二目标数位的数值,直接得到转换后数据。在一种可能的实现方式中,当转换后数据的数位数量,大于第二目标数位的数量数量时,可以根据预设的规则补齐转换后数据中剩余数位上的数值,并根据补齐的剩余数位上的数值和第二目标数位上的数值,得到转换后数据。在一种可能的实现方式中,在神经网络运算中,可以将神经网络中各层运算的输入神经元数据、输出神经元数据和权值中的至少一种作为待运算数据。可以根据神经网络的运算任务的不同以及待运算数据的自身特征,利用本公开实施例中的数据转换方法,将不同数据格式的待运算数据,转换为设定数据格式的转换后数据,再利用转换后数据进行神经网络中各层的运算,最终得到各层的输出神经元数据。各层的输出神经元数据也可以利用本公开实施例中的数据转换方法,转换为与各层的输入神经元数据相同的数据格式后输出,作为下一层的输入神经元数据参与运算,以提高适用性。在一种可能的实现方式中,可以将定点数格式的输入神经元数据、输出神经元数据或权值,转换为其他设定数据格式的数据,例如可以转换为设定位数的整数。从而在保证神经网络运算精度需求的前提下,提高待运算数据的表示范围。在一种可能的实现方式中,也可以将浮点格式的输入神经元数据、输出神经元数据或权值,转换为其他设定数据格式的数据,例如可以转换为设定位数的整数。从而解决待运算数据同时存在大数和小数的情况下,大数精度不够,小数精度冗余的情况,提高神经网络的运算精度和运算效率。在本实施例中,获取待运算数据;在待运算数据中确定定位数位;根据定位数位,在待运算数据中确定第一目标数位,以及确定在待运算数据的转换后数据中,与第一目标数位对应的第二目标数位;根据待运算数据中第一目标数位的数值,确定转换后数据中第二目标数位的数值;根据第二目标数位的数值得到转换后数据。根据待运算数据确定定位数位以及第一目标数位,能够使得待运算数据的转换后数据在保持数据精度的前提下,变换数据的位宽,适应不同的运算需求。在一种可能的实现方式中,所述定位数位获取子模块,包括:定位数位获取单元,用于在所述待运算数据的数据格式为定点数时,将二进制形式的定点数的整数部分中由高位至低位第一个1所在的数位,确定为定位数位。在一种可能的实现方式中,当待运算数据的数据格式为定点数时,可以将待运算数据进行数据格式的转换。十六位二进制形式的定点数整数有十六个数位,各数位上的数值为0或1。可以在十六位二进制定点数的整数中,将由高位至低位第一个1所在的数位确定为定位数位,可以代表十六位的二进制的数据中有效数值所在的数位中的起始数位。例如,当待运算数据为定点数整数部分为6912时,十六位二进制形式的定点数的整数可以表示为0001101100000000,由高位到低位的数位依次为x15至x0。可以将由高位至低位第一个1所在的数位x12,确定为定位数位。在本实施例中,可以将十六位二进制形式的定点数整数中由高位至低位第一个1所在的数位,确定为定位数位。可以准确将定点数格式的待运算数据中的有效数值精确地定位出来,用于后续第一目标数位的确定,保证转换后数据的准确度。在一种可能的实现方式中,所述转换后数据为二进制形式的整数,所述目标数位确定子模块,用于:若所述定位数位为第N数位,在最低位的数位为第0数位,N为偶数的情况下,将第N-1数位至第N2+1数位确定为所述定点数中的第一目标数位;在所述转换后数据中确定与所述第一目标数位对应的第二目标数位。在一种可能的实现方式中,当确定出的定位数位N为偶数时,可以将待运算数据中第N-1数位至第N2+1数位确定为第一目标数位。根据N的取值不同,第一目标数位的数量也不同。由于第一目标数位上的数值,用于得到转换后数据的第二目标数位上的数值,第一目标数位的数量与待运算数据中有效数位的数量相关,可以适用于不同大小的待运算数据。在一种可能的实现方式中,可以将所述转换后数据中与所述第一目标数位对应的第二目标数位确定为第N2-2数位至第0数位。在一种可能的实现方式中,可以将待运算数据的转换后数据中的第N2-2数位至第0数位,确定为与第一目标数位对应的第二目标数位。其中,第一目标数位中的第N-1数位对应第二目标数位中的第N2-2数位,第一目标数位中的第N-2数位对应第二目标数位中的第N2-3数位……直至第一目标数位中的第N2+1数位对应第二目标数位中的第0数位。第二目标数位的数量和第一目标数位的数量相等,第一目标数位上的数值可以完整的映射至第二目标数位,使得转换后数据能够保留待运算数据的精度。在一种可能的实现方式中,所述目标数位确定子模块,还用于:将所述转换后数据中与所述第一目标数位对应的第二目标数位确定为第N2-2数位至第0数位。在一种可能的实现方式中,所述转换后的数据包括尾数位和幂次位,所述转换后数据获取子模块,包括:尾数位数值获取单元,用于根据所述第二目标数位的数值确定所述转换后数据中尾数位的数值;幂次位指数位获取单元,用于根据所述待运算数据中定位数位上的数值,确定所述转换后数据中幂次位和指数位的数值;转换后数据获取单元,用于根据所述尾数位的数值、所述幂次位的数值和所述指数位的数值,得到所述转换后的数据。在一种可能的实现方式中,可以将第一目标数位中的第N-1数位的数值,确定为第二目标数位中的第N2-2数位的数值,将第一目标数位中的第N-2数位的数值,确定为第二目标数位中的第N2-3数位的数值……直至将第一目标数位中的第N2+1数位的数值,确定为第二目标数位中的第0数位的数值。在一种可能的实现方式中,待运算数据为十六位二进制形式的定点数的整数,转换后数据为八位二进制形式的整数。转换后数据中除第N2-2数位至第0数位以外,还有第N2数位和第N2-1数位没有与之对应的第一目标数位。第N2数位和第N2-1数位可以根据需求分别确定为转换后的数据的幂次位或指数位。可以将第二目标数位中的第N2-2数位至第0数位的数值确定为转换后的数据的尾数位的数值。可以根据待运算数据自身的数据特征和数据转换的需求,确定第N2数位和第N2-1数位的数值。在一种可能的实现方式中,所述尾数位数值获取单元,用于:当所述转换后数据的尾数位的位宽大于所述第二目标数位的位宽时,根据所述第二目标数位的数值和预设的补齐数值,确定所述转换后数据中的尾数位的数值。在一种可能的实现方式中,所述幂次位指数位获取单元,用于:当所述定位数位上的数值为偶数时,将所述转换后数据中幂次位的数值确定为0,或当所述定位数位上的数值为奇数时,将所述转换后数据中幂次位的数值确定为1。在一种可能的实现方式中,所述定点数的位宽为M,所述转换后数据的位宽为N,M≥2N。在一种可能的实现方式中,当待运算数据为定点数整数部分为6912时,十六位二进制形式的定点数的整数部分可以表示为0001101100000000,由高位到低位的数位依次为x15至x0。定位数位为x12。定位数位N为12,N为偶数。第一目标数位为第N-1数位至第N2+1数位:x11,x10,x9,x8,x7。待运算数据的转换后数据中,第二目标数位为第N2-2数位至第0数位:x4,x3,x2,x1,x0。根据第一目标数位的数值可以得到第二目标数位的数值为10110。确定第二目标数位中第N2数位的数值为1,确定第N2-1数位的数值为0,则可以得到待运算数据的转换后数据为:01010110。在一种可能的实现方式中,可以将待运算数据的转换后数据中的第N-12-2数位至第0数位,确定为与第一目标数位对应的第二目标数位。其中,第一目标数位中的第N-1数位对应第二目标数位中的第N-12-2数位,第一目标数位中的第N-2数位对应第二目标数位中的第N-12-3数位……直至第一目标数位中的第N-12+2数位对应第二目标数位中的第0数位。第二目标数位的数量和第一目标数位的数量相等,第一目标数位上的数值可以完整的映射至第二目标数位,使得转换后数据能够保留待运算数据的精度。在一种可能的实现方式中,可以将第一目标数位中的第N-1数位的数值,确定为第二目标数位中的第N-12-2数位的数值,将第一目标数位中的第N-2数位的数值,确定为第二目标数位中的第N-12-3的数值……直至将第一目标数位中的第N-12+2数位的数值,确定为第二目标数位中的第0数位的数值。在一种可能的实现方式中,当待运算数据为定点数45568时,十六位二进制形式的定点数的整数可以表示为1011001000000000,由高位到低位的数位依次为x15至x0。定位数位为x15。定位数位N为15,N为奇数。第一目标数位为第N-1数位至第N-12+2数位:x14,x13,x12,x11,x10,x9。待运算数据的转换后数据中,第二目标数位为第N-12-2数位至第0数位:x5,x4,x3,x2,x1,x0。根据第一目标数位的数值可以得到第二目标数位的数值为011001。确定第二目标数位中第N-12数位的数值为1,确定第N-12-1数位的数值为1,则可以得到待运算数据的转换后数据为:11011001。在本实施例中,根据所述第二目标数位的数值确定转换后数据中尾数位的数值;根据待运算数据中定位数位上的数值,确定转换后数据中幂次位和指数位的数值;根据尾数位的数值、幂次位的数值和指数位的数值,得到所述转换后的数据。定位数位N可以定位待运算数据中的有效数位,根据定位数位N确定出的第一目标数位和第二目标数位,可以使待运算数据的转换后数据保留数据的精度。在一种可能的实现方式中,所述定位数位获取子模块,用于:在所述待运算数据的数据格式为指定数据格式时,将所述待运算数据中由高位至低位第一个1所在的数位,确定为定位数位,其中,所述指定数据格式为八位二进制形式的整数,所述指定数据格式中包括幂次位和尾数位,所述幂次位位于高位,所述尾数位位于低位。在一种可能的实现方式中,利用本公开上述实施例中的方法将定点数转换为八位二进制形式的整数后,可以利用本公开实施例中的方法将八位二进制形式的整数再转换为定点数后进行运算,或输出至后续的运算装置进行运算,以提高本公开实施例中数据转换的灵活性,扩大适用范围。在一种可能的实现方式中,当待运算数据的数据格式为八位二进制形式的整数时,可以将待运算数据进行数据格式的转换,转换为十六位二进制形式的定点数的整数。转换后数据有十六个数位,各数位上的数值为0或1。可以在八位二进制形式的整数中,将由高位至低位第一个1所在的数位确定为定位数位,可以代表八位二进制形式的整数中有效数值所在的数位中的起始数位。例如,当待运算数据为待运算数据为86时,八位二进制形式为1010110,由高位到低位的数位依次为x7至x0。可以将由高位至低位第一个1所在的数位x7,确定为定位数位。在本实施例中,可以将八位二进制形式的整数中由高位至低位第一个1所在的数位,确定为定位数位。可以将待运算数据中的有效数值精确定位出来,用于后续第一目标数位的确定,保证转换后数据的准确度。在一种可能的实现方式中,所述转换后数据的数据格式为十六位二进制形式的定点数,所述目标数位确定子模块,用于:若定位数位为第N数位,将第N-2数位至第0数位确定为待运算数据中的第一目标数位;将所述转换后数据中由高位至低位的第二个数位开始的N-1个数位,确定为所述转换后数据中与所述第一目标数位对应的第二目标数位。在一种可能的实现方式中,待运算数据为八位二进制形式的整数时,根据定位数位N,可以在待运算数据中确定第一目标数位为第N-2数位至第0数位。例如,待运算数据为待运算数据为86,八位二进制形式为1010110,定位数位为x6。第一目标数位为x4,x3,x2,x1,x0。在一种可能的实现方式中,转换后数据为十六位二进制的定点数由高位到低位的数位依次为x15至x0。可以将x14开始的N-1个数位确定为第二目标数位。可以将待运算数据的第一目标数位中的第N-2数位,对应转换后数据的第二目标数位中的x14。将待运算数据的第一目标数位中的第N-3数位,对应转换后数据的第二目标数位中的x13,直至将待运算数据的第一目标数位中的第0数位,对应转换后数据的第二目标数位中由高位至低位的第二个数位开始的第N-1个数位。例如,待运算数据为待运算数据为86,八位二进制形式为01010110,定位数位为x6。第一目标数位为x4,x3,x2,x1,x0。第二目标数位为x14,x13,x12,x11,x10。在一种可能的实现方式中,可以根据待运算数据的第一目标数位的数值,直接得到转换后数据的第二目标数位的数值。也可以将待运算数据的第一目标数位的数值进行其它处理,例如进行01转换后,得到转换后数据的第二目标数位的数值。本公开对此不做限定。在一种可能的实现方式中,所述转换后数据获取子模块,用于:确定所述转换后数据中,第十六数位的数值;根据第十六数位和所述第二目标数位的数值得到所述转换后数据。在一种可能的实现方式中,除第二目标数位外,可以根据数据转换的需求和待运算数据的数据特征,确定第十六数位的数值。例如,可以确定第十六数位的数值为1。在一种可能的实现方式中,转换后数据为十六位二进制形式的定点数,除第十六数位,第二目标数位以外,还需要补齐剩余数位的数值。在一种可能的实现方式中,待运算数据的定位数位N,当待运算数据中第N-1数位的数值为0时,可以在转换后数据中,补齐N+1个0。当待运算数据中第N-1数位的数值为1时,可以在转换后数据中,补齐N+2个0。例如,待运算数据为待运算数据为86,八位二进制形式为01010110,定位数位为x6。第一目标数位为x4,x3,x2,x1,x0。第二目标数位为x14,x13,x12,x11,x10。可以将转换后数据的第十六数位确定为1。由于待运算数据中第N-1数位的数值为0,补齐7个0,转换后数据为1101100000000。在本实施例中,可以根据定位数位N,在待运算数据中确定第N-2数位至第0数位为第一目标数位,并在待运算数据的转换后数据中,将由高位至低位的第二个数位开始的N-1个数位确定为第二目标数位。可以根据第二目标数位的数值得到转换后数据。定位数位N可以定位待运算数据中的有效数位,根据定位数位N确定出的第一目标数位和第二目标数位,可以使待运算数据的转换后数据,能够保留待运算数据的精度。在一种可能的实现方式中,所述转换后数据获取子模块,用于:将除第十六数位和所述第二目标数位之外的数位设为0。在一种可能的实现方式中,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换,包括:所述控制器模块,用于获取待运算数据、机器学习模型、计算指令以及所述数据格式选择模块确定的数据转换格式;所述控制器模块,用于控制所述数据格式转换模块对待运算数据进行数据格式转换,得到转换后的待运算数据;所述控制器模块,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述转换后的待运算数据发送给所述运算模块。图3示出根据本公开一实施例的组合处理装置的框图,如图3所示,所述组合处理装置,包括上述的神经网络运算装置,通用互联接口,和其他处理装置。神经网络运算装置与其他处理装置进行交互,共同完成用户指定的操作。其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为神经网络运算装置与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置也可以和神经网络运算装置协作共同完成运算任务。通用互联接口,用于在所述神经网络运算装置与其他处理装置间传输数据和控制指令。该神经网络运算装置从其他处理装置中获取所需的输入数据,写入神经网络运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入神经网络运算装置片上的控制缓存;也可以读取神经网络运算装置的存储模块中的数据并传输给其他处理装置。组合处理装置还可以包括存储装置,存储装置分别与所述神经网络运算装置和所述其他处理装置连接。存储装置用于保存在所述神经网络运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本神经网络运算装置或其他处理装置的内部存储中无法全部保存的数据。该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。在一种可能的实现方式中,本公开还提供神经网络芯片,其包括了上述神经网络运算装置或组合处理装置。在一种可能的实现方式中,本公开还提供芯片封装结构,其包括了上述芯片。在一种可能的实现方式中,本公开还提供板卡,其包括了上述芯片封装结构。在一种可能的实现方式中,本公开还提供电子设备,其包括了上述板卡。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和或医疗设备。所述交通工具包括飞机、轮船和或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和或心电图仪。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备可为个人计算机、服务器或者网络设备等执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器ROM,Read-OnlyMemory、随机存取存储器RAM,RandomAccessMemory、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器英文:Read-OnlyMemory,简称:ROM、随机存取器英文:RandomAccessMemory,简称:RAM、磁盘或光盘等。以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。这里参照根据本公开实施例的方法、装置系统和计算机程序产品的流程图和或框图描述了本公开的各个方面。应当理解,流程图和或框图的每个方框以及流程图和或框图中各方框的组合,都可以由计算机可读程序指令实现。附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和或流程图中的每个方框、以及框图和或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

权利要求:1.一种计算装置,其特征在于,所述计算装置用于执行机器学习计算,所述装置包括控制器模块、运算模块、数据格式转换模块和数据格式选择模块,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换;所述运算模块用于在所述控制器模块的控制下,根据格式转换后的待运算数据进行运算。2.根据权利要求1所述的装置,其特征在于,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换,包括:所述控制器模块用于根据所述数据格式选择模块发送的数据格式转换指令和所述待运算数据,确定是否对所述待运算数据进行数据格式转换,所述数据格式转换指令包括转换前的数据格式和转换后的数据格式;当确定对所述待运算数据进行数据格式转换时,所述控制器模块控制所述数据格式转换模块对待运算数据进行数据格式转换。3.根据权利要求1所述的装置,其特征在于,所述运算模块包括多个运算子模块,各所述运算子模块分别用于对预设的数据格式的数据进行运算。4.根据权利要求1所述的装置,其特征在于,所述数据格式转换模块用于:待运算数据获取子模块,用于获取待运算数据;定位数位获取子模块,用于在待运算数据中确定定位数位;目标数位确定子模块,用于根据所述定位数位,在所述待运算数据中确定第一目标数位,以及确定在所述待运算数据的转换后数据中,与所述第一目标数位对应的第二目标数位;数值确定子模块,用于根据所述待运算数据中所述第一目标数位的数值,确定所述转换后数据中所述第二目标数位的数值;转换后数据获取子模块,用于根据所述第二目标数位的数值得到所述转换后数据。5.根据权利要求4所述的装置,其特征在于,所述定位数位获取子模块,包括:定位数位获取单元,用于在所述待运算数据的数据格式为定点数时,将二进制形式的定点数的整数部分中由高位至低位第一个1所在的数位,确定为定位数位。6.根据权利要求4或5所述的装置,其特征在于,所述转换后数据为二进制形式的整数,所述目标数位确定子模块,用于:若所述定位数位为第N数位,在最低位的数位为第0数位,N为偶数的情况下,将第N-1数位至第N2+1数位确定为所述定点数中的第一目标数位;在所述转换后数据中确定与所述第一目标数位对应的第二目标数位。7.根据权利要求6所述的装置,其特征在于,所述目标数位确定子模块,还用于:将所述转换后数据中与所述第一目标数位对应的第二目标数位确定为第N2-2数位至第0数位。8.根据权利要求6所述的装置,其特征在于,所述转换后的数据包括尾数位和幂次位,所述转换后数据获取子模块,包括:尾数位数值获取单元,用于根据所述第二目标数位的数值确定所述转换后数据中尾数位的数值;幂次位指数位获取单元,用于根据所述待运算数据中定位数位上的数值,确定所述转换后数据中幂次位和指数位的数值;转换后数据获取单元,用于根据所述尾数位的数值、所述幂次位的数值和所述指数位的数值,得到所述转换后的数据。9.根据权利要求8所述的装置,其特征在于,所述尾数位数值获取单元,用于:当所述转换后数据的尾数位的位宽大于所述第二目标数位的位宽时,根据所述第二目标数位的数值和预设的补齐数值,确定所述转换后数据中的尾数位的数值。10.根据权利要求8所述的装置,其特征在于,所述幂次位指数位获取单元,用于:当所述定位数位上的数值为偶数时,将所述转换后数据中幂次位的数值确定为0,或当所述定位数位上的数值为奇数时,将所述转换后数据中幂次位的数值确定为1。11.根据权利要求4至10中任一项所述的装置,其特征在于,所述定点数的位宽为M,所述转换后数据的位宽为N,M≥2N。12.根据权利要求4所述的装置,其特征在于,所述定位数位获取子模块,用于:在所述待运算数据的数据格式为指定数据格式时,将所述待运算数据中由高位至低位第一个1所在的数位,确定为定位数位,其中,所述指定数据格式为八位二进制形式的整数,所述指定数据格式中包括幂次位和尾数位,所述幂次位位于高位,所述尾数位位于低位。13.根据权利要求12所述的装置,其特征在于,所述转换后数据的数据格式为十六位二进制形式的定点数,所述目标数位确定子模块,用于:若定位数位为第N数位,将第N-2数位至第0数位确定为待运算数据中的第一目标数位;将所述转换后数据中由高位至低位的第二个数位开始的N-1个数位,确定为所述转换后数据中与所述第一目标数位对应的第二目标数位。14.根据权利要求13所述的装置,其特征在于,所述转换后数据获取子模块,用于:确定所述转换后数据中,第十六数位的数值;根据第十六数位和所述第二目标数位的数值得到所述转换后数据。15.根据权利要求14所述的装置,其特征在于,所述转换后数据获取子模块,用于:将除第十六数位和所述第二目标数位之外的数位设为0。16.根据权利要求1所述的装置,其特征在于,所述控制器模块用于根据所述数据格式选择模块确定的数据转换格式,控制所述数据格式转换模块对待运算数据进行数据格式转换,包括:所述控制器模块,用于获取待运算数据、机器学习模型、计算指令以及所述数据格式选择模块确定的数据转换格式;所述控制器模块,用于控制所述数据格式转换模块对待运算数据进行数据格式转换,得到转换后的待运算数据;所述控制器模块,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述转换后的待运算数据发送给所述运算模块。17.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括一个或多个如权利要求1-16任一项所述的计算装置,所述神经网络运算装置用于完成设定的神经网络运算。18.一种组合运算装置,其特征在于,所述组合运算装置包括一个或多个如权利要求17任一项所述的神经网络运算装置,通用互联接口和其他处理装置;所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。19.一种神经网络芯片,其特征在于,所述神经网络芯片包括:如权利要求1-16任一项所述的计算装置;或如权利要求17所述的神经网络运算装置;或如权利要求18所述的组合处理装置。20.一种电子设备,其特征在于,所述电子设备包括:如权利要求1-16任一项所述的计算装置;或如权利要求17所述的神经网络运算装置;或如权利要求18所述的组合处理装置;或如权利要求19所述的神经网络芯片。

百度查询: 上海寒武纪信息科技有限公司 计算装置及相关产品

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。