首页 / 专利库 / 电脑图像 / 图形处理单元 / 神经网络模型的架构融合方法及相关装置

神经网络模型的架构融合方法及相关装置

阅读:644发布:2020-05-08

专利汇可以提供神经网络模型的架构融合方法及相关装置专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种神经网络模型的架构融合方法及相关装置,神经网络模型的架构融合方法应用于包括神经网络模型的架构融合装置的板卡,该板卡包括 存储器 件、 接口 装置和 控制器 件以及神经网络芯片,该神经网络芯片与该存储器件、该接口装置以及该控制器件分别连接;该存储器件,用于存储数据;该接口装置,用于实现该神经网络芯片与外部设备之间的数据传输;该控制器件,用于对该神经网络芯片的状态进行监控。采用本申请实施例可提升神经网络模型的运算速度。,下面是神经网络模型的架构融合方法及相关装置专利的具体信息内容。

1.一种神经网络模型的架构融合方法,其特征在于,所述方法包括:
提取第一神经网络模型的运算流程,所述运算流程包括多个算子对应的至少两个处理单元信息,所述至少两个处理单元信息包括中央处理单元、图形处理单元图像处理单元中的至少两个;
根据所述运算流程生成所述第一神经网络模型的计算图,所述计算图为有向无环图,所述有向无环图包括多个节点,所述多个节点与所述多个算子一一对应;
根据所述多个算子对应的至少两个处理单元信息确定所述有向无环图中的N个可融合节点和M个非融合节点,所述可融合节点对应的算子为图像处理单元执行的算子,所述N和所述M均为大于1的整数;
对所述N个可融合节点进行融合段划分,得到融合段划分后的有向无环图,所述融合段划分后的有向无环图包括P个融合段,所述P为大于或等于1且小于或等于所述N的整数;
获取所述M个非融合节点在所述有向无环图中的Q条路径和M个节点层,所述Q大于所述M,每个非融合节点对应至少一条路径和一个节点层;
根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化,得到融合后的有向无环图;
根据所述融合后的有向无环图生成第二神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述第一神经网络模型包括多层结构,所述运算流程包括所述多层结构的多个算子和所述多个算子之间的连接关系,每层结构对应至少一个算子,所述根据所述运算流程生成所述第一神经网络模型的计算图,包括:
从所述多个算子中选取目标算子,所述目标算子为所述有向无环图的起始节点;
获取所述目标算子的下层算子和所述下层算子的连接关系;
根据所述下层算子的连接关系将所述下层算子对应的下层节点连接,将所述下层节点与所述起始节点连接,得到所述有向无环图。
3.根据权利要求2所述的方法,其特征在于,所述对所述N个可融合节点进行融合段划分,包括:
获取所述N个可融合节点之间的节点连接关系;
若可融合节点m与可融合节点n的节点连接关系为同一个节点层的相邻节点或不同节点层的父子节点,则将所述可融合节点m和所述可融合节点n划分至同一个融合段,所述可融合节点m和所述可融合节点n均为所述N个可融合节点中的任意一个。
4.根据权利要求3所述的方法,其特征在于,所述根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化,包括:
获取所述M个非融合节点之间的节点位置关系;
若非融合节点p对应的算子与非融合节点q对应的算子相同,则确定所述非融合节点p与所述非融合节点q的节点位置关系,所述非融合节点p和所述非融合节点q均为所述M个非融合节点中的任意一个;
若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则将指向所述非融合节点p的边指向所述非融合节点q,增加所述非融合节点q的一条边指向所述非融合节点p的边指向的节点,删除所述非融合节点p;
或者,若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则将指向所述非融合节点q的边指向所述非融合节点p,增加所述非融合节点p的一条边指向所述非融合节点q的边指向的节点,删除所述非融合节点q。
5.一种神经网络模型的架构融合装置,其特征在于,所述装置包括:
提取单元,用于提取第一神经网络模型的运算流程,所述运算流程包括多个算子对应的至少两个处理单元信息,所述至少两个处理单元信息包括中央处理单元、图形处理单元和图像处理单元中的至少两个;
第一生成单元,用于根据所述运算流程生成所述第一神经网络模型的计算图,所述计算图为有向无环图,所述有向无环图包括多个节点,所述多个节点与所述多个算子一一对应;
融合单元,用于根据所述多个算子对应的至少两个处理单元信息确定所述有向无环图中的N个可融合节点和M个非融合节点,所述可融合节点对应的算子为图像处理单元执行的算子,所述N和所述M均为大于1的整数;对所述N个可融合节点进行融合段划分,得到融合段划分后的有向无环图,所述融合段划分后的有向无环图包括P个融合段,所述P为大于或等于1且小于或等于所述N的整数;获取所述M个非融合节点在所述有向无环图中的Q条路径和M个节点层,所述Q大于所述M,每个非融合节点对应至少一条路径和一个节点层;根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化,得到融合后的有向无环图;
第二生成单元,用于根据所述融合后的有向无环图生成第二神经网络模型。
6.根据权利要求5所述的装置,其特征在于,在根据所述运算流程生成所述第一神经网络模型的计算图方面,所述第一生成单元具体用于:
从所述多个算子中选取目标算子,所述目标算子为所述有向无环图的起始节点;
获取所述目标算子的下层算子和所述下层算子的连接关系;
根据所述下层算子的连接关系将所述下层算子对应的下层节点连接,将所述下层节点与所述起始节点连接,得到所述有向无环图。
7.根据权利要求6所述的装置,其特征在于,在对所述N个可融合节点进行融合段划分方面,所述融合单元具体用于:
获取所述N个可融合节点之间的节点连接关系;
若可融合节点m与可融合节点n的节点连接关系为同一个节点层的相邻节点或不同节点层的父子节点,则将所述可融合节点m和所述可融合节点n划分至同一个融合段,所述可融合节点m和所述可融合节点n均为所述N个可融合节点中的任意一个。
8.根据权利要求7所述的装置,其特征在于,在根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化方面,所述融合单元具体用于:
获取所述M个非融合节点之间的节点位置关系;
若非融合节点p对应的算子与非融合节点q对应的算子相同,则确定所述非融合节点p与所述非融合节点q的节点位置关系,所述非融合节点p和所述非融合节点q均为所述M个非融合节点中的任意一个;
若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则将指向所述非融合节点p的边指向所述非融合节点q,增加所述非融合节点q的一条边指向所述非融合节点p的边指向的节点,删除所述非融合节点p;
或者,若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则将指向所述非融合节点q的边指向所述非融合节点p,增加所述非融合节点p的一条边指向所述非融合节点q的边指向的节点,删除所述非融合节点q。
9.一种神经网络芯片,其特征在于,所述神经网络芯片包含于所述权利要求5-8任一项所述的神经网络模型的架构融合装置。
10.一种板卡,其特征在于,所述板卡包括存储器件、接口装置和控制器件以及所述权利要求9所述的神经网络芯片,其中:
所述神经网络芯片与所述存储器件、所述接口装置以及所述控制器件分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述神经网络芯片与外部设备之间的数据传输;
所述控制器件,用于对所述神经网络芯片的状态进行监控。
11.一种电子设备,其特征在于,所述电子设备包括所述权利要求9所述的神经网络芯片或所述权利要求10所述的板卡。
12.一种电子设备,其特征在于,包括中央处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述中央处理器执行,所述程序包括用于执行如权利要求1-4任一项所述的方法中的步骤的指令。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被中央处理器执行,以实现如权利要求1-4任一项所述的方法。

