本发明专利技术提出一种代码生成器的自动调优方法、装置、存储介质、程序产品,该方法包含:依据给定的大模型推理芯片的特性定义搜索空间,将给定的搜索算法集成到所述大模型推理芯片的软件开发环境中,并利用给定的搜索算法,经过多轮循环,生成参数列表种群,所述参数列表种群包含若干参数列表;根据所述参数列表种群配置具体模板参数,生成核函数的定义部分、流水缓冲级以及结果寄存器转存到全局内存的过程;通过编译器编译生成的核函数,并在所述大模型推理芯片上执行,对生成的所述核函数进行性能测量,获取核函数性能指标,并将所述参数列表种群和对应的核函数性能指标作为键值对加入到所述性能字典中。
【技术实现步骤摘要】
本专利技术涉及并行计算,尤其设计一种代码生成器的自动调优方法、装置、存储介质、程序产品。
技术介绍
1、在大语言模型训练推理过程中,主要有两种开销:存储访问开销(memory accesscost,mac)和每秒浮点运算次数(floating-point operations per second,flops)。flashattention是目前应用于大语言模型神经网络中的一种优化方法,主要针对mac进行优化,目的是加速和节省内存,能够在大语言模型的模型参数不是很大时,减少除矩阵乘之外其他算子的访存时间。当一个神经网络中遮盖(masking)、软化最大值(softmax)和随机失活(dropout)等操作占用大量时间时,通过flashattention将矩阵分解成块,可以显著减少访存次数,从而节省神经网络训练和推理的时间。然而,当大语言模型规模继续增大时,mac将不再是主导因素,flops将决定整体训练或推理时间,flops主要由矩阵乘法操作占用,因此对于规模较大的大语言模型,flash attention已不再适用。
2、自volta架构以来,nvidia引入了张量计算核心(tensor core)的矩阵乘专用模块,不仅能够实现混合精度的计算,而且与原先的cuda core相比计算速度有了显著提升。cuda core每个时钟周期只能执行一项操作,tensor core每个时钟周期可以执行多项操作。因此,考虑设计利用张量计算核心进行自动调优的代码生成器,实现对大规模的大语言模型的开销优化是有必要的。
技术实现思路
1、针对现有技术的不足,本专利技术提出一种代码生成器的自动调优方法、装置、存储介质、程序产品。
2、在本专利技术一方面,提供一种代码生成器的自动调优方法,包含:
3、依据给定的大模型推理芯片的特性定义搜索空间,将给定的搜索算法集成到所述大模型推理芯片的软件开发环境中,并利用给定的搜索算法,经过多轮循环,生成参数列表种群,所述参数列表种群包含若干参数列表;
4、根据所述参数列表种群配置具体模板参数,生成核函数的定义部分、流水缓冲级以及结果寄存器转存到全局内存的过程;
5、通过编译器编译生成的核函数,并在所述大模型推理芯片上执行,对生成的所述核函数进行性能测量,获取核函数性能指标,并将所述参数列表种群和对应的核函数性能指标作为键值对加入到所述性能字典中。
6、在本专利技术一实施例中,该方法还包含:
7、根据所述核函数性能指标对所述参数列表种群排序,得到排序后的参数列表种群;
8、利用排序后的参数列表种群反馈调节所述搜索算法的参数。
9、在本专利技术一实施例中,所述搜索算法采用遗传算法,于第一轮循环中,在给定参数列表范围内,随机生成所述参数列表种群;
10、根据所述排序后的参数列表种群设置一交叉遗传概率与一变异遗传概率,进行新一轮迭代,更新所述参数列表种群。
11、在本专利技术一实施例中,统计当前调优已花费时间、以及最高性能指标;
12、若所述已花费时间小于调优阈值,或者所述最高性能指标小于允许性能阈值,则增大所述变异遗传概率,以增大搜索范围;
13、若所述已花费时间大于等于所述调优阈值,或者所述最高性能指标大于等于所述允许性能阈值,则增大所述变异遗传概率,降低所述变异遗传概率,以减小搜索范围。
14、在本专利技术一实施例中,若当前输入的所述参数列表种群不在所述性能字典中有对应的键值对,则返回所述参数列表种群并重新获取所述核函数;
15、针对所述核函数设置测试环境,并利用编译器静态编译测试文件;
16、对于编译完成的测试文件直接执行,生成所述核函数性能指标,并写入外部的记录文档;
17、读取所述记录文档,获取所述参数列表种群和对应的所述核函数性能指标。
18、在本专利技术一实施例中,若当前输入的所述参数列表种群在所述性能字典中有对应的键值对,则直接读取所述性能字典,获取所述参数列表种群对应的核函数性能指标。
19、在本专利技术一实施例中,利用给定的搜索算法,经过多轮循环,生成参数列表种群之后,该方法还包含:
20、对所述参数列表种群预先进行多轮筛选操作,以更新参数列表种群,包含:
21、对所述参数列表种群初步筛选,筛选掉不满足大尺寸矩阵乘核函数标准的参数列表;
22、将初步筛选后的所述参数列表种群传递给构造的代价模型,再次进行筛选。
23、在本专利技术一实施例中,将初步筛选后的所述参数列表种群传递给构造的代价模型,再次进行筛选,包含:
24、将所述性能词典输出的数据构造数据集,包含参数列表种群以及对应的核函数性能指标;
25、将所述数据集进行预处理,包含:
26、将所述参数列表种群的每一参数列表转化为纯数字列表,并离散对应到从0递增的整数列表上;
27、将每一参数列表对应的所述核函数性能指标与给定的性能阈值比较,将小于该性能阈值的赋值为0,大于该性能阈值的赋值为1;且识别不能正常运行的核函数,赋值为0;
28、将预处理后的所述数据集训练所述代价模型,其中在训练集进行支持向量机的构建,并在测试集进行召回率评估,召回率代表预测高性能核函数占据总共高性能核函数的比例;
29、利用训练好的所述代价模型对初步筛选后的所述参数列表种群的每一所述参数列表进行性能预测,筛选掉预测值为0的参数列表。
30、在本专利技术另一方面,提供一种代码生成器的自动调优装置,该装置包含:
31、算子搜索模块,用以依据给定的大模型推理芯片的特性定义搜索空间,将给定的搜索算法集成到所述大模型推理芯片的软件开发环境中,并利用给定的搜索算法,经过多轮循环,生成参数列表种群,所述参数列表种群包含若干参数列表;
32、代码生成模块,用以根据所述参数列表种群配置具体模板参数,生成核函数的定义部分、流水缓冲级以及结果寄存器转存到全局内存的过程;
33、算子测量模块,与所述代码生成模块连接,用以接收所述核函数,并通过编译器编译生成的核函数,并在所述大模型推理芯片上执行,对生成的所述核函数进行性能测量,获取核函数性能指标,并将所述参数列表种群和对应的核函数性能指标作为键值对加入到所述性能字典中。
34、在本专利技术一实施例中,该装置还包含:控制核心模块,包含:
35、排序器,与所述算子测量模块,用以依据接收的所述算子测量模块输出的核函数性能指标,对所述参数列表种群降序排序,得到排序后的参数列表种群;
36、控制核心,与所述排序器、以及所述算子搜索模块连接,用以依据排序后的参数列表种群调节所述搜索算法的参数,并反馈至所述算子搜索模块;
37、筛选器,与所述算子搜索模块连接,用以对所述参数列表种群初步筛选,筛选掉不满足大尺寸矩阵乘核函数标准的参数列表。
38、本文档来自技高网
...
【技术保护点】
1.一种代码生成器的自动调优方法,其特征在于,包含:
2.根据权利要求1所述的方法,其特征在于,还包含:
3.根据权利要求2所述的方法,其特征在于,
4.根据权利要求3所述的方法,其特征在于,
5.根据权利要求1所述的方法,其特征在于,
6.根据权利要求5所述的方法,其特征在于,
7.根据权利要求1所述的方法,其特征在于,利用给定的搜索算法,经过多轮循环,生成参数列表种群之后,还包含:
8.根据权利要求7所述的方法,其特征在于,将初步筛选后的所述参数列表种群传递给构造的代价模型,再次进行筛选,包含:
9.一种代码生成器的自动调优装置,其特征在于,包含:
10.根据权利要求9所述的装置,其特征在于,还包含:
11.根据权利要求10所述的装置,其特征在于,还包含:
12.根据权利要求9所述的装置,其特征在于,所述算子测量模块包含:
13.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-8中任一所述方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-8中任一所述方法的步骤。
...
【技术特征摘要】
1.一种代码生成器的自动调优方法,其特征在于,包含:
2.根据权利要求1所述的方法,其特征在于,还包含:
3.根据权利要求2所述的方法,其特征在于,
4.根据权利要求3所述的方法,其特征在于,
5.根据权利要求1所述的方法,其特征在于,
6.根据权利要求5所述的方法,其特征在于,
7.根据权利要求1所述的方法,其特征在于,利用给定的搜索算法,经过多轮循环,生成参数列表种群之后,还包含:
8.根据权利要求7所述的方法,其特征在于,将初步筛选后的所述参数列表种群传递给构造的代价模型,...
【专利技术属性】
技术研发人员:谷朝阳,马立贤,邵恩,谭光明,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。