基于演化计算与硬件在环反馈的算子Tiling参数确定方法与流程

摘要: 本发明涉及人工智能以及相关,具体地,涉及一种基于演化计算与硬件在环反馈的算子tiling参数确定方法。背景技术:1、在高性能计算领域,算子(operator/k...
基于演化计算与硬件在环反馈的算子Tiling参数确定方法与流程

本发明涉及人工智能以及相关,具体地,涉及一种基于演化计算与硬件在环反馈的算子tiling参数确定方法。

背景技术:

1、在高性能计算领域,算子(operator/kernel)是ai模型训练和推理过程中执行具体数学计算的最小单元,如矩阵乘法(gemm)、注意力机制(attention)、归一化(layernorm)等。算子在硬件上的执行效率高度依赖于tiling(分块)参数的配置—tiling是指将大规模计算任务分割为适合片上缓存处理的小块,并编排这些小块的计算与数据搬运流水线。

2、目前业界在tiling参数配置方面主要依赖人工经验调优法、穷举网格搜索法以及基于代价模型的静态预估法。然而,人工经验调优法需高度依赖系统专家且效率低,穷举网格搜索法的搜索效率较低,基于代价模型的静态预估法受限于模型精度,预估性能与实际性能之间存在显著偏差。

3、基于现有技术存在的问题,亟需一种基于演化计算与硬件在环反馈的算子tiling参数确定方法。

技术实现思路

1、有鉴于此,本文中描述的实施例提供了一种基于演化计算与硬件在环反馈的算子tiling参数确定方法,提高了确定tiling参数的效率。

2、第一方面,根据本公开的内容,提供了一种基于演化计算与硬件在环反馈的算子tiling参数确定方法,包括:

3、根据目标硬件平台的架构参数和目标硬件平台所对应的算子计算模式,确定tiling参数的搜索空间模型,其中,所述架构参数至少包括处理器数量信息、第一缓存容量信息、第二缓存容量信息、内存带宽信息和计算单元类型信息;

4、根据所述搜索空间模型,确定tiling参数所对应的初始候选参数集,其中,所述初始候选参数集包括多组初始候选参数向量;

5、根据各所述初始候选参数向量,确定目标编译文件,并获取所述目标硬件平台运行所述目标编译文件的目标适应度值;

6、根据所述目标硬件平台在各初始候选参数向量下的目标适应度值,基于演化计算策略对所述初始候选参数集进行迭代进化,并在所述搜索空间模型中确定下一组候选参数集,直至满足迭代条件。

7、在本公开一些实施例中,所述根据目标硬件平台的架构参数和目标硬件平台所对应的算子计算模式,确定tiling参数的搜索空间模型,包括:

8、获取目标硬件平台的架构参数和算子计算模式;

9、根据所述目标硬件平台的架构参数和所述目标硬件平台所对应的算子计算模式,确定各tiling参数的维度和约束条件,其中,tiling参数至少包括block尺寸、流水线深度、双缓冲开关、循环展开因子、向量化宽度和片上缓存分配策略,各tiling参数的维度和约束条件组成了搜索空间模型。

10、在本公开一些实施例中,所述根据所述搜索空间模型,确定tiling参数所对应的初始候选参数集,包括:

11、基于贝叶斯优化算法,采用拉丁超方采样在所述搜索空间模型中选取第一目标数量的第一初始候选参数向量;或,

12、基于遗传算法,在所述搜索空间模型中随机选取第二目标数量的第二初始候选参数向量。

13、在本公开一些实施例中,所述根据各所述初始候选参数向量,确定目标编译文件,并获取所述目标硬件平台运行所述目标编译文件的目标适应度值,包括:

14、根据各所述初始候选参数向量,确定算子源码文件;

15、调用目标硬件平台的编译工具对所述算子源码文件进行编译,生成目标编译文件,并发送所述目标编译文件至所述目标编译平台,以通过所述目标硬件平台运行所述目标编译文件;

16、获取所述目标硬件平台运行所述目标编译文件的适应度序列,并根据所述适应度值序列,确定所述目标硬件平台运行所述目标编译文件所对应的目标适应度值。

17、在本公开一些实施例中,所述根据所述适应度值序列,确定所述目标硬件平台运行所述目标编译文件所对应的目标适应度值,包括:

18、根据所述适应度值序列,对所述适应度值序列的适应度值按照由小到大进行排序;

19、选取排序之后适应度值序列的中位数作为所述目标硬件平台运行所述目标编译文件所对应的目标适应度值。

20、在本公开一些实施例中,所述演化计算策略包括贝叶斯优化策略;

21、所述根据所述目标硬件平台在各初始候选参数向量下的适应度值,基于演化计算策略对所述初始候选参数集进行迭代进化,确定下一组候选参数集,包括:

22、以初始候选参数向量-目标适应度值作为观测数据,拟合高斯过程代理模型,其中,所述高斯过程代理模型输出第一候选参数向量的预测均值和预测方差;

23、根据各第一候选参数向量的预测均值、预测方差以及采集函数确定下一组候选参数集。

24、在本公开一些实施例中,所述演化计算策略包括遗传算法;

25、所述根据所述目标硬件平台在各初始候选参数向量下的适应度值,基于演化计算策略对所述初始候选参数集进行迭代进化,确定下一组候选参数集,包括:

26、根据各初始候选参数向量所对应的目标适应度值,按照所述目标适应度值对各初始候选参数向量排序,并从排序后的初始候选参数向量中选取前第一目标数量的初始候选参数向量作为第一候选参数集;

27、基于锦标赛选择机制对所述第一候选参数集进行处理,得到第二候选参数集;

28、基于交叉操作对所述第二候选参数集进行处理,得到第三候选参数集;

29、基于变异操作对所述第三候选参数集进行处理,得到第四候选参数集;

30、基于约束修复操作对所述第四候选参数集进行处理,得到下一组候选参数集。

31、第二方面,根据本公开内容,提供了一种基于演化计算与硬件在环反馈的算子tiling参数确定装置,包括:

32、搜索空间模型确定模块,用于根据目标硬件平台的架构参数和目标硬件平台所对应的算子计算模式,确定tiling参数的搜索空间模型,其中,所述架构参数至少包括处理器数量信息、第一缓存容量信息、第二缓存容量信息、内存带宽信息和计算单元类型信息;

33、初始候选参数集确定模块,用于根据所述搜索空间模型,确定tiling参数所对应的初始候选参数集,其中,所述初始候选参数集包括多组初始候选参数向量;

34、适应度值确定模块,用于根据各所述初始候选参数向量,确定目标编译文件,并获取所述目标硬件平台运行所述目标编译文件的目标适应度值;

35、目标候选参数确定模块,用于根据所述目标硬件平台在各初始候选参数向量下的目标适应度值,基于演化计算策略对所述初始候选参数集进行迭代进化,并在所述搜索空间模型中确定下一组候选参数集,直至满足迭代条件。

36、第三方面,根据本公开内容,提供了一种计算机设备,包括:

37、一个或多个处理器;

38、存储装置,用于存储一个或多个程序,

39、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的方法。

40、第四方面,根据本公开内容,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一所述的方法。

41、本公开实施例提供的基于演化计算与硬件在环反馈的算子tiling参数确定方法,首先根据目标硬件平台的架构参数和目标硬件平台所对应的算子计算模式,确定tiling参数的搜索空间模型;然后根据搜索空间模型,确定tiling参数所对应的初始候选参数集;进而根据各初始候选参数向量,确定目标编译文件,并获取目标硬件平台运行目标编译文件的目标适应度值;最后根据目标硬件平台在各初始候选参数向量下的目标适应度值,基于演化计算策略对所述初始候选参数集进行迭代进化,并在搜索空间模型中确定下一组候选参数集,直至满足迭代条件。通过构建"候选参数生成→硬件执行编译→采集性能指标→反馈驱动调整搜索方向"的闭环自动搜索机制,在有限的搜索迭代次数内发现目标硬件平台上接近全局最优的tiling参数配置。

42、上述说明仅是本技术实施例技术方案的概述,为了能够更清楚了解本技术实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本技术实施例的上述和其他目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。