说明书全文

神经网络模型的架构融合方法及相关装置

技术领域

[0001] 本申请涉及神经网络技术领域,具体涉及一种神经网络模型的架构融合方法及相关装置。

背景技术

[0002] 随着人工智能技术的发展,产生了许多可扩展的深度学习系统,深度学习系统可以用于提供各种能够在CPU(Central Processing Unit,中央处理单元)或GPU(Graphics Processing Unit,图形处理器)等处理器上运行的神经网络模型。目前深度学习的框架种类繁多,并且框架版本迭代更新速度较快,融合技术需要根据各种框架的架构特点来进行设计。
[0003] 一般地,处理器在运行神经网络模型时,如运行Caffe网络模型时,每次均需要对该神经网络模型中的各个计算节点分别进行编译、解析,之后,按照该神经网络模型的结构形式按照一定的形式执行各个计算节点。当各个计算节点需要在不同的处理器上执行时,通常需要在不同的处理器之间进行频繁的切换,各不同处理器之间的通讯次数较多且需要多次数据拷贝,降低了神经网络模型的运算速度。发明内容
[0004] 本申请实施例提供一种神经网络模型的架构融合方法及相关装置,用于提升神经网络模型的运算速度。
[0005] 第一方面,本申请实施例提供了一种神经网络模型的架构融合方法,所述方法包括:
[0006] 提取第一神经网络模型的运算流程;
[0007] 根据所述运算流程生成所述第一神经网络模型的计算图,所述计算图为有向无环图,所述有向无环图包括多个节点;
[0008] 对所述有向无环图中的至少两个节点进行融合,得到融合后的有向无环图;
[0009] 根据所述融合后的有向无环图生成第二神经网络模型。
[0010] 第二方面,本申请实施例提供了一种神经网络模型的架构融合装置,所述装置包括:
[0011] 提取单元,用于提取第一神经网络模型的运算流程;
[0012] 第一生成单元,用于根据所述运算流程生成所述第一神经网络模型的计算图,所述计算图为有向无环图,所述有向无环图包括多个节点;
[0013] 融合单元,用于对所述有向无环图中的至少两个节点进行融合,得到融合后的有向无环图;
[0014] 第二生成单元,用于根据所述融合后的有向无环图生成第二神经网络模型。
[0015] 第三方面,本申请实施例提供了一种神经网络芯片,所述神经网络芯片包含于本申请实施例第二方面所述的装置。
[0016] 第四方面,本申请实施例提供了一种板卡,所述板卡包括本申请实施例第三方面所述的神经网络芯片。
[0017] 第五方面,本申请实施例提供了一种电子设备,所述电子设备包括本申请实施例第三方面所述的神经网络芯片或者本申请实施例第四方面所述的板卡。
[0018] 第六方面,本申请实施例提供了一种电子设备,包括中央处理器存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述中央处理器执行,所述程序包括用于执行本申请实施例第一方面所述的方法中的步骤的指令。
[0019] 第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被中央处理器执行,以实现如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。
[0020] 第八方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
[0021] 可以看出,在本申请实施例中,神经网络模型的架构融合装置提取第一神经网络模型的运算流程,根据运算流程生成第一神经网络模型的计算图,计算图为有向无环图,有向无环图包括多个节点,对有向无环图中的至少两个节点进行融合,得到融合后的有向无环图,根据融合后的有向无环图生成第二神经网络模型。这样可提升神经网络模型的运算速度。
[0022] 本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明
[0023] 为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
[0024] 图1A是本申请实施例提供的一种神经网路模型的架构融合方法的流程示意图;
[0025] 图1B是本申请实施例提供的第一个示意图;
[0026] 图1C是本申请实施例提供的第二个示意图;
[0027] 图1D是本申请实施例提供的第三个示意图;
[0028] 图1E是本申请实施例提供的第四个示意图;
[0029] 图1F是本申请实施例提供的第五个示意图;
[0030] 图2是本申请实施例提供的另一种神经网路模型的架构融合方法的流程示意图;
[0031] 图3是本申请实施例提供的另一种神经网络模型的架构融合方法的流程示意图;
[0032] 图4是本申请实施例提供的一种神经网络模型的架构融合装置的功能单元组成框图
[0033] 图5是本申请实施例提供的一种板卡的结构示意图。
[0034] 具体实现方式
[0035] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0036] 以下分别进行详细说明。
[0037] 本申请的说明书权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0038] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0039] 下面对本申请实施例进行详细介绍。
[0040] 请参阅图1A,图1A是本申请实施例提供的一种神经网络模型的架构融合方法的流程示意图,该神经网络模型的架构融合方法包括:
[0041] 步骤101:神经网络模型的架构融合装置提取第一神经网络模型的运算流程。
[0042] 其中,第一神经网络模型包括多层结构,运算流程包括多层结构的多个算子和多个算子之间的连接关系,每层结构对应至少一个算子。
[0043] 其中,运算流程还包括多个算子对应的至少两个处理单元信息,处理单元信息包括中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)、图像处理单元(Image Processing Unit,IPU)。
[0044] 其中,以mxnet1.3.0为例,神经网络模型的架构融合装置通过调用simple_bind提取mxnet1.3.0的运算流程。
[0045] 步骤102:神经网络模型的架构融合装置根据所述运算流程生成所述第一神经网络模型的计算图,所述计算图为有向无环图,所述有向无环图包括多个节点。
[0046] 在一个可能的示例中,第一神经网络模型包括多层结构,所述运算流程包括所述多层结构的多个算子和所述多个算子之间的连接关系,每层结构对应至少一个算子,神经网络模型的架构融合装置根据所述运算流程生成所述第一神经网络模型的计算图,包括:
[0047] 神经网络模型的架构融合装置从所述多个算子中选取目标算子,所述目标算子为所述有向无环图的起始节点;
[0048] 神经网络模型的架构融合装置获取所述目标算子的下层算子和所述下层算子的连接关系;
[0049] 神经网络模型的架构融合装置根据所述下层算子的连接关系将所述下层算子对应的下层节点连接,将所述下层节点与所述起始节点连接,得到所述有向无环图。
[0050] 其中,算子是一个函数空间到函数空间上的映射O:X→X。
[0051] 举例来说,如图1B所示,(a)中算子1为目标算子,算子2至算子9均为算子1的下层算子,下层算子的连接关系为:算子2和算子3均与算子1连接,连接方向为算子1分别指向算子2和算子3;算子2分别与算子4和算子5连接,连接方向为算子2分别指向算子4和算子5;算子3与算子6连接,连接方向为算子3指向算子6;算子4与算子7连接,连接方向为算子4指向算子7;算子5与算子8连接,连接方向为算子5指向算子8;算子7和算子8分别与算子9连接,连接方向为算子7和算子8均指向算子9;算子1至算子9分别与节点1至节点9一一对应,根据下层算子的连接关系将节点2至节点9连接,将节点1分别与节点2和节点3连接,得到有向无环图(b)。
[0052] 步骤103:神经网络模型的架构融合装置对所述有向无环图中的至少两个节点进行融合,得到融合后的有向无环图。
[0053] 在一个可能的示例中,运算流程还包括所述多个算子对应的至少两个处理单元信息,神经网络模型的架构融合装置对所述有向无环图中的至少两个节点进行融合,得到融合后的有向无环图,包括:
[0054] 神经网络模型的架构融合装置根据所述多个算子对应的至少两个处理单元信息确定所述有向无环图中的N个可融合节点和M个非融合节点,所述可融合节点对应的算子为图像处理单元IPU执行的算子,所述N和所述M均为大于1的整数;
[0055] 神经网络模型的架构融合装置对所述N个可融合节点进行融合段划分,得到融合段划分后的有向无环图,所述融合段划分后的有向无环图包括P个融合段,所述P为大于或等于1且小于或等于所述N的整数;
[0056] 神经网络模型的架构融合装置获取所述M个非融合节点在所述有向无环图中的Q条路径和M个节点层,所述Q大于所述M,每个非融合节点对应至少一条路径和一个节点层;
[0057] 神经网络模型的架构融合装置根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化,得到所述融合后的有向无环图。
[0058] 其中,非融合节点对应的算子为不在IPU上执行的算子。
[0059] 其中,每个融合段为有向无环图的一个子图,同一融合段中的至少一个可融合节点对应的至少一个算子均为在IPU上执行的算子,该至少一个算子在IPU上执行无需切换处理单元,无需多次数据拷贝。
[0060] 具体地,神经网络模型的架构融合装置获取M个非融合节点在有向无环图中的Q条路径和M个节点层的实施方式为:神经网络模型的架构融合装置从有向无环图的第1个节点层开始逐层遍历,获取每个非融合节点对应的至少一条路径和一个节点层,得到M个非融合节点在有向无环图中的Q条路径和M个节点层。
[0061] 举例来说,如图1C所示,有向无环图包括5个节点层和3条路径,5个节点层分别为第1节点层至第5节点层,3条路径分别为第1条路径至第3路径,第1条路径为:节点1→节点2→节点4→节点7→节点9,第2条路径为节点1→节点2→节点5→节点8→节点9,第3条路径为节点1→节点3→节点6,神经网络模型的架构融合装置从第1个节点层逐层遍历,得到非融合1的路径为第1条路径、第2条路径和第3条路径,非融合1的节点层为第1节点层;非融合节点4的路径为第1条路径,非融合节点4的节点层为第3节点层;非融合节点6的路径为第3条路径,非融合节点6的节点层为第3节点层;非融合节点8的路径为第2条路径,非融合节点8的节点层为第4节点层;非融合节点9的路径为第1条路径、第2条路径和第3条路径,非融合节点9的节点层为第5节点层。
[0062] 其中,融合后的有向无环图中的非融合节点的数量小于融合段划分后的有向无环图中的非融合节点的数量。
[0063] 在一个可能的示例中,神经网络模型的架构融合装置对所述N个可融合节点进行融合段划分,包括:
[0064] 神经网络模型的架构融合装置获取所述N个可融合节点之间的节点连接关系;
[0065] 若可融合节点m与可融合节点n的节点连接关系为同一个节点层的相邻节点或不同节点层的父子节点,则神经网络模型的架构融合装置将所述可融合节点m和所述可融合节点n划分至同一个融合段,所述可融合节点m和所述可融合节点n均为所述N个可融合节点中的任意一个。
[0066] 举例来说,如图1D,有向无环图中有4个可融合节点,4个可融合节点分别为可融合节点2、可融合节点3、可融合节点5和可融合节点7,可融合节点2与可融合节点3的连接关系为同一节点层的相邻节点,可融合节点2与可融合节点5的节点连接关系为不同节点层的父子节点,可融合节点7为一个独立的可融合节点,神经网络模型的架构融合装置将可融合节点2、可融合节点3和可融合节点5划分为融合段1,将可融合节点7划分为融合段2。
[0067] 在一个可能的示例中,神经网络模型的架构融合装置根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化,包括:
[0068] 神经网络模型的架构融合装置获取所述M个非融合节点之间的节点位置关系;
[0069] 若非融合节点p对应的算子与非融合节点q对应的算子相同,则神经网络模型的架构融合装置确定所述非融合节点p与所述非融合节点q的节点位置关系,所述非融合节点p和所述非融合节点q均为所述M个非融合节点中的任意一个;
[0070] 若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则神经网络模型的架构融合装置将指向所述非融合节点p的边指向所述非融合节点q,增加所述非融合节点q的一条边指向所述非融合节点p的边指向的节点,删除所述非融合节点p。
[0071] 其中,非融合节点q对应的算子在不同时刻接收到不同节点发送的数据并执行计算,不同节点的数量与不同时刻的数量是相同的。
[0072] 举例来说,如图1E所示,融合段划分后的有向无环图中有5个非融合节点,5个非融合节点分别为非融合节点1、非融合节点4、非融合节点6、非融合节点8和非融合节点9,神经网络模型的架构融合装置确定非融合节点4对应的算子与非融合节点8对应的算子相同,且非融合节点4与非融合节点8的节点位置关系为位于不同节点层且处于不同的路径,则将指向非融合节点8的边指向非融合节点4,增加非融合节点4的一条边指向非融合节点8的边指向的非融合节点9,删除非融合节点8。
[0073] 在一个可能的示例中,所述方法还包括:
[0074] 若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则神经网络模型的架构融合装置将指向所述非融合节点q的边指向所述非融合节点p,增加所述非融合节点p的一条边指向所述非融合节点q的边指向的节点,删除所述非融合节点q。
[0075] 其中,非融合节点P对应的算子在不同时刻接收到不同节点发送的数据并执行计算,不同节点的数量与不同时刻的数量是相同的。
[0076] 举例来说,如图1F所示,融合段划分后的有向无环图中有5个非融合节点,5个非融合节点分别为非融合节点1、非融合节点4、非融合节点6、非融合节点8和非融合节点9,神经网络模型的架构融合装置确定非融合节点4对应的算子与非融合节点8对应的算子相同,且非融合节点4与非融合节点8的节点位置关系为位于不同节点层且处于不同的路径,则将指向非融合节点4的边指向非融合节点8,增加非融合节点8的一条边指向非融合节点4的边指向的融合节点7,删除非融合节点4。
[0077] 步骤104:神经网络模型的架构融合装置根据所述融合后的有向无环图生成第二神经网络模型。
[0078] 其中,以mxnet1.3.0为例,神经网络模型的架构融合装置调用simple_bind,simple_bind根据融合后的有向无环图生成第二神经网络模型。
[0079] 可以看出,在本申请实施例中,神经网络模型的架构融合装置提取第一神经网络模型的运算流程,根据运算流程生成第一神经网络模型的计算图,计算图为有向无环图,有向无环图包括多个节点,对有向无环图中的至少两个节点进行融合,得到融合后的有向无环图,根据融合后的有向无环图生成第二神经网络模型。这样可提升神经网络模型的运算速度,同时,可对不同神经网络模型进行优化。
[0080] 请参阅图2,图2是本申请实施例提供的另一种神经网络模型的架构融合方法的流程示意图,该神经网络模型的架构融合方法包括:
[0081] 步骤201:神经网络模型的架构融合装置提取第一神经网络模型的运算流程,所述第一神经网络模型包括多层结构,所述运算流程包括所述多层结构的多个算子和所述多个算子之间的连接关系,每层结构对应至少一个算子。
[0082] 步骤202:神经网络模型的架构融合装置从所述多个算子中选取目标算子,所述目标算子为所述有向无环图的起始节点。
[0083] 步骤203:神经网络模型的架构融合装置获取所述目标算子的下层算子和所述下层算子的连接关系。
[0084] 步骤204:神经网络模型的架构融合装置根据所述下层算子的连接关系将所述下层算子对应的下层节点连接,将所述下层节点与所述起始节点连接,得到所述有向无环图。
[0085] 步骤205:神经网络模型的架构融合装置根据所述多个算子对应的至少两个处理单元信息确定所述有向无环图中的N个可融合节点和M个非融合节点,所述可融合节点对应的算子为图像处理单元IPU执行的算子,所述N和所述M均为大于1的整数。
[0086] 其中,所述运算流程还包括所述多个算子对应的至少两个处理单元信息。
[0087] 步骤206:神经网络模型的架构融合装置对所述N个可融合节点进行融合段划分,得到融合段划分后的有向无环图,所述融合段划分后的有向无环图包括P个融合段,所述P为大于或等于1且小于或等于所述N的整数。
[0088] 步骤207:神经网络模型的架构融合装置获取所述M个非融合节点在所述有向无环图中的Q条路径和M个节点层,所述Q大于所述M,每个非融合节点对应至少一条路径和一个节点层。
[0089] 步骤208:神经网络模型的架构融合装置根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化,得到所述融合后的有向无环图。
[0090] 步骤209:神经网络模型的架构融合装置根据所述融合后的有向无环图生成第二神经网络模型。
[0091] 需要说明的是,图2所示的方法的各个步骤的具体实现过程可参见上述方法所述的具体实现过程,在此不再叙述。
[0092] 请参阅图3,图3是本申请实施例提供的另一种神经网络模型的架构融合方法的流程示意图,该神经网络模型的架构融合方法包括:
[0093] 步骤301:神经网络模型的架构融合装置提取第一神经网络模型的运算流程,所述第一神经网络模型包括多层结构,所述运算流程包括所述多层结构的多个算子和所述多个算子之间的连接关系,每层结构对应至少一个算子。
[0094] 步骤302:神经网络模型的架构融合装置根据所述运算流程生成所述第一神经网络模型的计算图,所述计算图为有向无环图,所述有向无环图包括多个节点。
[0095] 步骤303:神经网络模型的架构融合装置根据所述多个算子对应的至少两个处理单元信息确定所述有向无环图中的N个可融合节点和M个非融合节点,所述可融合节点对应的算子为图像处理单元IPU执行的算子,所述N和所述M均为大于1的整数。
[0096] 其中,所述运算流程还包括所述多个算子对应的至少两个处理单元信息。
[0097] 步骤304:神经网络模型的架构融合装置获取所述N个可融合节点之间的节点连接关系。
[0098] 步骤305:若可融合节点m与可融合节点n的节点连接关系为同一个节点层的相邻节点或不同节点层的父子节点,则神经网络模型的架构融合装置将所述可融合节点m和所述可融合节点n划分至同一个融合段,得到融合段划分后的有向无环图,所述融合段划分后的有向无环图包括P个融合段,所述P为大于或等于1且小于或等于所述N的整数,所述可融合节点m和所述可融合节点n均为所述N个可融合节点中的任意一个。
[0099] 步骤306:神经网络模型的架构融合装置获取所述M个非融合节点在所述有向无环图中的Q条路径和M个节点层,所述Q大于所述M,每个非融合节点对应至少一条路径和一个节点层。
[0100] 步骤307:神经网络模型的架构融合装置获取所述M个非融合节点之间的节点位置关系。
[0101] 步骤308:若非融合节点p对应的算子与非融合节点q对应的算子相同,则神经网络模型的架构融合装置确定所述非融合节点p与所述非融合节点q的节点位置关系,所述非融合节点p和所述非融合节点q均为所述M个非融合节点中的任意一个。
[0102] 步骤309:若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则神经网络模型的架构融合装置将指向所述非融合节点p的边指向所述非融合节点q,增加所述非融合节点q的一条边指向所述非融合节点p的边指向的节点,删除所述非融合节点p。
[0103] 需要说明的是,图3所示的方法的各个步骤的具体实现过程可参见上述方法所述的具体实现过程,在此不再叙述。
[0104] 上述主要从方法侧执行过程的度对本申请实施例的方案进行了介绍。可以理解的是,神经网络模型的架构融合装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0105] 本申请实施例可以根据上述方法示例对神经网络模型的架构融合装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0106] 请参阅图4,图4是本申请实施例提供的一种神经网络模型的架构融合装置400的结构示意图,该神经网络模型的架构融合装置400包括:
[0107] 提取单元401,用于提取第一神经网络模型的运算流程;
[0108] 第一生成单元402,用于根据所述运算流程生成所述第一神经网络模型的计算图,所述计算图为有向无环图,所述有向无环图包括多个节点;
[0109] 融合单元403,用于对所述有向无环图中的至少两个节点进行融合,得到融合后的有向无环图;
[0110] 第二生成单元404,用于根据所述融合后的有向无环图生成第二神经网络模型。
[0111] 可以看出,在本申请实施例中,提取第一神经网络模型的运算流程,根据运算流程生成第一神经网络模型的计算图,计算图为有向无环图,有向无环图包括多个节点,对有向无环图中的至少两个节点进行融合,得到融合后的有向无环图,根据融合后的有向无环图生成第二神经网络模型。这样可提升神经网络模型的运算速度。
[0112] 在一个可能的示例中,在根据所述运算流程生成所述第一神经网络模型的计算图方面,上述第一生成单元402具体用于:
[0113] 从所述多个算子中选取目标算子,所述目标算子为所述有向无环图的起始节点;
[0114] 获取所述目标算子的下层算子和所述下层算子的连接关系;
[0115] 根据所述下层算子的连接关系将所述下层算子对应的下层节点连接,将所述下层节点与所述起始节点连接,得到所述有向无环图。
[0116] 在一个可能的示例中,在对所述有向无环图中的至少两个节点进行融合,得到融合后的有向无环图方面,上述融合单元403具体用于:
[0117] 根据所述多个算子对应的至少两个处理单元信息确定所述有向无环图中的N个可融合节点和M个非融合节点,所述可融合节点对应的算子为图像处理单元IPU执行的算子,所述N和所述M均为大于1的整数;
[0118] 对所述N个可融合节点进行融合段划分,得到融合段划分后的有向无环图,所述融合段划分后的有向无环图包括P个融合段,所述P为大于或等于1且小于或等于所述N的整数;
[0119] 获取所述M个非融合节点在所述有向无环图中的Q条路径和M个节点层,所述Q大于所述M,每个非融合节点对应至少一条路径和一个节点层;
[0120] 根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化,得到所述融合后的有向无环图。
[0121] 在一个可能的示例中,在对所述N个可融合节点进行融合段划分方面,上述融合单元403还包括:
[0122] 获取所述N个可融合节点之间的节点连接关系;
[0123] 若可融合节点m与可融合节点n的节点连接关系为同一个节点层的相邻节点或不同节点层的父子节点,则将所述可融合节点m和所述可融合节点n划分至同一个融合段,所述可融合节点m和所述可融合节点n均为所述N个可融合节点中的任意一个。
[0124] 在一个可能的示例中,在根据所述Q条路径和所述M个节点层对所述融合段划分后的有向无环图进行简化方面,上述融合单元403具体用于:
[0125] 获取所述M个非融合节点之间的节点位置关系;
[0126] 若非融合节点p对应的算子与非融合节点q对应的算子相同,则确定所述非融合节点p与所述非融合节点q的节点位置关系,所述非融合节点p和所述非融合节点q均为所述M个非融合节点中的任意一个;
[0127] 若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则将指向所述非融合节点p的边指向所述非融合节点q,增加所述非融合节点q的一条边指向所述非融合节点p的边指向的节点,删除所述非融合节点p。
[0128] 在一个可能的示例中,上述神经网络模型的架构融合装置400还包括:
[0129] 简化单元404,用于若所述非融合节点p与所述非融合节点q的所述节点位置关系为位于不同节点层且处于不同的路径,则将指向所述非融合节点q的边指向所述非融合节点p,增加所述非融合节点p的一条边指向所述非融合节点q的边指向的节点,删除所述非融合节点q。
[0130] 本申请实施例提供一种神经网络芯片,该神经网络芯片包含于上述的神经网络模型的架构融合装置。
[0131] 本申请实施例提供提供一种板卡,参阅图5,该板卡除了包括上述神经网络芯片589以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件590、接口装置
591和控制器件592;
[0132] 所述存储器件590与所述神经网络芯片589通过总线连接,用于存储数据。
[0133] 所述存储器件可以包括多组存储单元593。每一组所述存储单元与所述神经网络芯片589通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
[0134] DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述神经网络芯片589内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
[0135] 在一个可能的示例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述神经网络芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
[0136] 所述接口装置与所述神经网络芯片电连接。所述接口装置用于实现所述神经网络芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述神经网络芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个可能的示例中,所述接口装置还可以是其他的接口,本申请实施例并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述神经网络芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
[0137] 所述控制器件与所述神经网络芯片电连接。所述控制器件用于对所述神经网络芯片的状态进行监控。具体的,所述神经网络芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述神经网络芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述神经网络芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述神经网络芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
[0138] 本申请实施例提供了一种电子设备,该电子设备包括上述神经网络芯片或上述板卡。
[0139] 本申请实施例提供一种电子设备,该电子设备包括中央处理器、存储器、通信接口,以及一个或多个程序,上述一个或多个程序被存储上述该存储器中,并且被配置由上述中央处理器执行,上述程序包括用于执行上述方法实施例中记载的任一方法中的步骤的指令。
[0140] 电子设备包括数据处理装置、机器人、电脑、打印机扫描仪平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、端服务器、相机、摄像机、投影仪、手表机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
[0141] 所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调微波炉、箱、电饭煲、加湿器洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
[0142] 本申请实施例还提供一种计算机存储介质,该计算机存储介质用于存储计算机程序,上述计算机程序被中央处理器执行,以实现如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
[0143] 本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
[0144] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0145] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0146] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0147] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0148] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0149] 上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0150] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
[0151] 以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实现方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本申请的限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