block的合并方法、block的划分方法、组合处理装置及编译系统制造方法及图纸

技术编号:23471163 阅读:25 留言:0更新日期:2020-03-06 13:02
本申请涉及一种block的合并方法、block的划分方法、组合处理装置及编译系统,通过对block进行合并或划分,实现对block结构的优化,进而提高block在计算平台上的执行效率。

Block merging method, block partition method, combined processing device and compiling system

【技术实现步骤摘要】
block的合并方法、block的划分方法、组合处理装置及编译系统
本申请涉及数据处理
,特别是涉及一种block的合并方法、block的划分方法、组合处理装置及编译系统。
技术介绍
计算图是一种通用的计算过程表示方法,普遍应用在各类数据处理平台上,它的表示方法容易理解,且灵活性很高,可以通过组合简单的操作来实现复杂的逻辑。以神经网络的应用为例,每个计算图的节点表示神经网络所进行的相应运算,作为根据神经网络的输入来确定神经网络输出的运算,每个计算图的有向边将前一个节点连接至后一个节点,表示前节点的输出作为后节点的输入。对于传统的表示神经网络算法的计算图而言,其作为按照固定规则对于程序语义的具象,由实际的应用需求和编程人员的编程思维决定,使得其不一定与实际的硬件平台的特性相匹配。因此,若是直接将传统的计算图部署到相应的计算平台执行,可能会造成性能与资源的浪费。
技术实现思路
基于此,有必要针对上述的技术问题,提供一种提高计算图中的block在计算平台上的执行效率的block的合并方法、block的划分方法、组合处理装置及编译系统。本申请提供了一种block的合并方法,所述block用于执行向量运算,所述方法包括:获取计算图中的多个待合并block;将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block。在其中一个实施例中,所述获取计算图中的多个待合并block,包括:对计算图中的block进行扫描;若扫描到多个连续的block为computeblock,则将所述连续的computeblock确定为所述待合并block,其中,所述computeblock表示输入到输出为一一映射的block。在其中一个实施例中,将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block,包括:获取所述连续的computeblock中当前执行的computeblock;判断所述当前执行的computeblock的前面或者后面是否存在至少一个连续的computeblock;若所述当前执行的computeblock的前面存在至少一个相邻的computeblock,则将所述当前执行的computeblock向前与至少一个相邻的computeblock中的一个或多个进行合并,得到合并后的block;若所述当前执行的computeblock的后面存在至少一个相邻的computeblock,则将所述当前执行的computeblock向后与至少一个相邻的computeblock中的一个或多个进行合并,得到合并后的block。在其中一个实施例中,所述获取计算图中的多个待合并block,包括:对计算图中的block进行扫描;若扫描到所述计算图中,拓扑结构上的分支后所连接的多个block相同,则将所述拓扑结构上的分支后所连接的多个相同的block,确定为所述待合并block。在其中一个实施例中,将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block,包括:将连接多个相同的block的分支进行合并,以及将所述拓扑结构上的分支后所连接的多个相同的block进行合并,得到合并后的block。在其中一个实施例中,所述获取计算图中的多个待合并block,包括:对计算图中的block进行扫描;若扫描到所述计算图中,拓扑结构上的多个进行规约操作前的block相同,则将所述拓扑结构上的多个进行规约操作前的相同的block,确定为所述待合并block。在其中一个实施例中,将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block,包括:将连接所述多个进行规约操作前的相同的block的分支进行合并,以及将所述多个进行规约操作前的相同的block进行合并,得到合并后的block。本申请还提供了一种组合处理装置,所述组合处理装置包括中央处理器和其他处理器,所述中央处理器与所述其他处理器连接,所述其他处理器包括图形处理器和/或神经网络处理器;所述中央处理器用于执行上述实施例中任一项所述方法的步骤,并根据所述合并后的block生成目标代码,以及将所述目标代码发送至所述其他处理器;所述其他处理器用于接收所述目标代码并运行所述目标代码。本申请还提供了一种编译系统,所述编译系统包括服务器和终端,所述服务器与所述终端通信连接,其特征在于,所述服务器包括上述实施例所述的其他处理器,所述终端包括上述实施例所述的中央处理器。上述block的合并方法、组合处理装置及编译系统,通过将计算图中待合并的block进行合并以实现对block的优化,这样对于被合并的block的每个端口而言,都能减少至少一次读取操作和一次写入操作,同时节省出为中间结果分配的存储空间,由此极大地减少了block的运行时间,提高block在计算平台上的执行效率。本申请还提供了一种block的划分方法,所述block用于执行向量运算,所述方法包括:获取计算图中待划分block的block信息,其中,所述block信息包括block规模信息;将所述block规模信息与计算平台的性能参数进行匹配,并根据匹配结果对所述待划分block进行划分,得到多个划分后的block。在其中一个实施例中,所述block信息还包括多重循环嵌套信息,其中,多重循环嵌套由多个循环体嵌套构成;将所述block规模信息与计算平台的性能参数进行匹配,并根据匹配结果对所述待划分block进行划分,得到多个划分后的block,包括:获取多重循环嵌套信息中每个循环体的规模信息;将所述每个循环体的规模信息与计算平台的性能参数进行匹配,并根据匹配结果选取目标循环体;根据所述目标循环体的循环次数,将所述目标循环体划分为多段;根据划分后的段数对所述待划分block进行复制,得到多个划分后的block。在其中一个实施例中,所述方法还包括:将所述划分后的block进行拆分,得到多个调度单元;获取预设的调度方案,根据所述预设的调度方案对所述多个调度单元进行资源调度,得到调度结果。在其中一个实施例中,所述计算平台的性能参数包括存储性能参数和/或运算性能参数。在其中一个实施例中,所述多个划分后的block对应的输出结果进行累加后得到的累加结果等于所述待划分block对应的输出结果。本申请还提供了一种组合处理装置,所述组合处理装置包括中央处理器和其他处理器,所述中央处理器与所述其他处理器连接,所述其他处理器包括图形处理器和/或神经网络处理器;所述中央处理器用于执行上述实施例中任一项所述方法的步骤,并根据所述划分后的block生成目标代码,以及将所述目标代码发送至所述其他处理器;所述本文档来自技高网...

