一种动态张量编译优化方法、装置、电子设备及介质

文档序号:36102289发布日期:2023-11-21 19:29阅读:58来源:国知局
一种动态张量编译优化方法

本申请涉及深度学习算法领域,具体而言,涉及一种动态张量编译优化方法、装置、电子设备及介质。


背景技术:

1、近年来,深度学习应用对硬件算力的需求呈指数增长。gpu、tpu和专用领域加速器作为硬件平台在学术界和工业界不断提高着深度学习应用的性能。然而,为实现硬件固有的性能,只能将深度学习算法在这个硬件上进行微调。例如,硬件厂商面向深度学习应用手工开发的算子库,如cublas,cudnn,cutlass。由于算法和硬件更迭速度较快,算子库的开发和维护不仅成本高,而且开发时间较长。

2、深度学习编译器(tvm,tc,halide,mlir)可以为加速器实现高性能的深度学习算法。基于搜索的深度学习编译器,如ansor,可以自动地优化一些张量程序以获取最佳性能。然而,张量程序的性能是形状敏感的,如果张量形状不能在编译时获得,只能在运行时获得,就无法保证所有可能形状的张量都能有效执行。例如,在计算机视觉算法(vit)中,输入特想可能有不同的分辨率;在语音识别算法中(deepspeech2),输入的语音长度是不可预测的;在自然语言处理算法中(bert),输入的句子可能从1个词到数百个词不等。这就是所谓的动态形状张量。对于这种动态形状的输入,当前的编译器只能选择现有算子库中大于当前形状的最小张量,并对超出输入形状的部分进行数据填充,采用这种填充方式会导致严重的性能下降。尽管自动调优器可以自动优化张量程序,但是为所有可能存在的形状执行优化的经济代价是高昂的。


技术实现思路

1、有鉴于此,本申请的目的在于提供一种动态张量编译优化方法、装置、电子设备及介质,基于硬件资源信息以提高硬件的自适应能力,提高深度学习模型中动态张量编译优化的效率,节约优化时间以及经济代价。

2、本申请实施例提供的一种动态张量编译优化方法,所述方法包括:

3、在目标模型部署在目标硬件平台之前,获取目标硬件平台的多种硬件资源参数;其中,所述硬件资源参数包括线程块中的最大线程数、线程簇中的线程数、缓存容量;

4、根据目标硬件平台的硬件资源参数,从预先构建的微内核库中,筛选出符合预设微内核条件的多个候选微内核;所述预设微内核条件是至少根据一种硬件资源参数设定的;

5、将筛选出的多个候选微内核输入至预先训练好的目标微内核评估模型,通过所述目标微内核评估模型预测目标模型中动态张量使用每一候选微内核时所述目标模型的性能,得到每一候选微内核的性能分值;其中,所述目标微内核评估模型是基于目标硬件平台训练得到的;

6、筛选出性能分值最高的候选微内核作为目标模型的动态张量的目标微内核,以得到目标模型中使用所述目标微内核的动态张量。

7、在一些实施例中,还提供本申请实施例提供的一种动态张量编译优化装置,所述装置包括:

8、获取模块,用于在目标模型部署在目标硬件平台之前,获取目标硬件平台的多种硬件资源参数;其中,所述硬件资源参数包括线程块中的最大线程数、线程簇中的线程数、缓存容量;

9、第一筛选模块,用于根据目标硬件平台的硬件资源参数,从预先构建的微内核库中,筛选出符合预设微内核条件的多个候选微内核;所述预设微内核条件是至少根据一种硬件资源参数设定的;

10、预测模块,用于将筛选出的多个候选微内核输入至预先训练好的目标微内核评估模型,通过所述目标微内核评估模型预测目标模型中动态张量使用每一候选微内核时所述目标模型的性能,得到每一候选微内核的性能分值;其中,所述目标微内核评估模型是基于目标硬件平台训练得到的;

11、第二筛选模块,用于筛选出性能分值最高的候选微内核作为目标模型的动态张量的目标微内核,以得到目标模型中使用所述目标微内核的动态张量。

12、在一些实施例中,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行所述的动态张量编译优化方法的步骤。

13、在一些实施例中,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行所述的动态张量编译优化方法的步骤。

14、本申请提出一种动态张量编译优化方法、装置、电子设备及介质,所述方法在目标模型部署在目标硬件平台之前,获取目标硬件平台的多种硬件资源参数;根据目标硬件平台的硬件资源参数,从预先构建的微内核库中,筛选出符合预设微内核条件的多个候选微内核;所述预设微内核条件是至少根据一种硬件资源参数设定的;将筛选出的多个候选微内核输入至预先训练好的目标微内核评估模型,通过所述目标微内核评估模型预测目标模型中动态张量使用每一候选微内核时所述目标模型的性能,得到每一候选微内核的性能分值;其中,所述目标微内核评估模型是基于目标硬件平台训练得到的;筛选出性能分值最高的候选微内核作为目标模型的动态张量的目标微内核,以得到目标模型中使用所述目标微内核的动态张量;这样,根据多种硬件资源信息选择出硬件友好的微内核候选集作为搜索空间,从而合理地压缩搜索空间,有效地减少调优时间;然后通过硬件资源敏感的代价模型用来评价不同微内核的硬件的资源利用率水平和访存效率,准确从微内核候选集中挑选出匹配硬件资源的微内核,提高了动态张量的调优效果。



技术特征:

1.一种动态张量编译优化方法,其特征在于,所述方法包括:

2.根据权利要求1所述的动态张量编译优化方法,其特征在于,预设微内核条件包括:候选微内核的线程数是线程簇中的线程数的整数倍、候选微内核的线程数小于或等于线程块中最大线程数、候选微内核的数据访问总量是缓存容量的整数因子;

3.根据权利要求1所述的动态张量编译优化方法,其特征在于,通过所述目标微内核评估模型预测目标模型中动态张量使用每一候选微内核时所述目标模型的性能,得到每一候选微内核的性能分值,包括:

4.根据权利要求3所述的动态张量编译优化方法,其特征在于,预测动态张量使用该候选微内核时的资源利用率系数,包括:

5.根据权利要求3所述的动态张量编译优化方法,其特征在于,基于动态张量使用该候选微内核对目标访问平台的多种内存访问时间和所需的完整执行时间,确定动态张量使用该候选微内核的内存访问效率系数,是通过以下公式(2)确定的:

6.根据权利要求3所述的动态张量编译优化方法,其特征在于,所述目标微内核评估模型,是基于以下方法训练得到的:

7.根据权利要求6所述的动态张量编译优化方法,其特征在于,所述源微内核评估模型为提升树结构;

8.一种动态张量编译优化装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任意一项所述的动态张量编译优化方法的步骤。

10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的动态张量编译优化方法的步骤。


技术总结
本申请提供了一种动态张量编译优化方法、装置、电子设备及介质,所述方法在目标模型部署在目标硬件平台之前,获取目标硬件平台的多种硬件资源参数;根据目标硬件平台的硬件资源参数筛选出符合预设微内核条件的多个候选微内核;通过目标微内核评估模型预测目标模型中动态张量使用每一候选微内核时所述目标模型的性能,得到每一候选微内核的性能分值;筛选出性能分值最高的候选微内核作为目标模型的动态张量的目标微内核,以得到目标模型中使用所述目标微内核的动态张量;这样提高了动态张量的调优效果和效率。

技术研发人员:王锐,穆鹏宇,刘轶,钱德沛
受保护的技术使用者:北京航空航天大学杭州创新研究院
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1