运算方法、装置及相关产品转让专利

申请号 : CN201811639690.X

文献号 : CN109726800B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 不公告发明人

申请人 : 北京中科寒武纪科技有限公司

摘要 :

本公开涉及一种运算方法、装置及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。

权利要求 :

1.一种运算方法,其特征在于,包括:

在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,所述中间结果包括所述Caffe模型中至少一个非输出层的运算结果;

根据调整后的所述Caffe配置文件执行所述Caffe模型,得到包括所述中间结果的所述Caffe模型的输出结果;

其中,所述Caffe模型为融合模型,

所述运算方法适用于异构计算架构,所述异构计算架构包括通用处理器和人工智能处理器;

所述非输出层包括:运行在所述人工智能处理器上的融合子网络中的非输出层;所述融合子网络为:将Caffe模型中全部或分网络层进行算子融合后得到的网络。

2.根据权利要求1所述的方法,其特征在于,还包括:

根据调整后的所述Caffe配置文件得到Caffe离线模型,以使所述Caffe离线模型在执行时,输出包括所述中间结果的所述Caffe模型的输出结果。

3.根据权利要求1所述的方法,其特征在于,所述额外输出参数的值包括输出标识或非输出标识,所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,包括:所述额外输出参数的值为输出标识表示将所述Caffe模型的中间结果增加到所述Caffe模型的输出结果中。

4.根据权利要求1至3任一项所述的方法,其特征在于,在所述Caffe模型的输出结果中,所述中间结果中各非输出层的输出结果按照网络层的名称顺序排列。

5.一种运算装置,其特征在于,包括:

参数定义模块,用于在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,所述中间结果包括所述Caffe模型中至少一个非输出层的运算结果;

模型执行模块,用于根据调整后的所述Caffe配置文件执行Caffe融合模型,得到包括所述中间结果的所述Caffe模型的输出结果,其中,所述运算装置适用于异构计算架构,所述异构计算架构包括通用处理器和人工智能处理器;

所述非输出层包括:运行在所述人工智能处理器上的融合子网络中的非输出层;所述融合子网络为:将Caffe模型中全部或部分网络层进行算子融合后得到的网络。

6.根据权利要求5所述的装置,其特征在于,还包括:

离线模型获取模块,用于根据调整后的所述Caffe配置文件得到Caffe离线模型,以使所述Caffe离线模型在执行时,输出包括所述中间结果的所述Caffe模型的输出结果。

7.根据权利要求5所述的装置,其特征在于,所述额外输出参数的值包括输出标识或非输出标识;

所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,包括:所述额外输出参数的值为输出标识表示将所述Caffe模型的中间结果增加到所述Caffe模型的输出结果中。

8.根据权利要求5至7任一项所述的装置,其特征在于,在所述Caffe模型的输出结果中,所述中间结果中各非输出层的输出结果按照网络层的名称顺序排列。

9.一种计算机设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。

10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。

11.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求5至8任一项所述的运算装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;

当所述机器学习运算装置包含多个所述运算装置时,所述多个所述运算装置间可以通过特定的结构进行连接并传输数据;

其中,多个所述运算装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;

多个所述运算装置共享同一控制系统或拥有各自的控制系统;

多个所述运算装置共享内存或者拥有各自的内存;

多个所述运算装置的互联方式是任意互联拓扑。

12.一种组合处理装置,其特征在于,所述组合处理装置包括权利要求11所述的机器学习运算装置,通用互联接口和其他处理装置;

所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。

13.根据权利要求12所述的组合处理装置,其特征在于,还包括:存储装置;

所述存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置或如权利要求12所述的组合处理装置的数据。

14.一种神经网络芯片,其特征在于,所述芯片包括如权利要求13所述的机器学习运算装置,或如权利要求12-13所述的组合处理装置。

15.一种电子设备,其特征在于,所述电子设备包括如权利要求14所述的神经网络芯片。

16.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求14所述的神经网络芯片;

其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;

所述存储器件,用于存储数据;

所述接口装置,用于实现所述神经网络芯片与外部设备之间的数据传输;

所述控制器件,用于对所述神经网络芯片的状态进行监控。

17.根据权利要求16所述的板卡,其特征在于,

所述存储器件包括:多组存储单元,每一组所述存储单元与所述神经网络芯片通过总线连接,所述存储单元为:DDR SDRAM;

所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;

所述接口装置为:标准PCIE接口。

说明书 :

运算方法、装置及相关产品

技术领域

[0001] 本公开涉及人工智能技术领域,尤其涉及一种运算方法、装置及相关产品。

背景技术