【技术保护点】
1.一种block的合并方法,其特征在于,所述block用于执行向量运算,所述方法包括:/n获取计算图中的多个待合并block;/n将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block。/n

【技术特征摘要】
1.一种block的合并方法,其特征在于,所述block用于执行向量运算,所述方法包括:
获取计算图中的多个待合并block;
将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block。


2.根据权利要求1所述的方法,其特征在于,所述获取计算图中的多个待合并block,包括:
对计算图中的block进行扫描;
若扫描到多个连续的block为computeblock,则将所述连续的computeblock确定为所述待合并block,其中,所述computeblock表示输入到输出为一一映射的block。


3.根据权利要求2所述的方法,其特征在于,将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block,包括:
获取所述连续的computeblock中当前执行的computeblock;
判断所述当前执行的computeblock的前面或者后面是否存在至少一个连续的computeblock;
若所述当前执行的computeblock的前面存在至少一个相邻的computeblock,则将所述当前执行的computeblock向前与至少一个相邻的computeblock中的一个或多个进行合并,得到合并后的block;
若所述当前执行的computeblock的后面存在至少一个相邻的computeblock,则将所述当前执行的computeblock向后与至少一个相邻的computeblock中的一个或多个进行合并,得到合并后的block。


4.根据权利要求1所述的方法,其特征在于,所述获取计算图中的多个待合并block,包括:
对计算图中的block进行扫描;
若扫描到所述计算图中,拓扑结构上的分支后所连接的多个block相同,则将所述拓扑结构上的分支后所连接的多个相同的block,确定为所述待合并block。


5.根据权利要求4所述的方法,其特征在于,将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block,包括:
将连接多个相同的block的分支进行合并,以及
将所述拓扑结构上的分支后所连接的多个相同的block进行合并,得到合并后的block。


6.根据权利要求1所述的方法,其特征在于,所述获取计算图中的多个待合并block,包括:
对计算图中的block进行扫描;
若扫描到所述计算图中,拓扑结构上的多个进行规约操作前的block相同,则将所述拓扑结构上的多个进行规约操作前的相同的block,确定为所述待合并block。


7.根据权利要求6所述的方法,其特征在于,将所述多个待合并block中的部分block或者全部block进行合并,得到合并后的block,包括:
将连接所述多个进行规约操作前的相同的block的分支进行合并,以及
将所述多个进行规约操作前的相同的block进行合并,得到合并后的block。

...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海;31

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

1