本技术涉及并行计算,尤其涉及一种基于多种加速卡的异构混合加速方法、设备及介质。
背景技术:
1、目前,随着人工智能(ai)技术的飞速发展和广泛应用,从深度学习、机器学习到大数据处理,各个领域对高性能计算的需求急剧增长,这对算力行业提出了前所未有的挑战。ai算法的复杂性和数据量的爆炸性增长,推动了对更高效、更强大的计算能力的需求。然而,面对这一汹涌而至的需求浪潮,全球各大芯片制造商尽管在不断努力提升产能和优化设计,但仍难以满足市场对所有类型加速硬件的即时和全面供应。
2、同时,在实际应用场景中,用户往往面临着多样化的计算任务需求,这些任务可能涉及图像处理、自然语言处理、科学计算等多个领域,每种任务对计算资源的要求各不相同。因此,用户环境中常常并存着多种不同形态和架构的加速计算卡,包括但不限于gpu(图形处理单元)、fpga(现场可编程门阵列)、tpu(张量处理单元)以及各类专用ai加速芯片等。这些异构加速卡各有其独特的优势和适用场景,但同时也带来了资源整合与协同工作的复杂性。
3、针对上述背景,如何在有限的硬件资源和多样化的用户需求之间找到平衡点,实现高效、灵活的算力部署,成为了亟待解决的问题。传统的单一类型加速卡方案往往无法充分利用现有硬件资源,导致算力浪费或性能瓶颈。
技术实现思路
1、本技术实施例提供了一种基于多种加速卡的异构混合加速方法、设备及介质,用以解决上述技术问题。
2、一方面,本技术实施例提供了一种基于多种加速卡的异构混合加速方法,包括:
3、将深度学习模型中每个算子与对应目标平台的kernel组合作为初始情况,并将kernel组合卸载至硬件上进行执行;
4、将所述kernel组合的得分情况作为代价模型的初始代价,并通过梯度下降法,对所述代价模型进行寻优,以确定是否为极值;
5、将所述kernel组合对应的极值与历史记录进行比较,确定是否更新调优记录,以确定对应的目标调优记录;
6、根据所述目标调优记录切分所述深度学习模型解析的计算子图,并将切分后的所述深度学习模型卸载至对应的硬件设备进行推理,实现异构混合加速。
7、在本技术的一种实现方式中,将深度学习模型中每个算子与对应目标平台的kernel组合作为初始情况之前,所述方法还包括:
8、接收输入的深度学习模型,并对所述深度学习模型的模型结构对应的计算图进行解析;
9、确定对应的算子调用关系以及每个算子对应的权重系数,并将所述算子调用关系和所述权重系数存储至哈希表中;
10、根据所述哈希表中的算子调用关系,对所述计算图进行切分,得到切分后的计算子图;
11、确定所述计算子图对应的算子,以及每个算子对应的属性标记信息,并根据属性标记信息,确定每个算子与对应目标平台的kernel组合。
12、在本技术的一种实现方式中,将所述kernel组合的得分情况作为代价模型的初始代价,具体包括:
13、根据计算时间、硬件算力情况和数据传输时间,建立代价模型,并分别确定所述计算时间、所述硬件算力情况和所述数据传输时间对应的权重系数;
14、记录所述kernel组合中每个kernel的执行时间和得分情况,并将所述kernel组合的得分情况作为所述代价模型的初始代价。
15、在本技术的一种实现方式中,代价模型的具体计算方式为:
16、
17、其中,表示计算时间,表示所述计算时间对应的幂次,表示硬件算力情况,表示所述硬件算力情况对应的幂次,表示数据传输时间,表示所述数据传输时间对应的幂次,表示所述计算时间对应的权重系数,表示所述硬件算力情况对应的权重系数,表示所述数据传输时间对应的权重系数。
18、在本技术的一种实现方式中,通过梯度下降法,对所述代价模型进行寻优,具体包括:
19、基于所述代价模型的初始代价,计算所述代价模型对应的模型得分,并计算所述代价模型对应的梯度函数;
20、在梯度大于预设最小阈值的情况下,在预先构建的算子库中选取初始kernel组合,并按照梯度反方向,对所述初始kernel组合进行反向迭代;
21、在梯度等于所述预设最小阈值的情况下,停止迭代,并确定代价模型得分的局部最小值。
22、在本技术的一种实现方式中,将所述kernel组合对应的极值与历史记录进行比较,确定是否更新调优记录,以确定对应的目标调优记录,具体包括:
23、获取历史缓存调优记录,并将所述代价模型得分的局部最小值与所述历史缓存调优记录进行比较;
24、在所述局部最小值小于所述历史缓存调优记录的情况下,对所述历史缓存调优记录进行更新,并确定对应的目标调优记录;
25、在所述局部最小值大于所述历史缓存调优记录的情况下,继续确定所述局部最小值是否满足当前阈值;
26、若否,则将所述代价模型的参数调整至大于所述局部最小值,若是,则确定所述历史缓存调优记录为目标调优记录。
27、在本技术的一种实现方式中,根据所述目标调优记录切分所述深度学习模型解析的计算子图,并将切分后的所述深度学习模型卸载至对应的硬件设备进行推理,实现异构混合加速,具体包括:
28、根据所述目标调优记录中的目标策略,对所述深度学习模型解析的计算子图进行切分,并确定切分后每个算子对应的硬件设备;
29、将切分后的每个算子对应至相应的硬件设备,并将切分后每个算子的硬件信息存储至所述深度学习模型中;其中,所述硬件信息用于表示算子与硬件设备之间的算子调用关系;
30、接收待处理算子,并根据所述深度学习模型中硬件信息对应的算子调用关系,确定所述待处理算子对应的目标硬件设备;
31、将所述深度学习模型卸载至所述待处理算子对应的目标硬件设备,以对所述待处理算子进行推理,实现异构混合加速。
32、在本技术的一种实现方式中,将输入模型中每个算子对应目标平台的kernel组合作为初始情况之前,所述方法还包括:
33、对多种不同形态加速卡对应的接口进行统一,并对统一后的所有接口进行封装;
34、获取每个目标平台对应的属性标记信息,并将所述属性标记信息添加至对应的目标平台。
35、另一方面,本技术实施例还提供了一种基于多种加速卡的异构混合加速设备,所述设备包括:
36、至少一个处理器;
37、以及,与所述至少一个处理器通信连接的存储器;
38、其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的一种基于多种加速卡的异构混合加速方法。
39、另一方面,本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被执行时,实现如上述的一种基于多种加速卡的异构混合加速方法。
40、本技术实施例提供了一种基于多种加速卡的异构混合加速方法、设备及介质,至少包括以下有益效果:
41、通过确定算子与硬件kernel之间的绑定情况,能够直接获取算子在特定硬件上的实际性能数据,为后续的优化提供准确的基准;通过代价模型和梯度下降法进行优化,能够高效地搜索出最优的算子与硬件组合策略,使得深度学习模型在异构硬件环境下的性能得到最大化提升;通过持续比较和更新调优记录,确保了每次优化都能基于历史最优结果进行,从而避免了重复劳动和可能的性能倒退,保证了优化过程的持续性和有效性;通过基于调优记录的子图切分和异构部署,能够充分利用不同硬件设备的优势,实现模型推理的高效协同和性能最大化,提高了整体系统的计算效率和响应速度,实现了高效的异构混合加速,从而在实际应用中提供更快的响应速度和更好的用户体验。
1.一种基于多种加速卡的异构混合加速方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种基于多种加速卡的异构混合加速方法,其特征在于,将深度学习模型中每个算子与对应目标平台的kernel组合作为初始情况之前,所述方法还包括:
3.根据权利要求1所述的一种基于多种加速卡的异构混合加速方法,其特征在于,将所述kernel组合的得分情况作为代价模型的初始代价,具体包括:
4.根据权利要求1所述的一种基于多种加速卡的异构混合加速方法,其特征在于,代价模型的具体计算方式为:
5.根据权利要求1所述的一种基于多种加速卡的异构混合加速方法,其特征在于,通过梯度下降法,对所述代价模型进行寻优,具体包括:
6.根据权利要求5所述的一种基于多种加速卡的异构混合加速方法,其特征在于,将所述kernel组合对应的极值与历史记录进行比较,确定是否更新调优记录,以确定对应的目标调优记录,具体包括:
7.根据权利要求1所述的一种基于多种加速卡的异构混合加速方法,其特征在于,根据所述目标调优记录切分所述深度学习模型解析的计算子图,并将切分后的所述深度学习模型卸载至对应的硬件设备进行推理,实现异构混合加速,具体包括:
8.根据权利要求1所述的一种基于多种加速卡的异构混合加速方法,其特征在于,将输入模型中每个算子对应目标平台的kernel组合作为初始情况之前,所述方法还包括:
9.一种基于多种加速卡的异构混合加速设备,其特征在于,所述设备包括:
10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被执行时,实现如权利要求1-8任一项所述的一种基于多种加速卡的异构混合加速方法。
