一种推理加速方法、设备及存储介质与流程

未命名 09-22 阅读:87 评论:0


1.本技术涉及ai技术领域,尤其涉及一种推理加速方法、设备及存储介质。


背景技术:

2.随着自然语言处理及图像处理等领域的发展,mha(multi-head attention,多头注意力)机制已经被广泛应用到各种推理模型上,特别是类似bert结构的推理模型。
3.目前,通常是在推理初始化阶段中,为推理模型中的各个mha匹配kernel(gpu上的核函数),产生的匹配结果将被固化并应用于推理执行阶段中。也即是,在推理执行阶段将按照固化后的匹配结果,为各个mha分别调用对应的kernel,以实现推理加速。
4.推理需求不断多样化,而上述这种kernel匹配方式则过于死板,经常调用到不合适的kernel,导致推理加速性能不稳定。


技术实现要素:

5.本技术的多个方面提供一种推理加速方法、设备及存储介质,用以改善推理加速性能。
6.本技术实施例提供一种推理加速方法,包括:
7.在推理模型运行期间,响应于推理指令,确定目标推理操作在本轮推理过程中对应的加速需求参数值;
8.查找与所述加速需求参数值相匹配的目标加速算子;
9.在本轮推理过程中,为所述目标推理操作调用所述目标加速算子,以对所述目标推理操作进行加速;
10.其中,所述目标推理操作为所述推理模型中包含的任一待加速的推理操作。
11.进一步,查找与所述加速需求参数值相匹配的目标加速算子,包括:
12.基于加速算子库中各个加速算子各自对应的属性描述信息,从所述加速算子库中查找具有符合所述加速需求参数值的属性描述信息的加速算子,作为所述目标加速算子。
13.进一步,所述加速需求参数值包含所述目标推理操作在第一类参数下所需的参数值和所述目标推理操作在第二类参数下所需的参数值,所述第一类参数在各个加速算子的属性描述信息中均配置为数据值,所述第二类参数在单个加速算子的属性描述信息中配置为数据值或数据范围;从所述加速算子库中查找具有符合所述加速需求参数值的属性描述信息的加速算子,作为所述目标加速算子,包括:
14.从所述加速算子库中,查找具有符合所述目标推理操作在第一类参数下所需的参数值的属性描述信息的加速算子,作为候选加速算子;
15.从所述候选加速算子中,查找具有符合所述目标推理操作在第二类参数下所需的参数值的属性描述信息的加速算子,作为所述目标加速算子。
16.进一步,从所述加速算子库中,查找具有符合所述目标推理操作在第一类参数下所需的参数值的属性描述信息的加速算子,作为候选加速算子,包括:
17.按照所述目标推理操作在第一类参数下所需的参数值,构建所述目标推理操作对应的查询键值;
18.基于加速算子的标识与查询键值之间的映射关系,确定所述目标推理操作对应的候选加速算子。
19.进一步,从所述候选加速算子中,查找具有符合所述目标推理操作在第二类参数下所需的参数值的属性描述信息的加速算子,作为所述目标加速算子,包括:
20.确定属性描述信息中第二类参数配置为数据值且所述数据值与所述目标推理操作在第二类参数下所需的参数值一致的第一候选加速算子,为所述目标加速算子。
21.进一步,该方法还包括:
22.若不存在所述第一候选加速算子,则确定属性描述信息中第二类参数配置为数据范围且所述数据范围包括所述目标推理操作在第二类参数下所需的参数值的第二候选加速算子为所述目标加速算子。
23.进一步,在属性描述信息中采用特殊标识指代数据范围,所述方法还包括:
24.若在加速算子对应的属性描述信息中第二类参数为预设标识,则确定加速算子的第二类参数配置为数据范围。
25.进一步,所述目标推理操作包括多头注意力计算操作,所述第一类参数包括头尺寸,所述第二类参数包括序列长度。
26.进一步,所述查询键值采用哈希键值,所述加速算子的标识与查询键值key之间的映射关系采用散列表进行表征。
27.本技术实施例还提供一种计算设备,包括存储器、处理器和通信组件;
28.所述存储器用于存储一条或多条计算机指令;
29.所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于执行前述的推理加速方法。
30.本技术实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的推理加速方法。
31.在本技术实施例中,提出在推理执行阶段中,响应于推理指令而为推理模型中各个待加速的推理操作分别确定在本轮推理过程中所对应的加速需求参数值,这样,可实时地感知到各个推理操作所对应加速需求参数值在推理执行阶段中的动态变化情况,从而可跟随加速需求参数的动态变化而自适应地为各个推理操作匹配到合适的加速算子,保证了推理模型中的各个待加速的推理操作在每一轮推理过程中均可匹配到合适的加速算子。与传统的在推理初始化阶段进行算子匹配并固化到推理执行阶段的方案相比,可实现加速算子的自适应匹配,从而支持推理执行阶段中复杂多变的推理指令,进而保证每一轮推理过程中的推理加速性能。
附图说明
32.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
33.图1为本技术一示例性实施例提供的一种推理加速方法的流程示意图;
34.图2为本技术一示例性实施例提供的一种推理加速方法的逻辑示意图;
35.图3为本技术一示例性实施例提供的一种应用场景的示意图;
36.图4为本技术另一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
37.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
38.推理是使用训练过的模型进行预测的过程,本文中,将用于推理的模型描述为推理模型。推理模型可以是神经网络模型或机器学习模型等。随着推理需求的不断发展,推理模型的规模和复杂度也在不断提升,为了保证推理效率,推理加速技术应用而生,但是,目前,加速算子匹配方式过于死板,导致推理加速性能不稳定。为此,本技术的一些实施例中:提出在推理执行阶段中,响应于推理指令而为推理模型中各个待加速的推理操作分别确定在本轮推理过程中所对应的加速需求参数值,这样,可实时地感知到各个推理操作所对应加速需求参数值在推理执行阶段中的动态变化情况,从而可跟随加速需求参数的动态变化而自适应地为各个推理操作匹配到合适的加速算子,保证了推理模型中的各个待加速的推理操作在每一轮推理过程中均可匹配到合适的加速算子。与传统的在推理初始化阶段进行算子匹配并固化到推理执行阶段的方案相比,可实现加速算子的自适应匹配,从而支持推理执行阶段中复杂多变的推理指令,进而保证每一轮推理过程中的推理加速性能。
39.以下结合附图,详细说明本技术各实施例提供的技术方案。
40.图1为本技术一示例性实施例提供的一种推理加速方法的流程示意图,该方法可由推理加速装引擎执行,该推理加速引擎可实现为软件、硬件或软件与硬件的结合,该推理加速引擎可集成在计算设备中。参考图1,该方法可包括:
41.步骤100、在推理模型运行期间,响应于推理指令,确定目标推理操作在本轮推理过程中对应的加速需求参数值,目标推理操作在不同推理过程中对应的加速需求参数值不完全相同;
42.步骤101、查找与加速需求参数值相匹配的目标加速算子;
43.步骤102、在本轮推理过程中,为目标推理操作调用目标加速算子,以对目标推理操作进行加速;
44.其中,目标推理操作为推理模型中包含的任一待加速的推理操作。
45.本实施例提供的推理加速方法可应用于各种需要进行推理加速的场景中,例如,自然语言处理或者图像处理等人工智能推理场景等,本实施例对应用场景不做限定。在不同的应用场景中,推理模型所承载的推理功能可按需部署。例如,在自然语言处理场景中,推理模型所承载的推理功能可以是语音识别功能、聊天功能或翻译功能等。又例如,在图像处理场景中,推理模型所承载的推理功能可以是目标检测功能或图像分割功能等。本实施例对推理模型的内部模型逻辑不做限定。另外,本实施例对推理模型中所采用的推理机制也不做限定,典型地,推理模型中可采用注意力机制(attention)、自注意力机制(self-attention)或多头注意力机制(muti-head self-attention,mha)等。其中,多头注意力机制mha为人工智能领域的一种序列处理算法,此算法通过“多头”结构,实现在序列处理过程
中,对已处理过序列进行记忆管理和上下文关联,从而达到较好的序列理解效果。
46.本实施例提供的推理加速方法可作为推理加速引擎中的一项创新功能。而本实施例中并不限定推理加速引擎的部署位置,推理加速引擎可部署在云服务器上,当然也可部署于其它存在推理加速需求的位置上,例如,企业机房等。目前,推理加速引擎可基于iaas(infrastructure as a service,即基础设施即服务)资源,优化各种人工智能(artificial intelligence,ai)主流计算框架搭建的推理模型,能显著提升推理性能。推理加速的本质是异构加速,可理解为将推理工作交由用于推理加速的硬件资源(也可称为异构加速器件)执行,而不再由cpu执行,这是由于这类硬件资源与cpu相比,具有更适合执行推理工作的硬件及软件属性。本实施例中,用于推理加速的硬件资源可包括但不限于gpu(graphicsprocessing unit,图形处理器)或npu(neuralnetworks process units,神经网络处理单元)等,本实施例对此不做限定。
47.本实施例中,将推理模型运行期间在各个网络层上的运算操作描述为推理操作,这里的网络层可包括但不限卷积层、池化层等,推理模型的实质是一种神经网络模型,在此对神经网络模型的基础知识不做过多说明。值得说明的是,本实施例中认为推理模型中的推理操作并不是全部都需要加速的,而本实施例中关注的则主要是待加速的推理操作,也即是那些需要在用于推理加速的硬件资源上所执行的推理操作。承接前文中推理模型可采用的各类推理机制,这里待加速的推理操作主要可包括用于实施推理机制的那些推理操作,例如,多头注意力计算操作等,本实施例对此不做限定。
48.本实施例中,将用于推理加速的硬件资源上所运行的函数描述为加速算子。例如,对于gpu来说,其上运行的函数为核函数(kernel),这样,本实施例中的加速算子的一种典型实现形式可以是kernel。当然,本实施例中的加速算子还可采用与其它类型的硬件资源相适配的实现形式,而并不限于此。
49.图2为本技术一示例性实施例提供的一种推理加速方法的逻辑示意图。参考图2,本实施例中,可提供多种不同的加速算子,加速算子可在用于推理加速的硬件资源上实现推理模型中的推理操作,以实现对推理操作的加速,应当理解的是,这种加速是相对于该推理操作在cpu上执行的速度而言的,也即是,在用于推理加速的硬件资源上执行推理操作的速度会高于在cpu上执行该推理操作的速度。
50.本实施例中,不同的加速算子中的加速策略不同,因此,不同的加速算子所适用的加速需求将不同,为此,本实施例提出了一种全新地为推理操作匹配加速算子的技术构思。
51.参考图1,在步骤100中,可在推理模型运行期间,响应于推理指令,确定目标推理操作在本轮推理过程中对应的加速需求参数值。其中,加速需求参数值用于指示目标推理操作所需的加速算子应具备的属性。实际应用中,推理指令中可包含针对推理模型的整体加速需求描述信息,而推理模型中的各个推理操作在本轮推理过程中多对应的加速需求参数值则可基于该整体加速需求描述信息而被确定出。该过程中涉及到的相关逻辑可预置在推理模型中,也即是,有推理模型自身确定出其包含的各个推理操作在本轮推理过程中各自所对应的加速需求参数值,这种情况下,在步骤100中,可从推理模型中获取到目标推理操作在本轮推理过程中对应的加速需求参数值。当然,在另一些可能的设计中,也可由本实施例提供的推理加速方法来实施前述过程中涉及到的相关逻辑,从而获得目标推理操作在本轮推理过程中对应的加速需求参数值,本实施例对此不做限定。
52.其中,推理模型运行期间可接收到多个推理指令,单个推理指令可触发一轮推理过程,而在一轮推理过程中,推理模型中包含的所有推理操作都将被触发执行。为了便于技术方案的说明,本实施例中,从步骤100开始,以推理模型中的目标推理操作为例进行推理加速方案的阐述,其中,目标推理操作可以是推理模型包含的任意一个待加速的推理操作。另外,应当理解的是,推理模型中其它待加速的推理操作也可按照同样的推理加速逻辑而实现推理加速,从而保证本轮推理过程中的加速性能。
53.本实施例中,开拓性地提出在推理模型运行期间,也即是推理执行阶段中,响应于推理指令而为推理模型中各个待加速的推理操作分别确定出在本领推理过程中所对应的加速需求参数值。而随着推理需要的不断多样化,以目标推理操作为例,目标推理操作在不同推理过程中对应的加速需求参数值是不完全相同的,可能是动态变化的。
54.举例来说,在推理模型的推理功能为聊天功能的情况下,本次推理指令中的查询语句可能是“今天周几?”,而下一次推理指令中的查询语句则可能是“请推荐附近5公里内的3家高人气餐厅”,显然,这两次推理指令中的查询语句完全不同,这将导致目标推理操作在这两轮推理过程中对应的加速需求参数值不同。
55.正如前文提及的,不同加速算子所使用的加速需求是不同的,因此,本实施例提出,在步骤101中,可查找与加速需求参数值相匹配的目标加速算子。由于目标推理操作对应的加速需求参数值可能是动态变化的,因此,在每轮推理过程中,实时地为目标推理操作查找与其加速需求参数值相匹配的目标加速算子,可实现推理操作与加速算子之间的自适应匹配,在加速需求参数值动态变化的情况下,保证为目标推理操作在每一轮推理过程中所匹配到加速算子都是合适的。
56.在此基础上,参考图1,在步骤102中,可在本轮推理过程中,为目标推理操作调用目标加速算子,以在用于推理加速的硬件资源上执行所述目标推理操作。
57.参考图2,在步骤102中,cpu可在本轮推理过程中,为推理模型中各个待加速的推理操作分别调用匹配到的合适的加速算子,从而可利用这些加速算子将各个待加速的推理操作转由异构的硬件资源上执行,从而实现本轮推理过程的加速,这样,在每轮推理过程中,每个待加速的推理操作都可得带应用的加速,这保证了推理加速性能的稳定性。
58.值得说明的是,本实施例中提供的推理加速方法是推理加速引擎中的一项创新功能,该创新功能可与推理加速引擎中的其它功能相互承接、相互配合,例如,推理加速引擎中可对待加速的推理操作进行融合,将融合后的推理操作作为本实施例中的目标推理操作,以减少对加速算子的启动次数等,本实施例对推理加速引擎中的其它加速功能不做限定。
59.综上,本实施例中,提出在推理执行阶段中,响应于推理指令而为推理模型中各个待加速的推理操作分别确定在本轮推理过程中所对应的加速需求参数值,这样,可实时地感知到各个推理操作所对应加速需求参数值在推理执行阶段中的动态变化情况,从而可跟随加速需求参数的动态变化而自适应地为各个推理操作匹配到合适的加速算子,保证了推理模型中的各个待加速的推理操作在每一轮推理过程中均可匹配到合适的加速算子。与传统的在推理初始化阶段进行算子匹配并固化到推理执行阶段的方案相比,可实现加速算子的自适应匹配,从而支持推理执行阶段中复杂多变的推理指令,进而保证每一轮推理过程中的推理加速性能。
60.在上述或下述实施例中,可采用多种实现方式为目标推理操作查找本轮推理过程中所匹配的目标加速算子。
61.在一种可选的实现方式中:可基于加速算子库中各个加速算子各自对应的属性描述信息,从加速算子库中查找具有符合加速需求参数值的属性描述信息的加速算子,作为目标加速算子。
62.在该实现方式中,构建加速算子时即可配置好加速算子的属性描述信息。属性描述信息可用于描述加速算子的使用限制情况,也即是,可用于描述加速算子在什么样的加速需求下所发挥的加速效果更优。这是由于,不同加速算子内的加速策略不同,其所支持的加速需求自然也不尽相同。而在前述步骤100中为目标推理操作确定出的加速需求参数值恰好可以反映出目标推理操作在本轮推理过程中的加速需求,基于此,在该实现方式中,即可通过比对加速需求参数值和属性描述信息的方式,来为目标推理操作选出合适的目标加速算子。
63.在一种示例性的匹配方案中:可基于目标推理操作对应的加速需求参数值,构建查询键值key,并基于加速算子的标识与查询键值key之间的映射关系,而查找到目标推理操作相匹配的目标加速算子。其中,可预先在各个加速算子的属性描述信息中提取与加速需求参数值相应的各个参数下的取值,并为各个加速算子分别生成对应的查询键值key。实际应用中,可采用散列表hashmap来实现前述的映射关系,相应地,查询键值key可采用哈希键值hashkey,这样,可高效地俄日目标推理操作匹配到合适的加速算子。
64.随着加速算子的不断丰富和发展,发明人在研究过程中发现,加速算子的属性描述信息中的部分参数不再被配置为单个的数据值,而是有可能被配置为数据范围,例如,部分加速算子不再仅支持单种序列长度,而是可支持通用的序列长度范围。这就导致按照前述示例性的匹配方案进行匹配时,会出现匹配不到正确的加速算子的问题。
65.为此,本实施例提出了一种改进的匹配方案,在改进的匹配方案中提出,加速需求参数值可包含目标推理操作在第一类参数下所需的参数值和目标推理操作在第二类参数下所需的参数值,其中,第一类参数在各个加速算子的属性描述信息中均配置为数据值,第二类参数在单个加速算子的属性描述信息中配置为数据值或数据范围。基于此,在改进的匹配方案中:
66.可从加速算子库中,查找具有符合目标推理操作在第一类参数下所需的参数值的属性描述信息的加速算子,作为候选加速算子;
67.可从候选加速算子中,查找具有符合目标推理操作在第二类参数下所需的参数值的属性描述信息的加速算子,作为目标加速算子。
68.在该改进的匹配方案中,将匹配过程分为两个环节,在第一个环节中可基于第一类参数而从加速算子库中初选出一部分加速算子,作为候选加速算子;而在第二个环节中,则可基于第二类参数从候选加速算子中筛选出最合适的加速算子,作为目标加速算子。
69.其中,对于上述的第一个环节,还沿用前述的示例性的匹配方案中的匹配构思:按照目标推理操作在第一类参数下所需的参数值,构建目标推理操作对应的查询键值key;基于加速算子的标识与查询键值key之间的映射关系,确定目标推理操作对应的加速算子的标识,以查找到候选加速算子。也即是,在第一个环节中,仅以目标推理操作在第一类参数下所需的参数值作为筛选依据,从而可从加速算子库中筛选出符合该筛选依据的候选加速
算子。同样,在第一个环节中,查询键值key可采用哈希键值hashkey,加速算子的标识与查询键值key之间的映射关系则可采用散列表hashmap进行表征。
70.而对于上述的第二个环节,则可基于第二类参数评价候选加速算子与目标推理操作的匹配性。可选地,可确定属性描述信息中第二类参数配置为数据值且该数据值与目标推理操作在第二类参数下所需的参数值一致的第一候选加速算子,为目标加速算子。正如前文提及的,可能存在一些加速算子的属性描述信息中,第二类参数被配置为数据范围,为此,在第二个环节中,还可增加如下判断逻辑:若不存在符合上述要求的第一候选加速算子,则确定属性描述信息中第二类参数配置为数据范围且该数据范围包括目标推理操作在第二类参数下所需的参数值的第二候选加速算子,为目标加速算子。
71.实际应用中,可在单个候选加速算子下进行上述两个维度的评价,以确定被评价的候选加速算子是否可作为目标加速算子。
72.以任意一个候选加速算子为例:首先判断其下的第二类参数是否配置为数据值且数据值与目标推理操作在第二类参数下所需的参数值一致,如果是,可直接确定为目标加速算子;如果不是,则可继续判断其下的第二类参数是否配置为数据范围,如果是,则可也确定为目标加速算子。而且为了保证目标加速算子的唯一性,该判断逻辑中,还可在同时存在多个符合判断逻辑的加速算子时,从中选择第二类参数配置为数据值的加速算子,作为最终的目标加速算子。最后的优选机制主要是考虑到第二类参数配置为数据值的加速算子相较于第二类参数配置为数据范围的加速算子来说,加速策略更加专注,加速性能更好。
73.另外,为了更好地支持上述的两个匹配环节,在改进的匹配方案中,还可采用两层存储的方式来存储属性描述信息,针对属性描述信息中的第一类参数,可采用前述的映射关系进行存储,而对于属性描述信息中的第二类参数则可单独存储。实际应用中,可采用散列表hashmap-数组array的两层存储结构,其中,散列表可用于存储加速算子的标识与查询键值key之间的映射关系,而数组array则可用于存储各个加速算子的第二类参数。
74.进一步,在改进的匹配方案中,属性描述信息中还可采用预设标识指代数据范围。也即是,在加速算子的第二类参数配置为数据范围的情况下,该加速算子的属性描述信息中的第二类参数可记录为预设标识。另外,实际应用中,数据范围通常是通用范围,也即是可涵盖第二类参数下的任意参数值。基于此,在前述第二个环节的判断逻辑中,若在候选加速算子对应的属性描述信息中第二类参数为预设标识且不存在其它候选加速算子的第二类参数配置为与目标推理操作在第二类参数下所需的参数值一致的数据值,可将该候选加速算子确定为目标加速算子。其中,在该候选加速算子对应的属性描述信息中第二类参数为预设标识,即表示该候选加速算子的第二类参数配置为数据范围。
75.这样,通过预设标识的指代,不再需要进行数据范围的分析,这可大大降低判断逻辑所消耗的计算量。
76.综上,本实施例中,重新设计了加速算子的属性描述信息中第二类参数的表示方式、改进了属性描述信息的存储结构、改进了加速算子的匹配流程,从而可实现更多类型加速算子的表示、存储和查优,从而提升对推理模型的推理加速性能。
77.图3为本技术一示例性实施例提供的一种应用场景的示意图。参考图3,推理模型采用mha机制,在推理模型运行期间,接收到一次推理指令,在该推理指令中指定了整体的头尺寸headsize=160,所输入的查询语句的序列长度seqlength=1024,该推理指令可触
发本轮推理过程。
78.其中,推理模型中可包含多个mha操作,以其中的操作a为例,可确定操作a在本轮推理过程中的加速需求参数值headsize=80,seqlength=1024,应当理解的是,操作a在上一轮或下一轮推理过程中的加速需求参数值可能与此不同。
79.在此基础上,可将headsize=80存储到哈希键值hashkey中,并可通过hashkey在散列表hashmap中执行查找(hashmap中包含加速算子id与哈希键值hashkey之间的映射关系,hashmap中的哈希键值hashkey也是根据各个加速算子所支持的headsize而预先构建的),哈希查询是非常快的,因此,在该匹配环节中,可快速地从加速算子库中为操作a筛选出支持headsize=80的各个候选加速算子。参考图3,经过该匹配环节后,筛选出的候选加速算子可能是3个,分别为加速算子a,加速算子b和加速算子c。
80.在上述的第一个匹配环节完成后,继续使用seqlength=1024这一加速需求参数值执行第二个匹配环节,参考图3,加速算子a所支持的seqlength=512,加速算子b所支持的seqlength=1024,加速算子c所支持的seqlength=[128,1024],这是一个通用的序列尺寸。基于此,在第二个匹配环节中,可针对各个候选加速算子执行以下判断逻辑:首先判断其下的seqlength是否为数据值且数据值是否等于1024,如果是,可直接确定为目标加速算子;如果不是,则可继续判断其下的seqlength是否为预设标识,如果是,则可也确定为目标加速算子。而且如果同时存在多个符合判断逻辑的加速算子,则从中选择seqlength配置为数据值的加速算子,作为最终的目标加速算子。
[0081]
经过上述判断逻辑,可选出加速算子b作为操作a在本轮推理过程中所匹配的目标加速算子。
[0082]
而若操作a对应的seqlength=128,则经过上述判断逻辑,将选出加速算子c作为操作a在本轮推理过程中所匹配的目标加速算子。
[0083]
可知,本实施例提供的推理加速方法,可在推理执行阶段为推理模型中的各个待加速的推理操作自适应地匹配到合适的加速算子,从而可支持推理执行阶段中推理操作动态变化的加速需求,保证每轮推理过程中都可获得足够好的推理加速性能。
[0084]
需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的参数类型、候选算子等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0085]
图4为本技术另一示例性实施例提供的一种计算设备的结构示意图。如图4所示,该计算设备包括:存储器40、处理器41以及通信组件42。
[0086]
处理器41,与存储器40耦合,用于执行存储器40中的计算机程序,以用于:
[0087]
在推理模型运行期间,响应于推理指令,确定目标推理操作在本轮推理过程中对应的加速需求参数值;
[0088]
查找与所述加速需求参数值相匹配的目标加速算子;
[0089]
在本轮推理过程中,为所述目标推理操作调用所述目标加速算子,以对所述目标推理操作进行加速;
[0090]
其中,所述目标推理操作为所述推理模型中包含的任一待加速的推理操作。
[0091]
在一可选实施例中,处理器41在查找与所述加速需求参数值相匹配的目标加速算子时,具体可用于:
[0092]
基于加速算子库中各个加速算子各自对应的属性描述信息,从所述加速算子库中查找具有符合所述加速需求参数值的属性描述信息的加速算子,作为所述目标加速算子。
[0093]
在一可选实施例中,所述加速需求参数值包含所述目标推理操作在第一类参数下所需的参数值和所述目标推理操作在第二类参数下所需的参数值,所述第一类参数在各个加速算子的属性描述信息中均配置为数据值,所述第二类参数在单个加速算子的属性描述信息中配置为数据值或数据范围;处理器41在从所述加速算子库中查找具有符合所述加速需求参数值的属性描述信息的加速算子,作为所述目标加速算子时,具体可用于:
[0094]
从所述加速算子库中,查找具有符合所述目标推理操作在第一类参数下所需的参数值的属性描述信息的加速算子,作为候选加速算子;
[0095]
从所述候选加速算子中,查找具有符合所述目标推理操作在第二类参数下所需的参数值的属性描述信息的加速算子,作为所述目标加速算子。
[0096]
在一可选实施例中,处理器41在从所述加速算子库中,查找具有符合所述目标推理操作在第一类参数下所需的参数值的属性描述信息的加速算子,作为候选加速算子时,具体可用于:
[0097]
按照所述目标推理操作在第一类参数下所需的参数值,构建所述目标推理操作对应的查询键值key;
[0098]
基于加速算子的标识与查询键值key之间的映射关系,确定所述目标推理操作对应的加速算子的标识,以查找到所述候选加速算子。
[0099]
在一可选实施例中,处理器41在从所述候选加速算子中,查找具有符合所述目标推理操作在第二类参数下所需的参数值的属性描述信息的加速算子,作为所述目标加速算子时,具体可用于:
[0100]
确定属性描述信息中第二类参数配置为数据值且所述数据值与所述目标推理操作在第二类参数下所需的参数值一致的第一候选加速算子,为所述目标加速算子。
[0101]
在一可选实施例中,处理器41还可用于:
[0102]
若不存在所述第一候选加速算子,则确定属性描述信息中第二类参数配置为数据范围且所述数据范围包括所述目标推理操作在第二类参数下所需的参数值的第二候选加速算子为所述目标加速算子。
[0103]
在一可选实施例中,在属性描述信息中采用预设标识指代数据范围,处理器41还可用于:
[0104]
若在所述第一候选加速算子对应的属性描述信息中第二类参数为预设标识,则确定所述第一候选加速算子的第二类参数配置为数据范围。
[0105]
在一可选实施例中,所述目标推理操作包括多头注意力计算操作,所述第一类参数包括头尺寸headsize,所述第二类参数包括序列长度seq-length。
[0106]
在一可选实施例中,所述查询键值key采用哈希键值hashkey,所述加速算子的标识与查询键值key之间的映射关系采用散列表hashmap进行表征。
[0107]
进一步,如图4所示,该计算设备还包括:电源组件43等其它组件。图4中仅示意性
给出部分组件,并不意味着计算设备只包括图4所示组件。
[0108]
值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
[0109]
相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
[0110]
上述图4中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0111]
上述图4中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0112]
上述图4中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
[0113]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0114]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0115]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0116]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0117]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0118]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0119]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
1.一种推理加速方法,包括:在推理模型运行期间,响应于推理指令,确定目标推理操作在本轮推理过程中对应的加速需求参数值;查找与所述加速需求参数值相匹配的目标加速算子;在本轮推理过程中,为所述目标推理操作调用所述目标加速算子,以对所述目标推理操作进行加速;其中,所述目标推理操作为所述推理模型中包含的任一待加速的推理操作。2.根据权利要求1所述的方法,查找与所述加速需求参数值相匹配的目标加速算子,包括:基于加速算子库中各个加速算子各自对应的属性描述信息,从所述加速算子库中查找具有符合所述加速需求参数值的属性描述信息的加速算子,作为所述目标加速算子。3.根据权利要求2所述的方法,所述加速需求参数值包含所述目标推理操作在第一类参数下所需的参数值和所述目标推理操作在第二类参数下所需的参数值,所述第一类参数在各个加速算子的属性描述信息中均配置为数据值,所述第二类参数在单个加速算子的属性描述信息中配置为数据值或数据范围;从所述加速算子库中查找具有符合所述加速需求参数值的属性描述信息的加速算子,作为所述目标加速算子,包括:从所述加速算子库中,查找具有符合所述目标推理操作在第一类参数下所需的参数值的属性描述信息的加速算子,作为候选加速算子;从所述候选加速算子中,查找具有符合所述目标推理操作在第二类参数下所需的参数值的属性描述信息的加速算子,作为所述目标加速算子。4.根据权利要求3所述的方法,从所述加速算子库中,查找具有符合所述目标推理操作在第一类参数下所需的参数值的属性描述信息的加速算子,作为候选加速算子,包括:按照所述目标推理操作在第一类参数下所需的参数值,构建所述目标推理操作对应的查询键值;基于加速算子的标识与查询键值之间的映射关系,确定所述目标推理操作对应的候选加速算子。5.根据权利要求3所述的方法,从所述候选加速算子中,查找具有符合所述目标推理操作在第二类参数下所需的参数值的属性描述信息的加速算子,作为所述目标加速算子,包括:确定属性描述信息中第二类参数配置为数据值且所述数据值与所述目标推理操作在第二类参数下所需的参数值一致的第一候选加速算子为所述目标加速算子。6.根据权利要求5所述的方法,还包括:若不存在所述第一候选加速算子,则确定属性描述信息中第二类参数配置为数据范围且所述数据范围包括所述目标推理操作在第二类参数下所需的参数值的第二候选加速算子为所述目标加速算子。7.根据权利要求6所述的方法,在属性描述信息中采用预设标识指代数据范围,所述方法还包括:若在加速算子对应的属性描述信息中第二类参数为预设标识,则确定加速算子的第二类参数配置为数据范围。
8.根据权利要求3所述的方法,所述目标推理操作包括多头注意力计算操作,所述第一类参数包括头尺寸,所述第二类参数包括序列长度。9.根据权利要求4所述的方法,所述查询键值采用哈希键值,所述加速算子的标识与查询键值之间的映射关系采用散列表进行表征。10.一种计算设备,包括存储器、处理器和通信组件;所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于执行权利要求1-9任一项所述的推理加速方法。11.一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-9任一项所述的推理加速方法。

技术总结
本申请实施例提供一种推理加速方法、设备及存储介质。提出在推理执行阶段中,响应于推理指令而为推理模型中各个待加速的推理操作分别确定在本轮推理过程中所对应的加速需求参数值,这样,可实时地感知到各个推理操作所对应加速需求参数值在推理执行阶段中的动态变化情况,从而可跟随加速需求参数的动态变化而自适应地为各个推理操作匹配到合适的加速算子,保证了推理模型中的各个待加速的推理操作在每一轮推理过程中均可匹配到合适的加速算子。与传统的在推理初始化阶段进行算子匹配并固化到推理执行阶段的方案相比,可实现加速算子的自适应匹配,从而支持推理执行阶段中复杂多变的推理指令,进而保证每一轮推理过程中的推理加速性能。的推理加速性能。的推理加速性能。


技术研发人员:李克森 赵大川 游亮
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.05.22
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