一种编译器、AI网络编译方法、处理方法、执行系统技术方案

技术编号:37985237 阅读:13 留言:0更新日期:2023-06-30 10:00
本发明专利技术提供一种编译器、AI网络编译方法、处理方法、执行系统,其中,所述编译器在编译要加载到AI处理器上的AI网络时,被配置为执行如下步骤对所述AI网络进行编译:获取AI网络涉及的多个任务节点的节点信息;预估任意依赖连续的多个任务节点被合并为一个子网后对应的性能增益,并在性能增益为正收益时,将这些任务节点合并为一个子网,以及基于子网划分结果为子网生成对应的指令,其中,合并后的任意一个子网运行一次所需的内存小于或等于AI处理器片上内存。通过在编译期以AI处理器片上内存容量为基础,根据片上内存的容量进行合理的子网划分,使得每个子网可以基于片上内存执行,节约子网内任务节点间的数据搬运时间,处理方式高效且实用。高效且实用。高效且实用。

【技术实现步骤摘要】
一种编译器、AI网络编译方法、处理方法、执行系统


[0001]本专利技术涉及计算机领域,具体来说,涉及一种编译器、AI网络编译方法、处理方法、执行系统。

技术介绍

[0002]对于用于运行AI网络的人工智能(AI)处理器,若AI处理器具有片上内存,并且AI网络能够基于AI处理器的片上内存运行,那么运行速度会很快。片上内存是处理器中的一块可以被快速访问、读写速度快的内存,相较于片外内存,具有低延迟、高带宽、低容量的特点。
[0003]由于片上内存的容量有限,容量非常小,因此如果期望利用片上内存的特点使得AI处理器能够高效率运行AI网络,AI网络在执行的时候所占用的内存就需要限定在片上内存的容量范围内,这就需要对AI网络进行划分,将AI网络划分为不同的子网,使得划分出来的整个子网运行所占用的内存限定在片上内存的范围内,从而提高AI网络的任务执行效率和速度。
[0004]但是,现有技术下,没有一个成熟的对AI网络进行合理子网划分的方案,虽然有类似于线性扫描的子网划分方案,但是线性扫描是由人工先验的方式选取较优的切分的任务节点集合,再使用贪心切分的方式逐渐切分AI网络,这种方式需要依赖大量实验迭代,需要多次实验性的运行网络来得到切分的集合,消耗资源多,尤其对于比较复杂的AI网络来说,更加不利于快速实施、运行。

技术实现思路

