一种张量程序的生成方法及装置

文档序号:33187164发布日期:2023-02-04 06:57阅读:20来源:国知局
一种张量程序的生成方法及装置

1.本技术涉及计算机技术领域,特别是涉及一种张量程序的生成方法及装置。


背景技术:

2.目前,开发人员开发的算法模型可以抽象成计算图表示,并可以将计算图部署到硬件平台上进行应用。为了能够使得计算图能够更好地应用在硬件平台上,通常会通过张量编译器(tensor compiler))对计算图进行处理,从而得到张量程序,并将该张量程序部署到对应的硬件平台上,以实现对开发人员开发的算法模型的应用。
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.拆分子单元,用于以所述目标算子节点作为拆分点,将所述计算图拆分为若干个计算子图;
46.组合子单元,用于获取与计算子图对应的调度原语指令集合,对所述调度原语指令集合中的指令进行组合,获得多个调度原语;
47.第一生成子单元,用于基于多个所述调度原语,生成所述计算子图对应的调度原语集合。
48.可选地,所述筛选单元包括:
49.第二生成子单元,用于生成与每一所述调度原语对应的调度原语特征向量;
50.模型处理子单元,用于将每一所述调度原语特征向量输入至目标处理模型,获得所述目标处理模型输出的与每一所述调度原语特征向量相匹配的预测分数,其中,所述目标处理模型是基于与每一调度原语对应的目标性能指标作为训练目标值,以及与各个硬件平台的硬件特征信息对应的模型学习结构进行训练得到的机器学习模型;
51.第二确定子单元,用于基于所述预测分数,在各个所述调度原语特征向量中确定目标调度原语特征向量;
52.第一获取子单元,用于获得与所述目标调度原语特征向量相匹配的目标调度原语。
53.可选地,所述第二生成子单元具体用于:
54.对每一所述调度原语进行特征提取,获得目标特征,其中,所述目标特征包括原语特性、数值参数和字符参数;
55.基于特征向量映射表,确定与每一目标特征对应的向量信息;
56.根据每一目标特征对应的向量信息,生成调度原语特征向量。
57.可选地,所述装置还包括:
58.数据获取单元,用于获取训练数据,所述训练数据包括调度原语对应的调度原语特征向量,以及标注的对应各个硬件平台的目标性能指标标签;
59.划分单元,用于将所述训练数据划分为训练集和测试集;
60.训练单元,用于基于所述训练数据对初始模型进行训练,获得训练后的初始模型,其中,所述初始模型的模型结构包括基础学习层以及对各个处理平台的硬件特征进行学习的硬件学习层;
61.调整单元,用于根据所述测试集对训练后的模型进行测试,并依据测试结果对训练后的初始模型进行模型参数调整,得到目标处理模型。
62.可选地,所述调整单元包括:
63.输入子单元,用于将所述测试集输入至训练后的初始模型,获得所述训练后的初始模型输出的预测结果;
64.比对子单元,用于将所述预测结果与所述测试集标注的目标性能指标进行比对,若比对结果不满足预设条件,确定当前测试集对应的硬件平台;
65.调整子单元,用于基于所述比对结果对与所述硬件平台对于应的硬件学习层的参
数进行调整,并基于所有所述测试集的测试结果对所述基础学习层的参数进行调整;
66.第三确定子单元,用于将参数调整后的训练后的初始模型确定为目标处理模型。
67.可选地,所述第二确定子单元具体用于:
68.基于所述预测分数,获取与所述目标硬件平台对应的预测分数;
69.根据与所述目标硬件平台对应的预测分数,在各个所述调度原语特征向量中确定目标调度原语特征向量。
70.一种存储介质,所述存储介质存储有可执行指令,所述指令被处理器执行时实现如上述中任意一项所述的张量程序的生成方法。
71.一种电子设备,包括:
72.存储器,用于存储程序;
73.处理器,用于执行所述程序,所述程序具体用于实现如上述中任意一项所述的张量程序的生成方法。
74.相较于现有技术,本技术提供了一种张量程序的生成方法及装置,该方法包括:获取表征目标算法模型的计算图;确定与计算图对应的计算子图的调度原语集合;基于目标性能指标以及计算图待应用的目标硬件平台的硬件特征信息,在调度原语集合中筛选得到目标调度原语;生成与目标调度原语对应的张量程序,以使得将张量程序部署在目标硬件平台。本技术通过对调度原语进行筛选,生成筛选后的调度原语的张量程序,提升了处理效率,并且能够基于目标硬件平台的硬件特征信息确定张量程序,使得更加匹配当前的目标硬件平台,提升了生成当前硬件平台的张量程序的准确性。
附图说明
75.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
76.图1为本技术实施例提供的一种张量程序的生成方法的流程示意图;
77.图2为本技术实施例提供的一种计算图中的算子节点的示意图;
78.图3为本技术实施例提供的一种特征提取规范的示意图;
79.图4为本技术实施例提供的一种特征提取方法示意图;
80.图5为本技术实施例提供的一种应用于目标处理模型的模型结构示意图;
81.图6为本技术实施例提供的一种多任务学习的模型结构示意图;
82.图7为本技术实施例提供的一种张量程序的生成装置的结构示意图。
具体实施方式
83.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
84.本技术的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区
别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
85.在本技术实施例中提供了一种张量程序的生成方法,该方法可以应用于张量编译器。机器学习的编译过程可以被看作张量函数之间的变化,因此需要通过张量编译器生成与目标算法模型对应的张量程序,以使得目标硬件平台运行该张量程序能够实现对目标算法模型的应用。参见图1,为本技术实施例提供的一种张量程序的生成方法的流程示意图,该方法可以包括以下步骤:
86.s101、获取表征目标算法模型的计算图。
87.目标算法模型为待应用于目标硬件平台的模型,在本技术实施例中的目标算法模型可以包括深度学习相关算法模型和图像处理相关算法模型,其中,深度学习相关算法模型可以包括人脸识别算法、图像分类算法、语音识别算法、目标检测算法等;图像处理相关算法模型可以包括模糊算法、边缘检测算法等。具体的,表征目标算法模型的计算图可以是人脸识别识别算法的计算图,还可以是语音识别算法的计算图。
88.表征目标算法模型的计算图可以包括多个算子节点,算子节点是构成机器学习网络的基本计算单元,算子节点例如可以是神经网络中的卷积、池化等运算操作。
89.s102、确定与所述计算图对应的计算子图的调度原语集合。
90.由于计算图包括多个算子节点,若直接对计算图进行处理,会占用过程的处理、计算资源,并降低处理效率。因此,在本技术实施例中需要对计算图进行拆分得到计算子图,具体的,可以根据实际的拆分需求对计算图进行拆分,也可以根据计算图中的算子节点进行拆分。在获得了与计算图对应的计算子图后,可以确定与计算子图对应的调度原语集合,其中,调度原语集合中包括大量的调度原语,可以使用调度原语来明确计算子图中算子的具体执行过程,以便获得最优的运行效率。
91.在本技术实施例的一种实施方式中,所述确定与计算图对应的计算子图的调度原语集合,包括:基于计算中的算子节点的输出连接关系,在算子节点中确定目标算子节点;以目标算子节点作为拆分点,将计算图拆分为若干个计算子图;获取与计算子图对应的调度原语指令集合,对调度原语指令集合中的指令进行组合,获得多个调度原语;基于多个所述调度原语,生成所述计算子图对应的调度原语集合。
92.可以根据算子节点的节点信息,确定各个算子节点的输出连接关系,其中,算子节点的节点信息可以包括算子节点的输入连接关系、输出连接关系以及算子节点的相关属性信息等,可以根据计算图的实际应用需求或者处理信息的逻辑关系,在各个算子节点中确定目标节点。可以将目标算子节点作为拆分点进行拆分,进一步地可以将目标算子节点的输出端作为拆分点,将计算图拆分为串行连接的多个计算子图。
93.参见图2,为本技术实施例提供的一种计算图中的算子节点的示意图,在图2所示的计算图中包括算子节点a、b、c、d、e和f,各个算子节点的输入、输出连接关系如图2所示,假设以d为拆分点,则图2所示的虚线框为该计算图对应的计算子图。由于组成计算图的各个计算子图均有一定的输入或者输出关系,因此可以通过对计算子图处理来实现对计算图的处理,从而降低了处理资源的占用,提升了处理效率。
94.在调度原语指令集合中会有多种指令,例如表征计算的加法、减法等指令,还可以
包括表征处理逻辑的函数,如拆分字符串的函数split(),可以根据实际需求选取调度原语指令集合中的调度原语指令,按照处理逻辑或者特定的组合方式对调度原语指令进行组合,获得多个调度原语,从而得到调度原语集合。
95.s103、基于目标性能指标以及所述计算图待应用的目标硬件平台的硬件特征信息,在所述调度原语集合中筛选得到目标调度原语。
96.s104、生成与目标调度原语对应的张量程序,以使得将张量程序部署在所述目标硬件平台。
97.其中,目标性能指标是指将计算图应用在对应的硬件平台上的执行效率以及处理速率等参数。目标硬件平台是指该计算图待应用的硬件平台,其中,硬件特征信息可以包括该硬件平台的基本属性特征,如硬件平台的处理器参数以及内存信息等,还可以包括硬件平台的负载参数,如当前执行的任务数量以及待执行的任务数量等。即不同的硬件平台可能对应的待设置的张量程序不同,因此在本技术实施例中生成张量程序的过程中还需要考虑目标硬件平台的硬件特征信息。
98.对应的,在本技术实施例中在获得了调度原语后,并不是直接生成与每一调度原语对应的张量程序,因为获得的调度原语数量较多,若直接生成张量程序,该处理过程较为复杂,并且需要在生成的多个张量程序中筛选出与该目标硬件平台匹配度最高的张量程序,即需要筛选出在该目标硬件平台上运行效率最高的张量程序。但是,张量程序是嵌套的树状结构数据,难以自动提取特征,往往依赖人工特征提取,而特征功能受限于专业人员的先验知识,因此,张量程序的筛选也较为困难,从而在本技术实施例中先对调度原语进行筛选,在获得了目标调度原语之后,生成与目标调度原语对应的张量程序即可。
99.为了进一步提升处理效率,在本技术实施例中可以通过目标处理模型确定对应的目标调度原语。即所述基于目标性能指标以及计算图待应用的目标硬件平台的硬件特征信息,在调度原语中筛选得到目标调度原语,包括:
100.生成与每一调度原语对应的调度原语特征向量;
101.将每一调度原语特征向量输入至目标处理模型,获得目标处理模型输出的与每一调度原语特征向量相匹配的预测分数;
102.基于所述预测分数,在各个调度原语特征向量中确定目标调度原语特征向量;
103.获得与目标调度原语特征向量相匹配的目标调度原语。
104.在本技术实施例中可以基于对调度原语进行特征提取,以确定与每一调度原语对应的调度原语特征向量。在一种实施方式中,所述生成与每一调度原语对应的调度原语特征向量,包括:对每一调度原语进行特征提取,获得目标特征,其中,所述目标特征包括原语特征、数值参数和字符参数;基于特征向量映射表,确定与每一目标特征对应的向量信息;根据每一目标特征对应的向量信息,生成调度原语特征向量。
105.具体的,对调度原语进行预处理,得到抽象调度原语序列。对于序列中的每条抽象调度原语,特征提取通常只保留三个基本元素:原语类型、数值参数和字符参数。其次,对预处理后的抽象调度原语序列进行特征提取,可以参见图3所示的特征提取规范的示意图,其描述了调度原语的抽象标识。一个调度原语序列(primitivesequence)由若干调度原语(primitive)组成。每个原语都以原语类型(primitivetype)开头,后跟若干数值参数(number)或字符参数(nameparam)。具体可以参见图4所示的特征提取方法示意图进行特征
提取。特征向量映射表为特征与向量之间的映射表,例如,可以将原语类型以特定的数字向量进行表示,将数值参数以特定的数字向量进行表示,而数字参数可以直接以其本身的数字表示。具体的,对于原语类型,将其转换为独热(one-hot)向量,独热向量是一种特殊的向量,该向量里仅容许其中一位为1,其他位都必须为0。对于数值参数,保持其值不变。对于字符参数,将它们统一转换为编码为id的记号(token)。然后,根据元素的原始位置将所有特征连接起来。进一步还可以通过剪裁、填充和归一化等处理方式对提取的特征进行后处理,从而可以生成调度原语特征向量。
106.该调度原语特征向量作为了目标处理模型的输入信息,其中,目标处理模型是基于与每一调度原语对应的目标性能指标作为训练目标值,以及与各个硬件平台的硬件特征信息对应的模型学习结构进行训练得到的机器学习模型。需要说明的是,目标性能指标是指基于历史的运行信息,确定的将调度原语对应的张量程序应用在硬件平台的处理性能指标,如针对同一数量数据处理的处理时间,还例如可以是延时参数等。需要说明的是,为了能够便于本技术实施例确定出的张量模型能够满足当前的各种硬件平台的设置需求,在对每一调度原语对应的目标性能指标进行标注时,可以基于不同的硬件平台进行标注,如a表示调度原语特征向量,其标注信息b是一个标注信息集合,包括b1和b2,其中,b1包括b11表示第一硬件平台和b12第二硬件平台,b2包括b21和b22,b21表示在第一平台下的目标性能指标标签,b22表示在第二平台下的目标性能指标标签。
107.因此,为了能够保证目标处理模型对信息的准确学习,会将其训练目标值和模型结构基于学习特征进行改进,即包括与每一调度原语对应的目标性能指标作为训练目标值,以及与各个硬件平台的硬件特征信息对应的模型学习结构。该目标处理模型输出的预测分数表征基于输入的调度原语特征向量确定的目标性能指标的预测分数,如预测其性能为第一类性能的分数或者预测其性能为第二类性能的分数。
108.进一步地,在本技术实施例中还提供了一种生成目标处理模型的方法,该方法可以包括:获取训练数据,所述训练数据包括调度原语对应的调度原语特征向量,以及标注的对应各个硬件平台的目标性能指标标签;将所述训练数据划分为训练集和测试集;基于所述训练数据对初始模型进行训练,获得训练后的初始模型,其中,所述初始模型的模型结构包括基础学习层以及对各个处理平台的硬件特征进行学习的硬件学习层;根据所述测试集对训练后的模型进行测试,并依据测试结果对训练后的初始模型进行模型参数调整,得到目标处理模型。
109.进一步地,所述根据所述测试集对训练后的初始模型进行测试,并依据测试结果对训练后的初始模型进行模型参数调整,得到目标处理模型,包括:将所述测试集输入至训练后的初始模型,获得所述训练后的初始模型输出的预测结果;将所述预测结果与所述测试集标注的目标性能指标进行比对,若比对结果不满足预设条件,确定当前测试集对应的硬件平台;基于所述比对结果对与所述硬件平台对于应的硬件学习层的参数进行调整,并基于所有所述测试集的测试结果对所述基础学习层的参数进行调整;将参数调整后的训练后的初始模型确定为目标处理模型。
110.需要说明的是,在本技术实施例中对训练数据进行划分时,除了可以将训练数据划分为训练集和测试集外,还可以将训练数据划分为训练集、验证集和测试集,具体可以根据实际的模型训练需求以及样本数量、属性等特征确定。只要能够保证训练数据中存在对
模型进行训练,以及验证模型准确性并基于验证结果进行模型参数调整的训练数据即可,本技术对训练数据的划分以及具体应用过程不进行限制。
111.参见图5,为本技术实施例提供的一种应用于目标处理模型的模型结构示意图,该模型首先通过多个线性层(linear)将维度上采样到256或更多。然后使用注意力机制(self-attention)模块来捕获上下文特征,紧随其后的是两个残差块(residual block)。最后,使用多个线性层和求和(sum)运算来获得预测分数。若以目标性能指标标签为延迟标签,目标性能指标标签是标准化的延迟,公式如下:
112.label=(min_latency)/latency
113.其中,latency可以是当前张量程序的延迟参数,而min_latency是计算子图的所有张量程序延迟中的最小值,之所以对目标性能指标标签进行标准化延迟处理,是为了能够将所有的目标性能指标以相同的处理维度进行处理,便于数据的处理。由于模型的训练是一个迭代更新的过程,即需要对模型参数进行反复调整的过程,以使训练好的模型的输出与样本数据实际标注的标签之间的差异最小。因此,将预测结果与测试集标注的目标性能指标进行比对,根据比对结果对模型参数进行调整。同时,由于本技术实施例的目标处理模型输出的预测结果是基于对应的硬件平台的硬件特征信息确定,因此,在本技术实施例的目标处理模型的模型结构至少包括基础学习层和硬件学习层。因此,在对模型参数进行调整时需要至少对基础学习层的模型参数以及硬件学习层的模型参数进行调整,具体的,将所述预测结果与所述测试集标注的目标性能指标进行比对,若比对结果不满足预设条件,确定当前测试集对应的硬件平台,即如果预测结果与目标性能指标的偏差较大,则需要确定该预测结果来源的测试集中标注的硬件平台,使得基于该测试集对应的比对结果对与该硬件平台对应的硬件学习层进行调整,同时也可以根据该比对结果对基础学习层的参数进行调整,进一步也可以基于所有所述测试集的测试结果对所述基础学习层的参数进行调整。
114.具体的,在本技术实施例中可以使用多任务学习(multi-task learning,mtl)技术来解决跨硬件平台的张量程序不可用问题的模型结构可以参见图6。例如,张量程序在cpu或gpu上是通用的,因此调度原语序列在转换为特征后,在cpu或gpu上都是一样的。不同之处在于它们具有不同的延迟。本技术为每个硬件平台设置了一个任务。整个网络的loss是所有任务loss的总和。图6包括一个训练时的示例,其中,图6下方标注的矩形虚线框可以保证基础学习层,图6上方并列标注的3个矩形虚线框可以表征各个应阿金学习层。进一步如果张量程序在对应硬件上没有标签,我们将其标签设置为默认值-100。在计算loss时,不计算该任务的loss。也就是说,没有标签的任务不参与反向传播。
115.在单任务学习中,梯度的反向传播往往会陷入局部最优点。在多任务学习中,不同任务的局部最优点处于不同的位置。不同任务的交互可以帮助隐藏层摆脱局部最优点。多个任务在浅层共享权重,这可以削弱网络的能力,减少网络过度拟合,提高泛化能力。
116.对应的,在本技术还可以解决针对某个硬件平台进行训练时样本数量不足的问题。在神经网络模型训练过程中样本数量越多,模型训练的精准度也越高。若针对第二硬件平台的有效标注样本仅有50万,而对应第一硬件平台的有效标注样本有500万,则可以根据第一硬件平台的标注样本对模型的基础学习层进行参数调整,而根据第二硬件平台的标注样本对模型的硬件学习层进行调整,从而也比仅利用第二硬件平台的样本对模型整体参数
进行调整的模型的准确性高。
117.因此,在本技术实施例中目标处理模型输出的预测分数是多组预测分数,每一组对应一个硬件平台,从而可以基于所述预测分数,获取与所述目标硬件平台对应的预测分数;根据与所述目标硬件平台对应的预测分数,在各个所述调度原语特征向量中确定目标调度原语特征向量。
118.可见,本技术为了解决基于学习的代价模型依赖复杂特征提取工程的问题,本发明专利申请提出将调度原语序列抽象为张量语言并从中提取特征。此外,本发明专利申请还提出使用多任务学习技术来解决代价模型跨硬件不可用问题。实验表明,与最先进的实现相比,本发明可以将cpu和gpu工作负载的平均搜索时间分别加快9.1倍和3.0倍。针对跨硬件问题,可以仅使用7%的目标硬件数据的同时加速cpu和gpu工作负载搜索时间分别达4.7倍和2.9倍。与tenset相比,最终生成的张量程序在执行时间上有1.0倍到1.3倍加速。
119.参见图7,在本技术的另一实施例中还提供了一种张量程序的生成装置,所述装置包括:
120.获取单元701,用于获取表征目标算法模型的计算图;
121.确定单元702,用于确定与所述计算图对应的计算子图的调度原语集合;
122.筛选单元703,用于基于目标性能指标以及所述计算图待应用的目标硬件平台的硬件特征信息,在所述调度原语集合中筛选得到目标调度原语;
123.生成单元704,用于生成与所述目标调度原语对应的张量程序,以使得将所述张量程序部署在所述目标硬件平台。
124.可选地,所述确定单元包括:
125.第一确定子单元,用于基于计算图中的算子节点的输出连接关系,在所述算子节点中确定目标算子节点;
126.拆分子单元,用于以所述目标算子节点作为拆分点,将所述计算图拆分为若干个计算子图;
127.组合子单元,用于获取与计算子图对应的调度原语指令集合,对所述调度原语指令集合中的指令进行组合,获得多个调度原语;
128.第一生成子单元,用于基于多个所述调度原语,生成所述计算子图对应的调度原语集合。
129.可选地,所述筛选单元包括:
130.第二生成子单元,用于生成与每一所述调度原语对应的调度原语特征向量;
131.模型处理子单元,用于将每一所述调度原语特征向量输入至目标处理模型,获得所述目标处理模型输出的与每一所述调度原语特征向量相匹配的预测分数,其中,所述目标处理模型是基于与每一调度原语对应的目标性能指标作为训练目标值,以及与各个硬件平台的硬件特征信息对应的模型学习结构进行训练得到的机器学习模型;
132.第二确定子单元,用于基于所述预测分数,在各个所述调度原语特征向量中确定目标调度原语特征向量;
133.第一获取子单元,用于获得与所述目标调度原语特征向量相匹配的目标调度原语。
134.可选地,所述第二生成子单元具体用于:
135.对每一所述调度原语进行特征提取,获得目标特征,其中,所述目标特征包括原语特性、数值参数和字符参数;
136.基于特征向量映射表,确定与每一目标特征对应的向量信息;
137.根据每一目标特征对应的向量信息,生成调度原语特征向量。
138.可选地,所述装置还包括:
139.数据获取单元,用于获取训练数据,所述训练数据包括调度原语对应的调度原语特征向量,以及标注的对应各个硬件平台的目标性能指标标签;
140.划分单元,用于将所述训练数据划分为训练集和测试集;
141.训练单元,用于基于所述训练数据对初始模型进行训练,获得训练后的初始模型,其中,所述初始模型的模型结构包括基础学习层以及对各个处理平台的硬件特征进行学习的硬件学习层;
142.调整单元,用于根据所述测试集对训练后的模型进行测试,并依据测试结果对训练后的初始模型进行模型参数调整,得到目标处理模型。
143.可选地,所述调整单元包括:
144.输入子单元,用于将所述测试集输入至训练后的初始模型,获得所述训练后的初始模型输出的预测结果;
145.比对子单元,用于将所述预测结果与所述测试集标注的目标性能指标进行比对,若比对结果不满足预设条件,确定当前测试集对应的硬件平台;
146.调整子单元,用于基于所述比对结果对与所述硬件平台对于应的硬件学习层的参数进行调整,并基于所有所述测试集的测试结果对所述基础学习层的参数进行调整;
147.第三确定子单元,用于将参数调整后的训练后的初始模型确定为目标处理模型。
148.可选地,所述第二确定子单元具体用于:
149.基于所述预测分数,获取与所述目标硬件平台对应的预测分数;
150.根据与所述目标硬件平台对应的预测分数,在各个所述调度原语特征向量中确定目标调度原语特征向量。
151.本技术实施例提供了一种张量程序的生成装置,获取表征目标算法模型的计算图;确定与计算图对应的计算子图的调度原语集合;基于目标性能指标以及计算图待应用的目标硬件平台的硬件特征信息,在调度原语集合中筛选得到目标调度原语;生成与目标调度原语对应的张量程序,以使得将张量程序部署在目标硬件平台。本技术通过对调度原语进行筛选,生成筛选后的调度原语的张量程序,提升了处理效率,并且能够基于目标硬件平台的硬件特征信息确定张量程序,使得更加匹配当前的目标硬件平台,提升了生成当前硬件平台的张量程序的准确性。
152.需要说明的是,本实施例中各个单元以及子单元的具体实现可以参考前文中的相应内容,此处不再详述。
153.在本技术实施例中还提供了一种存储介质,所述存储介质存储有可执行指令,所述指令被处理器执行时实现如上述中任意一项所述的张量程序的生成方法。
154.对应的,在本技术实施例中还提供了一种电子设备,该电子设备可以包括:
155.存储器,用于存储程序;
156.处理器,用于执行所述程序,所述程序具体用于实现如上述中任意一项所述的张
量程序的生成方法。
157.需要说明的是,本实施例中处理器的具体实现可以参考前文中的相应内容,此处不再详述。
158.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
159.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
160.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
161.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1