一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于张量数据计算推理的编译器优化方法、装置及设备与流程

2022-12-02 23:27:41 来源:中国专利 TAG:


1.本发明涉及深度学习技术领域,尤其涉及基于张量数据计算推理的编译器优化方法、装置及设备。


背景技术:

2.随着人工智能的不断发展,使得深度学习技术在各行各样受到了广泛应用,而深度学习的应用就离不开推理框架,例如,tensorflow、pytorch以及tnn等框架,但是不同的推理框架的功能不同,例如,tensorflow和pytorch是平台级框架,可用于训练和推理,而tnn框架只能用于推理,无论是哪种功能的框架,在其背后均适配了一些相关加速设备,为了便于对张量数据的推理,引入了编译器的概念,即通过编译器对开发者开发的模型进行一系列操作,但是编译器针对不同的模型的操作方式不同,如果不及时优化编译器,会造成编译器与指定输入的模型不契合,造成张量数据推理的效率较低。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提供一种基于张量数据计算推理的编译器优化方法、装置及设备,旨在解决现有技术无法得到与指定输入模型相契合的编译器,造成张量数据推理的效率较低的技术问题。
5.为实现上述目的,本发明提供了一种基于张量数据计算推理的编译器优化方法,所述基于张量数据计算推理的编译器优化方法包括以下步骤:
6.获取待优化编译器的设计结构信息,根据所述设计结构信息得到目标中间转换层和目标中间转换层执行操作;
7.根据所述目标中间转换层设定目标调参学习参数;
8.根据所述目标中间转换层执行操作确定待优化编译器对象;
9.通过目标自动调参策略根据所述目标调参学习参数对所述待优化编译器对象进行调参优化。
10.可选地,所述获取待优化编译器的设计结构信息,根据所述设计结构信息得到目标中间转换层和目标中间转换层执行操作,包括:
11.获取待优化编译器的设计结构信息,根据所述设计结构信息得到对应的分层集合;
12.根据分层特性在所述分层集合中选取目标中间转换层;
13.根据所述目标中间转换层获取由目标统一格式中间表示元生成目标自解码的流程;
14.根据所述由目标统一格式中间表示元生成目标自解码的流程得到目标中间转换层执行操作。
15.可选地,所述目标调参学习参数至少包括调参学习类型、目标学习对象以及目标调参次数;
16.所述根据所述目标中间转换层设定目标调参学习参数,包括:
17.获取生成目标自解码的数据交换次数和数据分解性能;
18.根据所述数据交换次数和所述数据分解性能设定调参学习类型和目标学习对象;
19.根据所述目标中间转换层得到参数设定的目标范围,并根据所述目标范围得到参数设定最大值和参数设定最小值;
20.根据所述参数设定最大值和所述参数设定最小值设定目标调参次数。
21.可选地,所述根据所述目标中间转换层执行操作确定待优化编译器对象,包括:
22.根据所述中间转换层执行操作得到目标中间转换层的执行节点;
23.获取设置在所述目标中间转换层的各层的数据优化策略;
24.根据所述执行节点和所述各层的数据优化策略确定各层所需执行的目标操作;
25.根据所述各层所需执行的目标操作得到待优化编译器对象。
26.可选地,所述根据所述各层所需执行的目标操作得到待优化编译器对象,包括:
27.根据所述各层所需执行的目标操作获取指定输入模型的计算图;
28.根据所述指定输入模型的计算图得到各个操作的内存加载数据;
29.根据所述内存加载数据得到多层操作交互数据;
30.将所述多层操作交互数据的多层操作作为待优化编译器对象。
31.可选地,所述根据所述各层所需执行的目标操作得到待优化编译器对象,包括:
32.根据所述各层所需执行的目标操作获取待处理统一格式中间表示元;
33.根据所述待处理统一格式中间表示元构建目标特征矩阵;
34.根据所述目标特征矩阵得到矩阵计算时长和矩阵计算占用资源;
35.在所述矩阵计算时长大于预设时长阈值和/或所述矩阵计算占用资源大于预设存储资源阈值时,将所述矩阵计算时长和所述矩阵计算占用资源作为待优化编译器对象。
36.可选地,所述通过目标自动调参策略根据所述目标调参学习参数对所述待优化编译器对象进行调参优化,包括:
37.根据所述待优化编译器对象设定对应的初始优化策略;
38.根据所述目标调参学习参数对所述初始优化策略进行调整;
39.根据调整后的初始优化策略得到参数优化范围;
40.通过所述目标自动化调参策略在所述参数优化范围对所述待优化编译器对象进行调参优化,得到与指定输入模型相契合的编译器。
41.此外,为实现上述目的,本发明还提出一种基于张量数据计算推理的编译器优化装置,所述基于张量数据计算推理的编译器优化装置包括:
42.获取模块,用于获取待优化编译器的设计结构信息,根据所述设计结构信息得到目标中间转换层和目标中间转换层执行操作;
43.设定模块,用于根据所述目标中间转换层设定目标调参学习参数;
44.确定模块,用于根据所述目标中间转换层执行操作确定待优化编译器对象;
45.优化模块,用于通过目标自动调参策略根据所述目标调参学习参数对所述待优化编译器对象进行调参优化。
memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
57.本领域技术人员可以理解,图1中示出的结构并不构成对基于张量数据计算推理的编译器优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
58.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于张量数据计算推理的编译器优化程序。
59.在图1所示的基于张量数据计算推理的编译器优化设备中,网络接口1004主要用于与网络一体化平台工作站进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于张量数据计算推理的编译器优化设备中的处理器1001、存储器1005可以设置在基于张量数据计算推理的编译器优化设备中,所述基于张量数据计算推理的编译器优化设备通过处理器1001调用存储器1005中存储的基于张量数据计算推理的编译器优化程序,并执行本发明实施例提供的基于张量数据计算推理的编译器优化方法。
60.基于上述硬件结构,提出本发明基于张量数据计算推理的编译器优化方法实施例。
61.参照图2,图2为本发明基于张量数据计算推理的编译器优化方法第一实施例的流程示意图。
62.在第一实施例中,所述基于张量数据计算推理的编译器优化方法包括以下步骤:
63.步骤s10,获取待优化编译器的设计结构信息,根据所述设计结构信息得到目标中间转换层和目标中间转换层执行操作。
64.需要说明的是,本实施例的执行主体为基于张量数据计算推理的编译器优化设备,还可为其他可实现相同或相似功能的设备,例如面向张量计算编译器的控制器等,本实施例对此不作限制,在本实施例中,以面向张量计算编译器的控制器为例进行说明。
65.应当理解的是,待优化编译器指的是需要进行优化的面向张量数据计算推理的编译器,通过对编译器进行优化,使得优化后的编译器更适合输入的模型,设计结构信息指的是设计待优化编译器的结构信息,设计结构信息包括前端接入层、目标中间转换层以及终端执行层,且应用于深度学习推理领域,目标中间转换层执行操作指的是目标中间转换层生成目标自解码的执行操作。
66.进一步地,步骤s10,包括:获取待优化编译器的设计结构信息,根据所述设计结构信息得到对应的分层集合;根据分层特性在所述分层集合中选取目标中间转换层;根据所述目标中间转换层获取由目标统一格式中间表示元生成目标自解码的流程;根据所述由目标统一格式中间表示元生成目标自解码的流程得到目标中间转换层执行操作。
67.可以理解的是,分层集合指的是待优化编译器的各层构成的集合,例如,前端接入层位于待优化编译器的第一层,目标中间转换层位于待优化编译器的第二层以及终端执行层位于待优化编译器的第三层,分层特性指的是各个分层的处理特性,例如,前端接入层的特性为统一格式,目标中间转换层的特性为生成目标自解码以及终端执行层的特性为生成目标设备可执行文件。
68.应当理解的是,在分层集合中选取出目标中间转换层后,获取由目标统一格式中间表示元生成目标自解码的流程,具体为前端接入层将目标统一格式中间表示元传输至目
标中间转换层,而目标中间转换层根据设置的数据优化策略进行优化,在优化完成后,会生成张量计算模型文件,然后根据张量计算模型文件生成目标自解码,此时将生成目标自解码的一系列流程作为目标中间转换层执行操作。
69.步骤s20,根据所述目标中间转换层设定目标调参学习参数。
70.可以理解的是,目标调参学习参数指的是在设定范围内对待优化编译器对象进行自动化调参的参数,目标调参学习参数包括调参学习类型、目标学习对象以及目标调参次数,调参学习类型指的是调参学习的问题类型,目标学习对象指的是调参学习的目标,目标调参次数指的是达到目标所需使用的次数,该目标调参次数并不是无限设置,而是参数设定的目标范围的最大调参次数。
71.进一步地,目标调参学习参数包括调参学习类型、目标学习对象以及目标调参次数,步骤s20,包括:获取生成目标自解码的数据交换次数和数据分解性能;根据所述数据交换次数和所述数据分解性能设定调参学习类型和目标学习对象;根据所述目标中间转换层得到参数设定的目标范围,并根据所述目标范围得到参数设定最大值和参数设定最小值;根据所述参数设定最大值和所述参数设定最小值设定目标调参次数。
72.应当理解的是,数据交换次数指的是目标中间转换层进行优化时目标统一格式中间表示元的数据在显存和内存之间的交换次数,数据分解性能指的是对目标统一格式中间表示元的数据进行张量计算时矩阵分解的性能,然后根据数据交换次数和数据分解性能设定调参学习类型和目标学习对象,以及根据目标范围的参数设定最大值和参数设定最小值设定目标调参次数。
73.步骤s30,根据所述目标中间转换层执行操作确定待优化编译器对象。
74.应当理解的是,待优化编译器对象指的是待优化编译器内进行优化的对象,即通过对待优化编译器对象进行优化实现对待优化编译器的优化,具体是根据目标中间转换层执行操作确定待优化编译器对象,待优化编译器对象包括但不限于多层操作交互数据的多层操作、矩阵计算时长以及矩阵计算占用资源等。
75.步骤s40,通过目标自动调参策略根据所述目标调参学习参数对所述待优化编译器对象进行调参优化。
76.进一步地,步骤s40,包括:根据所述待优化编译器对象设定对应的初始优化策略;根据所述目标调参学习参数对所述初始优化策略进行调整;根据调整后的初始优化策略得到参数优化范围;通过所述目标自动化调参策略在所述参数优化范围对所述待优化编译器对象进行调参优化,得到与指定输入模型相契合的编译器。
77.应当理解的是,目标自动化调参策略指的是对待优化编译器对象进行调参优化的策略,在得到目标调参学习参数后,通过目标调参学习参数对初始优化策略进行调整,然后根据调整后的初始优化策略得到参数优化范围,即在参数优化范围内可以调整得到适合输入的模型的编译器,例如,参数优化范围为[0,300],调整至300次后,在调整过程中将契合度最高的编译器作为与指定输入模型相契合的编译器。
[0078]
本实施例通过获取待优化编译器的设计结构信息,根据所述设计结构信息得到目标中间转换层和目标中间转换层执行操作;根据所述目标中间转换层设定目标调参学习参数;根据所述目标中间转换层执行操作确定待优化编译器对象;通过目标自动调参策略根据所述目标调参学习参数对所述待优化编译器对象进行调参优化;通过上述方式,根据待
优化编译器的目标中间转换层设定目标调参学习参数,以及根据目标中间转换层执行操作确定待优化编译器对象,然后通过标自动调参策略以目标调参学习参数角度对待优化编译器对象进行调参优化,从而能够得到与指定输入模型相契合的编译器,进而有效提高张量数据推理的效率。
[0079]
在一实施例中,如图3所述,基于第一实施例提出本发明基于张量数据计算推理的编译器优化方法第二实施例,所述步骤s30,包括:
[0080]
步骤s301,根据所述中间转换层执行操作得到目标中间转换层的执行节点。
[0081]
应当理解的是,执行节点指的是目标中间转换层的各层对目标统一格式中间表示元进行执行的节点,执行节点可以为多个,即同一节点可以执行多种操作。
[0082]
步骤s302,获取设置在所述目标中间转换层的各层的数据优化策略。
[0083]
可以理解的是,数据优化策略指的是对目标中间转换层的各层对目标统一格式中间表示元进行优化的策略,数据优化策略包括但不限于算子融合优化策略、矩阵分解优化策略以及卷积算子优化策略。
[0084]
步骤s303,根据所述执行节点和所述各层的数据优化策略确定各层所需执行的目标操作。
[0085]
应当理解的是,在得到执行节点后,根据数据优化策略得到在执行节点的各层所需执行的目标操作,例如,在目标中间转换层存在三个执行节点,分别为第一执行节点、第二执行节点以及第三执行节点,而第一执行节点所在层设置算子融合优化策略和矩阵分解优化策略,在第二执行节点所在层设置矩阵分解优化策略,在第三执行节点所在层设置矩阵分解优化策略以及卷积算子优化策略,然后在各个执行节点进行执行时得到对应的目标操作。
[0086]
步骤s304,根据所述各层所需执行的目标操作得到待优化编译器对象。
[0087]
可以理解的是,在得到各层所需执行的目标操作后,根据各层所需执行的目标操作确定待优化编译器对象,待优化编译器对象包括但不限于多层操作交互数据的多层操作、矩阵计算时长以及矩阵计算占用资源等。
[0088]
进一步地,步骤s304,包括:根据所述各层所需执行的目标操作获取指定输入模型的计算图;根据所述指定输入模型的计算图得到各个操作的内存加载数据;根据所述内存加载数据得到多层操作交互数据;将所述多层操作交互数据的多层操作作为待优化编译器对象。
[0089]
应当理解的是,计算图指的是指定输入模型对应的文件的计算结构图示,由于在模型的计算图中,每一个操作都需要从内存中加载数据,然后对加载的数据进行计算,在计算完成之后,将计算结果返回至内存,而上述操作会涉及到多层,多层操作势必会带来大量的数据交互,即多层操作交互数据,因此,此时需要对多层操作交互数据的多层操作进行优化,即将多层操作作为待优化编译器对象,而具体优化方式是利用conv(卷积) bias(偏置) relu(激活函数)是三种经常连续使用的算子,然后将三种算子进行融合,然后将融合算子分组,例如,5*5为一组,3*3和4个1*1的融合算子为另一组,通过上述优化方式可以最大化利用硬件的带宽资源和最大化提高数据传输速度,此时优化后的编译器最适合与指定输入的模型最契合。
[0090]
进一步地,步骤s304,还包括:根据所述各层所需执行的目标操作获取待处理统一
格式中间表示元;根据所述待处理统一格式中间表示元构建目标特征矩阵;根据所述目标特征矩阵得到矩阵计算时长和矩阵计算占用资源;在所述矩阵计算时长大于预设时长阈值和/或所述矩阵计算占用资源大于预设存储资源阈值时,将所述矩阵计算时长和所述矩阵计算占用资源作为待优化编译器对象。
[0091]
可以理解的是,在得到前端接入层传输的待处理统一格式中间表示元后,首先将待处理统一格式中间表示元构建成目标特征矩阵,而矩阵乘法是张量计算的必经操作,例如,矩阵32和矩阵32进行相乘,而相乘计算是的复杂度为三次方,而复杂度越高,导致矩阵计算所占用的资源越多且时长较长,此时将矩阵计算时长和矩阵计算占用资源作为优化对象,具体是32*32的矩阵拆成边长为32、16、8、4以及2不同长度的多个小矩阵,然后把大矩阵乘法计算变成小矩阵乘法计算,而最佳分解方式是通过目标自动化调参策略确定,例如,通过目标自动化调参策略确定硬件对4*4矩阵乘法有优化,即会降低矩阵计算时长和减少矩阵计算占用资源,则会将32*32的矩阵拆成64个4*4的小矩阵进行计算。
[0092]
应当理解的是,待优化编译器对象还可以为张量计算卷积操作,例如,卷积操作具体为:输入和输出张量尺寸都是32*32,输入通道数是3,输出通道数是16,卷积核为3*3,通过上述参数计算出总共需要做32*32*3*3*3*16*32*32次乘法和加法操作,显然,通过上述卷积操作的计算耗时较高,此时通过目标自动化调参策略对上述卷积操作进行调整,以寻找出最快速的张量计算卷积计算方式,具体为:将输入输出的张量拆开为32、16、8、4以及2的不同尺寸,通道数拆开为16、8、4以及2的不同尺寸。
[0093]
本实施例根据所述中间转换层执行操作得到目标中间转换层的执行节点;获取设置在所述目标中间转换层的各层的数据优化策略;根据所述执行节点和所述各层的数据优化策略确定各层所需执行的目标操作;根据所述各层所需执行的目标操作得到待优化编译器对象;通过上述方式,根据中间转换层执行操作得到目标中间转换层的执行节点,然后根据目标中间转换层的执行节点和设置在各层的数据优化策略得到各层所需执行的目标操作,再根据各层所需执行的目标操作确定待优化编译器对象,从而能够有效提高确定待优化编译器对象的准确性。
[0094]
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于张量数据计算推理的编译器优化程序,所述基于张量数据计算推理的编译器优化程序被处理器执行时实现如上文所述的基于张量数据计算推理的编译器优化方法的步骤。
[0095]
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
[0096]
此外,参照图4,本发明实施例还提出一种基于张量数据计算推理的编译器优化装置,所述基于张量数据计算推理的编译器优化装置包括:
[0097]
获取模块10,用于获取待优化编译器的设计结构信息,根据所述设计结构信息得到目标中间转换层和目标中间转换层执行操作。
[0098]
设定模块20,用于根据所述目标中间转换层设定目标调参学习参数。
[0099]
确定模块30,用于根据所述目标中间转换层执行操作确定待优化编译器对象。
[0100]
优化模块40,用于通过目标自动调参策略根据所述目标调参学习参数对所述待优化编译器对象进行调参优化。
[0101]
本实施例通过获取待优化编译器的设计结构信息,根据所述设计结构信息得到目
标中间转换层和目标中间转换层执行操作;根据所述目标中间转换层设定目标调参学习参数;根据所述目标中间转换层执行操作确定待优化编译器对象;通过目标自动调参策略根据所述目标调参学习参数对所述待优化编译器对象进行调参优化;通过上述方式,根据待优化编译器的目标中间转换层设定目标调参学习参数,以及根据目标中间转换层执行操作确定待优化编译器对象,然后通过标自动调参策略以目标调参学习参数角度对待优化编译器对象进行调参优化,从而能够得到与指定输入模型相契合的编译器,进而有效提高张量数据推理的效率。
[0102]
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
[0103]
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于张量数据计算推理的编译器优化方法,此处不再赘述。
[0104]
在一实施例中,所述获取模块10,还用于获取待优化编译器的设计结构信息,根据所述设计结构信息得到对应的分层集合;根据分层特性在所述分层集合中选取目标中间转换层;根据所述目标中间转换层获取由目标统一格式中间表示元生成目标自解码的流程;根据所述由目标统一格式中间表示元生成目标自解码的流程得到目标中间转换层执行操作。
[0105]
在一实施例中,所述设定模块20,还用于所述目标调参学习参数至少包括调参学习类型、目标学习对象以及目标调参次数;获取生成目标自解码的数据交换次数和数据分解性能;根据所述数据交换次数和所述数据分解性能设定调参学习类型和目标学习对象;根据所述目标中间转换层得到参数设定的目标范围,并根据所述目标范围得到参数设定最大值和参数设定最小值;根据所述参数设定最大值和所述参数设定最小值设定目标调参次数。
[0106]
在一实施例中,所述确定模块30,还用于根据所述中间转换层执行操作得到目标中间转换层的执行节点;获取设置在所述目标中间转换层的各层的数据优化策略;根据所述执行节点和所述各层的数据优化策略确定各层所需执行的目标操作;根据所述各层所需执行的目标操作得到待优化编译器对象。
[0107]
在一实施例中,所述确定模块30,还用于根据所述各层所需执行的目标操作获取指定输入模型的计算图;根据所述指定输入模型的计算图得到各个操作的内存加载数据;根据所述内存加载数据得到多层操作交互数据;将所述多层操作交互数据的多层操作作为待优化编译器对象。
[0108]
在一实施例中,所述确定模块30,还用于根据所述各层所需执行的目标操作获取待处理统一格式中间表示元;根据所述待处理统一格式中间表示元构建目标特征矩阵;根据所述目标特征矩阵得到矩阵计算时长和矩阵计算占用资源;在所述矩阵计算时长大于预设时长阈值和/或所述矩阵计算占用资源大于预设存储资源阈值时,将所述矩阵计算时长和所述矩阵计算占用资源作为待优化编译器对象。
[0109]
在一实施例中,所述优化模块40,还用于根据所述待优化编译器对象设定对应的初始优化策略;根据所述目标调参学习参数对所述初始优化策略进行调整;根据调整后的初始优化策略得到参数优化范围;通过所述目标自动化调参策略在所述参数优化范围对所
述待优化编译器对象进行调参优化,得到与指定输入模型相契合的编译器。
[0110]
本发明所述基于张量数据计算推理的编译器优化装置的其他实施例或具有实现方法可参照上述各方法实施例,此处不再赘余。
[0111]
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0112]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0113]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,一体化平台工作站,或者网络设备等)执行本发明各个实施例所述的方法。
[0114]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献