[0005]因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种编译器、AI网络编译方法、处理方法以及执行系统,可以在编译期就进行子网划分,并基于合理划分出的子网生成子网对应的指令,以供AI处理器执行,而无需像现有技术那样在编译完成以后需要过多依赖实验性的运行网络来得到大量实验迭代的结果,可以降低由于需要多次实验性运行网络所带来的资源开销,通过本专利技术的方案可以一种更高效、消耗资源更少的方式来进行子网划分,将子网运行所需数据占用的内存限定在片上内存的范围内,从而有利于AI处理器基于有限的片上内存高效执行AI网络的任务。
[0006]根据本专利技术的第一方面,提供一种编译器,所述编译器在编译待加载到AI处理器上的AI网络时,被配置为执行如下步骤对所述AI网络进行编译:获取AI网络涉及的多个任务节点的节点信息,所述节点信息用于反映任务节点之间的依赖关系;为所述多个任务节点中存在依赖关系的相邻任务节点预估节点合并后对应的性能增益,并在性能增益为正收益时,将对应的相邻任务节点合并为一个子网,得到经过合并后含有子网的AI网络;其中,合并后得到的任意一个子网运行一次所需的内存小于或等于所述AI处理器的片上内存;
为含有子网的AI网络生成子网的指令。
[0007]通过上述编译器可以在编译期根据片上内存的容量进行合理的子网划分,节约子网内任务节点间的数据搬运时间,且无需像现有技术那样过多依赖实验性地运行网络来得到大量实验迭代结果从而导致消耗较多的资源。
[0008]优选的,所述性能增益是指多个任务节点合并前的运行时钟之和,与,多个任务节点合并为一个子网后的子网运行时钟这二者的差值。
[0009]优选地,所述性能增益是指相邻任务节点在合并前的运行时钟之和、所述相邻任务节点合并为一个子网后的子网运行时钟这二者的差值。
[0010]其中,一个任务节点的运行时钟为从系统内存中搬运该任务节点所需数据到片上内存所需的时钟、该任务节点基于片上内存执行所需的时钟、将该任务节点的执行结果从片上内存搬运到系统内存所需的时钟三者之和;子网运行时钟为从系统内存中搬运该子网所需数据到片上内存所需的时钟、该子网基于片上内存执行所需的时钟、将该子网的执行结果从片上内存搬运到系统内存所需的时钟三者之和。
[0011]相较于AI处理器的片上内存,系统内存可以视为相对于片上内存的片外内存,例如,系统内存可以是双倍速率同步动态随机存储器(Double Data Rate SDRAM,简称DDR),SDRAM 是Synchronous Dynamic Random Access Memory的缩写。
[0012]通过准确预估不同情况下的运行时钟,比较合并前、后的运行时钟差异,可以更准确的计算合并子网可能带来的性能增益,从而进行更合理的子网划分。
[0013]优选的,AI处理器是GPU,该GPU具有片上内存。
[0014]在本专利技术的一些实施例中,所述编译器还被配置为:以AI网络中的一个任务节点为一个初始子网,获得AI网络的初始子网划分结果;基于初始子网划分结果,对AI网络进行多轮子网合并直至无合并性能增益以获得最终的子网划分结果,其中,每轮子网合并时,预估上一轮合并后得到的子网划分结果中任意两个相邻子网合并后的性能增益,并将其中性能增益为正收益且增益最大的两个相邻子网合并为一个新的子网;为所述最终的子网划分结果生成各子网对应的指令。
[0015]在本专利技术的一些实施例中,所述编译器还被配置为:以AI网络的一个任务节点为一个初始子网,获得AI网络的初始子网划分结果;基于初始子网划分结果,对AI网络进行多轮子网合并直至无合并性能增益以获得最终的子网划分结果,其中,每轮合并时,预估上一轮合并后得到的子网划分结果中任意两个相邻子网合并后的性能增益,将为正收益的所有性能增益进行降序排列,并基于该降序排列依次进行各性能增益对应的子网合并;为所述最终的子网划分结果生成各子网对应的指令。
[0016]优选的,所述编译器还被配置为:在基于所述降序排列进行子网合并时,如果性能增益对应的子网合并会改变周围子网结构,则跳过该性能增益对应的子网合并。
[0017]优选的,所述编译器还被配置为:在进行每一轮子网合并的过程中,根据相邻子网在合并前的运行时钟之和,以及,所述相邻子网合并为一个新的子网后的运行时钟,确定相邻子网合并后的性能增益。
[0018]优选的,子网的运行时钟为:子网任务总量*子网对应的单位任务量的运行时钟。其中,优选的,所述子网对应的单位任务量的运行时钟为该子网对应的:AI处理器片上内存满载任务量的运行时钟/片上内存满载任务量。
[0019]例如,若AI处理器是GPU,片上内存满载情况下,子网对应的单位任务量的运行时钟为该子网对应的:GPU片上内存满载任务量的运行时间/片上内存满载任务量,其中,GPU片上内存满载任务量的运行时间包括从系统内存获取满载任务量数据到片上内存的时钟、满载任务量在片上内存执行的时钟、将满载任务量情况下对应的执行结果从片上内存搬运到系统内存的时钟之和。
[0020]根据本专利技术的第二方面,提供一种AI网络任务编译方法,所述方法包括:获取AI网络;采用如本专利技术第一方面所述的编译器对AI网络进行编译,获得AI网络的子网划分结果,以及基于所述AI网络的子网划分结果,为划分确定的各子网生成子网对应的指令。
[0021]根据本专利技术的第三方面,提供一种AI网络处理方法,所述方法包括:采用如本专利技术第二方面所述的方法对AI网络进行编译,获得AI网络对应的编译结果,所述编译结果包括基于AI网络的子网划分结果为子网生成的指令;按照子网划分结果将AI本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编译器,其特征在于,所述编译器在编译待加载到AI处理器上的AI网络时,被配置为执行如下步骤对所述AI网络进行编译:获取AI网络涉及的多个任务节点的节点信息,所述节点信息用于反映任务节点之间的依赖关系;为所述多个任务节点中存在依赖关系的相邻任务节点预估节点合并后对应的性能增益,并在性能增益为正收益时,将对应的相邻任务节点合并为一个子网,得到经过合并后含有子网的AI网络;其中,合并后得到的任意一个子网运行一次所需的内存小于或等于所述AI处理器的片上内存;为AI网络生成子网对应的指令。2.根据权利要求1所述的编译器,其特征在于,所述性能增益是指相邻任务节点在合并前的运行时钟之和、所述相邻任务节点合并为一个子网后的子网运行时钟的差值;其中,一个任务节点的运行时钟为从系统内存中搬运该任务节点所需数据到片上内存所需的时钟、该任务节点基于片上内存执行所需的时钟、将该任务节点的执行结果从片上内存搬运到系统内存所需的时钟三者之和;子网运行时钟为从系统内存中搬运该子网所需数据到片上内存所需的时钟、该子网基于片上内存执行所需的时钟、将该子网的执行结果从片上内存搬运到系统内存所需的时钟之和。3.根据权利要求2所述的编译器,其特征在于,所述编译器还被配置为:以AI网络中的一个任务节点为一个初始子网,获得AI网络的初始子网划分结果;基于初始子网划分结果,对AI网络进行多轮子网合并直至无合并性能增益以获得最终的子网划分结果,其中,每轮子网合并时,预估上一轮合并后得到的子网划分结果中任意两个相邻子网合并后的性能增益,并将其中性能增益为正收益且增益最大的两个相邻子网合并为一个新的子网;为所述最终的子网划分结果生成各子网对应的指令。4.根据权利要求2所述的编译器,其特征在于,所述编译器还被配置为:以AI网络的一个任务节点为一个初始子网,获得AI网络的初始子网划分结果;基于初始子网划分结果,对AI网络进行多轮子网合并直至无合并性能增益以获得最终的子网划分结果,其中,每轮合并时,预估上一轮合并后得到...

【专利技术属性】
技术研发人员:王鸥彭凡刘军杨媛静
申请(专利权)人:成都登临科技有限公司
类型:发明
国别省市:

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

1