[0002] 融合模式和离线模式为神经网络的两种特有的运行方式,不同于通常的逐层运行方式。其中,神经网络中一部分融合后的网络层的数据拷贝过程不再由CPU处理,而是直接在MLU板卡上完成数据拷贝、数据运算等任务。这种将多个网络层的运算过程全部合并,不经由CPU而直接在MLU上完成计算的方式即为融合模式。在融合模式的基础上,将模型脱离网络框架,变为独立于网络框架的网络模型,即为离线模型,运行离线模型的方式即为离线模式。
[0003] 由于在融合模式和离线模式下,被融合的网络层数据不再流经CPU,因此用户无法获取其中某些层的运算结果。那么,在用户有Debug需求,或者是某些特殊原因需要直接获取网络中某个层的结果数据时,就会需要较为复杂的处理流程。通常采用的处理方式为:将网络在需要输出的位置进行拆分,将需要输出结果数据的网络层脱离融合模式;或者是,将需要输出结果数据的网络层进行复制,以作为额外输出使用。
[0004] 上述两种处理方式中,由于脱离融合模式的网络层需要在CPU上运行,这就使的其运算速率明显下降,从而导致较为严重的性能损失;而复制网络层的方式处理历程较为复杂,其同样也会影响处理速度,导致性能损失。

发明内容

[0005] 有鉴于此,本公开提出了一种运算方法,通过在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,通过额外输出参数表示将Caffe模型的中间结果增加到Caffe模型的输出结果中,从而在根据调整后的Caffe配置文件执行Caffe模型时,能够得到包括中间结果的Caffe模型的输出结果。相较于传统的中间结果获取方式,有效提高了运算速率,避免了模型性能的损失。
[0006] 根据本公开的一方面,提供了一种运算方法,包括:
[0007] 在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,所述中间结果包括所述Caffe模型中至少一个非输出层的运算结果;
[0008] 根据调整后的所述Caffe配置文件执行所述Caffe模型,得到包括所述中间结果的所述Caffe模型的输出结果;
[0009] 其中,所述Caffe模型为融合模型。
[0010] 在一种可能的实现方式中,所述方法还包括:
[0011] 根据调整后的所述Caffe文件得到Caffe离线模型,以使所述Caffe离线模型在执行时,输出包括所述中间结果的所述Caffe模型的输出结果。
[0012] 在一种可能的实现方式中,所述运算方法适用于异构计算架构,所述异构计算架构包括通用处理器和人工智能处理器;
[0013] 所述非输出层包括:运行在所述人工智能处理器上的融合子网络中的非输出层;所述融合子网络为:将Caffe模型中全部或分网络层进行算子融合后得到的网络。
[0014] 在一种可能的实现方式中,所述额外输出参数的值包括输出标识或非输出标识,[0015] 所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,包括:
[0016] 所述额外输出参数的值为输出标识表示将所述Caffe模型的中间结果增加到所述Caffe模型的输出结果中。
[0017] 在一种可能的实现方式中,在所述Caffe模型的输出结果中,所述中间结果中各非输出层的输出结果按照网络层的名称顺序排列。
[0018] 根据本公开的另一方面,还提供了一种运算装置,包括:
[0019] 参数定义模块,用于在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,所述中间结果包括所述Caffe模型中至少一个非输出层的运算结果;
[0020] 模型执行模块,用于根据调整后的所述Caffe配置文件执行Caffe融合模型,得到包括所述中间结果的所述Caffe模型的输出结果。
[0021] 在一种可能的实现方式中,所述装置还包括:
[0022] 离线模型获取模块,用于根据调整后的所述Caffe文件得到Caffe离线模型,以使所述Caffe离线模型在执行时,输出包括所述中间结果的所述Caffe模型的输出结果。
[0023] 在一种可能的实现方式中,所述运算装置适用于异构计算架构,所述异构计算架构包括通用处理器和人工智能处理器;
[0024] 所述非输出层包括:运行在所述人工智能处理器上的融合子网络中的非输出层;所述融合子网络为:将Caffe模型中全部或部分网络层进行算子融合后得到的网络。
[0025] 在一种可能的实现方式中,所述额外输出参数的值包括输出标识或非输出标识;
[0026] 所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,包括:
[0027] 所述额外输出参数的值为输出标识表示将所述Caffe模型的中间结果增加到所述Caffe模型的输出结果中。
[0028] 在一种可能的实现方式中,在所述Caffe模型的输出结果中,所述中间及诶过中非输出层的输出结果按照网络层的名称顺序排列。
[0029] 根据本公开提供的一方面,提供了一种计算机设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一所述方法的步骤。
[0030] 根据本公开的一方面,还提供了一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
[0031] 根据本公开的另一方面,还提供了一种机器学习运算装置,所述机器学习运算装置包括一个或多个如上任一所述的运算装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
[0032] 当所述机器学习运算装置包含多个所述运算装置时,所述多个所述运算装置间可以通过特定的结构进行连接并传输数据;
[0033] 其中,多个所述运算装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;
[0034] 多个所述运算装置共享同一控制系统或拥有各自的控制系统;
[0035] 多个所述运算装置共享内存或者拥有各自的内存;
[0036] 多个所述运算装置的互联方式是任意互联拓扑。
[0037] 根据本公开的一方面,提供了一种组合处理装置,所述组合处理装置包括如上所述的机器学习运算装置,通用互联接口和其他处理装置;
[0038] 所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
[0039] 在一种可能的实现方式中,还包括:存储装置;
[0040] 所述存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存如上所述的机器学习运算装置或如上所述的组合处理装置。
[0041] 根据本公开的一方面,提供了一种神经网络芯片,所述芯片包括如上所述的机器学习运算装置,或如上所述的组合处理装置,或如上所述的组合处理装置。
[0042] 根据本公开的另一方面,还提供了一种电子设备,所述电子设备包括如上所述的神经网络芯片。
[0043] 根据本公开的一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的神经网络芯片;
[0044] 其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
[0045] 所述存储器件,用于存储数据;
[0046] 所述接口装置,用于实现所述神经网络芯片与外部设备之间的数据传输;
[0047] 所述控制器件,用于对所述神经网络芯片的状态进行监控。
[0048] 在一种可能的实现方式中,所述存储器件包括:多组存储单元,每一组所述存储单元与所述神经网络芯片通过总线连接,所述存储单元为:DDR SDRAM;
[0049] 所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
[0050] 所述接口装置为:标准PCIE接口。
[0051] 上述运算方法,通过在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,通过额外输出参数表示将Caffe模型的中间结果增加到Caffe模型的输出结果中,从而在根据调整后的Caffe配置文件执行Caffe模型时,能够得到包括中间结果的Caffe模型的输出结果。相较于传统的中间结果获取方式,有效提高了运算速率,避免了模型性能的损失。
[0052] 根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

[0053] 包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
[0054] 图1示出根据本公开一实施例的运算方法的流程图;
[0055] 图2示出相关技术的神经网络的结构示意图;
[0056] 图3示出神经网络在逐层模式下的运行逻辑的示意图;
[0057] 图4示出神经网络在融合模式下的运行逻辑的示意图;
[0058] 图5示出神经网络在本公开的一实施例下的运行逻辑的示意图;
[0059] 图6示出根据本公开一实施例的运算装置的框图;
[0060] 图7示出根据本公开一实施例的组合处理的框图;
[0061] 图8示出根据本公开一实施例的另一组合处理装置的框图;
[0062] 图9示出根据本公开一实施例的板卡的框图。

具体实施方式

[0063] 以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0064] 在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0065] 另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
[0066] 首先,需要说明的是,生成Caffe模型的文件通常包括两个:一个为结构文件(Prototxt,简称pt),也就是后面所述的配置文件;另一个则为权重文件(caffemodel)。上述运算方法中所调整的对象可以是存储在磁盘中的配置文件(pt),也可以为在将配置文件和权重文件加载至内存中后,对加载至内存中的配置文件进行的调整。
[0067] 图1示出了根据本公开的一实施例的运算方法的流程图。参阅图1,本公开实施例的运算方法,包括:
[0068] 步骤S100,在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件。其中,需要说明的是,额外输出参数用于表示将Caffe模型的中间结果增加到Caffe模型的输出结果中。中间结果指的是包括Caffe模型中至少一个非输出层的运算结果。
[0069] 步骤S200,根据调整后的Caffe配置文件执行Caffe模型,得到包括中间结果的Caffe模型的输出结果。其中,Caffe模型可以为融合模型。
[0070] 应当指出的是,本公开的运算方法可以是基于卷积神经网络框架(Convolutional Architecture for Fast Feature Embedding,简称Caffe)的融合模式进行,也可以基于其他神经网络结构进行,以下公开的实施例均是以Caffe模型为例进行说明。本领域技术人员可以理解的是,本公开的运算方法还可以应用于其他神经网络,其原理相同或相似,此处不再进行一一赘述。
[0071] 另外,为了更清楚的说明本公开的运算方法,以下对神经网络及神经网络运行方式进行较为详细的解释说明,以便于更加清楚的理解本公开的运算方法的技术方案。
[0072] 参阅图2,图2示出相关技术的神经网络的结构示意图。该神经网络结构包括一个输入(input)和两个输出(output1和output2)。位于输入与输出之间各个layer指的就是网络中的各个网络层。目前,神经网络的运行方式大体上包括逐层模式、融合模式和离线模式。
[0073] 参阅图3,图3示出了神经网络在逐层模式下的运行逻辑。其中,在逐层模式下,神经网络中的各个网络层(layer)的运算由MLU(人工智能芯片)完成,各个网络层之间的数据传输由CPU完成,由于层与层之间的交互在CPU中实现,因此在该种模式下可以直接获取到各个层的网络输出。
[0074] 为了加快网络运算速率,提高网络性能,提出了融合模式和离线模式两种神经网络运行方式。参阅图4,图4示出了神经网络在融合模式下的运行逻辑。其中,在融合模式下,各个网络层的运算和层与层之间的交互均在MLU中完成,CPU仅参与输入和输出的过程。即,融合模型指的是,神经网络中融合后的网络层的数据拷贝过程不再由CPU处理,而是直接在MLU板卡上完成数据拷贝,数据运算等任务。融合模型的运行方式即为融合模式。在融合模式下,整个网络的运行对CPU是透明的,因此此时用户是无法直接获取中间网络层的运算结果的。
[0075] 离线模式,则是在融合模式的基础上,将模型脱离框架(即,将Caffe模型脱离Caffe框架),变为独立于框架的网络模型(离线模型)的运行方式。同理,在离线模式下,网络的运行过程对CPU是透明的,用户无法直接获取中间网络层的运算结果。
[0076] 可以采用前面所述的本公开的运算方法的一实施例,在网络模型(Caffe模型)的配置文件中定义额外输出参数,通过所定义的额外输出参数来表示将网络模型的中间结果增加到网络模型的输出结果中,使得在根据调整后的Caffe配置文件执行Caffe模型时,能够在Caffe模型的输出结果中直接获取到中间结果。
[0077] 上述公开的运算方法,只需要对Caffe模型的配置文件进行调整,在配置文件中定义额外输出参数,即可实现在MLU上直接获取中间网络层的运算结果(中间结果)的目的,操作简单,易于实现。并且,本公开的运算方法,相较于传统的将网络在需要输出的位置进行拆分的方式,处理流程简单,同时还不会影响网络的性能。
[0078] 作为一种可能的实现方式,图5示出了根据本公开的一实施例的运算方法的示意图。参阅图5,在Caffe模型的配置文件中所定义的额外输出参数可以为:external_output。即,对Caffe模型中至少一个非输出层(除输出层之外的其他网络层)追加external_output参数,在Caffe模型运行过程中,可以根据external_output进行相应网络层的运算结果的输出。操作简单,易于实现。
[0079] 作为一种可能的实现方式,还包括:根据调整后的Caffe配置文件得到Caffe离线模型,以使Caffe离线模型在执行时,输出包括中间结果的Caffe模型的输出结果。即,通过根据调整后的Caffe配置文件得到Caffe离线模型,将Caffe融合模型进一步转换为离线模型后,使得在离线模式下,同样能够采样前面任意所述的运算方法获取中间结果。
[0080] 其中,需要指出的是,本公开的运算方法适用于异构计算架构。异构计算架构包括通用处理器(CPU)和人工智能处理器。人工智能处理器可以为用于执行人工智能运算的人工智能处理器(IPU),人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。非输出层则包括:运行在人工智能处理器上的融合子网络中的非输出层。同时,根据前面所述的融合模型,本领域技术人员可以理解的是,融合子网络指的是将Caffe模型中全部或部分网络层进行算子融合后得到的网络。
[0081] 另外,作为本公开运算方法的一种可能的实现方式,额外输出参数的值可以包括输出标识(如:true)或非输出标识(如:false)。相应的,在定义额外输出参数时,则可以通过定义额外输出参数的值来表示将Caffe模型的中间结果增加到Caffe模型的输出结果中。
[0082] 其中,在通过定义额外输出参数的值来表示将中间结果增加到Caffe模型的输出结果中时,可以为:
[0083] 将待输出层(即,需要输出运算结果的中间某一网络层)的额外输出参数的值设置为真(即,external_output:true),当某一层网络层的额外输出参数为真时,则将该网络层的输出作为融合后的Caffe模型的输出结果进行输出。
[0084] 也就是说,设置external_output为true的网络层的运算结果,可视为融合后网络的正常输出结果,其实际处理方式等效于Caffe模型的网络末端结果。同时,该运算结果依然会在融合后的网络中继续参与运算,不影响网络运算的同时,也没有明显的性能下降。
[0085] 其中,作为一种可能的实现方式,在Caffe模型的输出结果中,中间结果中各非输出层的输出结果按照网络层的名称顺序排列。即,在将中间结果增加至Caffe模型的输出结果中,使得Caffe模型的输出结果中包含有中间结果时,中间结果可能包括多个网络层所对应的运算结果。此时,可以将多个网络层的运算结果(即,多个中间结果)按照网络层的名称顺序依次排列在Caffe模型的输出结果中进行输出。
[0086] 通过将多个中间结果按照网络层的名称顺序依次排列在Caffe模型的输出结果列表中,使得输出结果对应的网络层清晰明了。
[0087] 上述运算方法,通过在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,通过额外输出参数表示将Caffe模型的中间结果增加到Caffe模型的输出结果中,从而在根据调整后的Caffe配置文件执行Caffe模型时,能够得到包括中间结果的Caffe模型的输出结果。相较于传统的中间结果获取方式,有效提高了运算速率,避免了模型性能的损失。
[0088] 根据本公开的一方面,还提供了一种运算装置100。图6示出本公开的运算装置100的一实施例的框图。参阅图6,运算装置100包括:
[0089] 参数定义模块110,用于在Caffe模型的配置文件中定义额外输出参数,得到调整后的Caffe配置文件,所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,所述中间结果包括所述Caffe模型中至少一个非输出层的运算结果;
[0090] 模型执行模块120,用于根据调整后的所述Caffe配置文件执行Caffe融合模型,得到包括所述中间结果的所述Caffe模型的输出结果。
[0091] 作为一种可能的实现方式,还包括:
[0092] 离线模型获取模块,用于根据调整后的所述Caffe配置文件得到Caffe离线模型,以使所述Caffe离线模型在执行时,输出包括所述中间结果的所述Caffe模型的输出结果。
[0093] 作为一种可能的实现方式,所述运算装置100适用于异构计算架构,所述异构计算架构包括通用处理器和人工智能处理器;
[0094] 所述非输出层包括:运行在所述人工智能处理器上的融合子网络中的非输出层;所述融合子网络为:将Caffe模型中全部或部分网络层进行算子融合后得到的网络。
[0095] 作为一种可能的实现方式,所述额外输出参数的值包括输出标识或非输出标识;
[0096] 所述额外输出参数用于表示将Caffe模型的中间结果增加到所述Caffe模型的输出结果中,包括:
[0097] 所述额外输出参数的值为输出标识表示将所述Caffe模型的中间结果增加到所述Caffe模型的输出结果中。
[0098] 作为一种可能的实现方式,在所述Caffe模型的输出结果中,所述中间及诶过中非输出层的输出结果按照网络层的名称顺序排列。
[0099] 根据本公开的另一方面,提供了一种计算机设备,包括存储器、处理器,存储器上存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上任意一种运算方法的步骤。
[0100] 根据本公开的另一方面,还提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上任意一种运算方法的步骤。
[0101] 根据本公开的一方面,提供了一种机器学习运算装置,机器学习运算装置包括一个或多个如上的任一种运算装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置。其他处理装置譬如:摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上运算装置时,运算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
[0102] 该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
[0103] 图7示出了根据本公开一实施例的组合处理装置200a的框图。参阅图7,本公开还提供了一种组合处理装置200a,组合处理装置包括如上的机器学习运算装置(神经网络运算装置210),通用互联接口220和其他处理装置230。机器学习运算装置210与其他处理装置230进行交互,共同完成用户指定的操作。
[0104] 其他处理装置230,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置230所包括的处理器数量不做限制。其他处理装置230作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
[0105] 通用互联接口220,用于在所述机器学习运算装置210与其他处理装置230间传输数据和控制指令。该机器学习运算装置210从其他处理装置230中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其他处理装置230中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
[0106] 图8示出了根据本公开另一实施例的组合处理装置200b的框图。参阅图8,本公开的组合处理装置200b还可以包括存储装置240,存储装置240分别与所述机器学习运算装置210和所述其他处理装置230连接。存储装置240用于保存在所述机器学习运算装置210和所述其他处理装置230的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中无法全部保存的数据。
[0107] 该组合处理装置200b可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
[0108] 在一些实施例里,还公开了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
[0109] 在一些实施例里,公开了一种芯片封装结构,其包括了上述芯片。
[0110] 在一些实施例里,公开了一种板卡,其包括了上述芯片封装结构。参阅图9,图9提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392。
[0111] 所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
[0112] DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
[0113] 在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
[0114] 所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
[0115] 所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
[0116] 在一些实施例里,申请了一种电子设备,其包括了上述板卡。
[0117] 电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
[0118] 所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
[0119] 以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。