System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于并行遗传算法的GPU运算GEMM调优方法与装置制造方法及图纸_技高网

基于并行遗传算法的GPU运算GEMM调优方法与装置制造方法及图纸

技术编号:40423848 阅读:3 留言:0更新日期:2024-02-20 22:43
本发明专利技术提供一种基于并行遗传算法的GPU运算GEMM调优方法与装置,将GPU运算GEMM的速度作为遗传迭代的优化目标,将kernel中参数的工作组和工作项作为自变量,通过遗传算法迭代得到kernel中参数的工作组和工作项的最佳配置,在这一过程中,通过将每个个体和种群均设置对应的索引ID,每轮迭代中,GPU通过调用所述索引ID完成对每个个体和每个种群的调用和并行优化,一方面得到工作组和工作项的最佳配置从而对GPU运算GEMM的速度进行优化,另一方面加快了遗传算法迭代的寻优调优的速度。

【技术实现步骤摘要】

本专利技术涉及神经网络模型,特别是涉及一种基于并行遗传算法的gpu运算gemm调优方法与装置。


技术介绍

1、在通过图形处理器(graphics processing unit,简写为:gpu)对通用矩阵乘法(general matrix multiplication,简写为:gemm)进行计算的过程中,gemm中的开放计算语言(open computing language,简写为:opencl)的内核函数(kernel)在不同参数配置下性能存在差异,而影响gpu对于gemm运算速度的影响因素,通常存在以下方面:1、kernel中工作组大小;2、kernel中每个工作项的工作量的大小;3、是否采用局部存储器(localmemory);4、运算过程中是否避免内存读取冲突;5、是否将循环变量索引变为常量索引。为了发挥当前gpu计算的gemm的最佳性能,需要获取gemm最佳参数配置,而人工寻找gemm最佳参数配置往往较难实现并且效率过慢。


技术实现思路

1、本专利技术要解决的技术问题是如何获取gemm最佳参数配置从而实现gemm的最佳性能,并且通过gpu对寻优过程进行并行计算从而提升寻优效率。

2、本专利技术实施例采用如下技术方案:

3、第一方面,提供一种基于并行遗传算法的gpu运算gemm调优方法,包括:

4、将kernel函数中参数的工作组和工作项进行编码,生成相应参数种群;

5、将初始生成的参数种群作为初始种群,将所述初始种群作为输入种群输入至第一轮迭代中;

6、每轮迭代中包括:将所述输入种群进行交叉和变异,生成子代种群;将所述子代种群在运算时长的维度上进行优化,得到优化种群;将所述优化种群中所有个体在运算时长的维度上进行排序,得到运算时长最短的个体作为优选个体;将所述优选个体进行记录,将以往每轮迭代中的优选个体在运算时长的维度上进行排序,得到运算时长最短的优选个体作为最优个体,判断本轮迭代是否满足终止条件;

7、当本轮迭代不满足终止条件时,将所述优化种群作为输入种群输入至下一轮迭代中;

8、当本轮迭代满足终止条件时,对所述最优个体进行解码得到最优解;

9、其中,每个个体均设置有对应的索引id,每轮迭代中,图形处理器gpu通过调用所述索引id完成对每个个体和每个种群的调用和并行优化。

10、优选的,所述工作组包括:x维度大小的第一自变量wg_x和y维度大小的第二自变量wg_y;所述工作项包括第三自变量task_x和第四自变量task_y;

11、所述将kernel函数中参数的工作组和工作项进行编码,生成相应参数种群,具体包括:

12、将所述第一自变量wg_x、第二自变量wg_y、第三自变量task_x和第四自变量task_y分别编码,并将所得到的全部编码信息进行串联,串联后的编码信息作为所述参数个体的编码信息;

13、随机生成多个所述参数个体,多个所述参数个体的编码信息作为所述参数种群。

14、优选的,在将所述输入种群进行交叉和变异以前,还包括:

15、判断所述输入种群中的每个个体的计算可行性;

16、当个体满足计算可行性时,将该个体保持不变;

17、当个体不满足计算可行性时,将该个体的运算时长标记为正无穷大。

18、优选的,所述判断所述输入种群中的每个个体的计算可行性,具体包括:

19、根据所述第一自变量wg_x、第二自变量wg_y、第三自变量task_x和第四自变量task_y,设定维度为m×c的第一矩阵和维度为c×n的第二矩阵,其中m、c和n为任意正整数;

20、设p为大于等于m且大于等于n的最小的偶数;设q为大于等于n的最小的偶数;

21、通过补0的方式将所述第一矩阵的维度填充为p×q,通过补0的方式将所述第二矩阵的维度填充为q×p;

22、将填充后的所述第一矩阵和填充后的所述第二矩阵相乘得到第三矩阵,所述第三矩阵的维度为p×p;

23、当wg_x×wg_y×task_x×task_y能被p×p整除时,对应个体满足所述计算可行性;

24、当wg_x×wg_y×task_x×task_y不能被p×p整除时,对应个体不满足所述计算可行性。

25、优选的,所述将所述输入种群进行交叉和变异,生成子代种群,其中,所述交叉具体包括:

26、在所述输入种群中随机选取至少两个父代个体,所述图形处理器gpu获取所述父代个体的索引id,根据所述父代个体的索引id得到每个父代个体上的两个交叉点,将所述两个交叉点之间的编码信息作为交叉信息,将两个所述父代个体的交叉信息进行交换得到第一子代个体。

27、优选的,所述将所述输入种群进行交叉和变异,生成子代种群,其中,所述变异具体包括:

28、所述图形处理器gpu获取所述第一子代个体的索引id,根据所述第一子代个体的索引id获取每个所述第一子代个体上的变异位置,将所述变异位置上的编码信息按照预设概率进行变异得到第二子代个体,所有所述第二子代个体作为所述子代种群。

29、优选的,所述将所述输入种群进行交叉和变异,生成子代种群,还包括:

30、所述图形处理器gpu获取所述子代种群的索引id,根据所述子代种群的索引id将所述子代种群进行备份得到备份子代种群。

31、优选的,所述将所述子代种群在运算时长的维度上进行优化,得到优化种群,具体包括:

32、所述图形处理器gpu获取所述子代种群的索引id,根据所述子代种群的索引id从所述子代种群中随机抽取tourn_size×size_pop个个体作为样本种群;

33、在所述样本种群中随机选取tourn_size个个体为一组,共选取size_pop组个体,从每组个体中选出运算时长最短的个体的索引id,以得到size_pop个索引id,根据size_pop个索引id从所述备份优化种群中对应选出size_pop个竞争个体,并将选出的size_pop个竞争个体作为所述优化种群。

34、其中,所述size_pop为所述子代种群中个体的数量,所述tourn_size为小于size_pop/2的正整数。

35、优选的,所述终止条件具体包括:

36、判断本轮迭代的迭代轮次是否大于或等于预设迭代次数;

37、当本轮迭代的迭代轮次大于或等于预设迭代次数时,本轮迭代满足所述终止条件;

38、当本轮迭代的迭代轮次小于预设迭代次数时,本轮迭代不满足所述终止条件。

39、第二方面,一种基于并行遗传算法的gpu运算gemm调优装置,包括至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行所述的基于并行遗传算法的gpu运算gemm调优方法。<本文档来自技高网...

【技术保护点】

1.一种基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,包括:

2.根据权利要求1所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,所述工作组包括:X维度大小的第一自变量wg_x和y维度大小的第二自变量wg_y;所述工作项包括第三自变量task_x和第四自变量task_y;

3.根据权利要求2所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,在将所述输入种群进行交叉和变异以前,还包括:

4.根据权利要求3所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,所述判断所述输入种群中的每个个体的计算可行性包括:

5.根据权利要求1所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,所述将所述输入种群进行交叉和变异,生成子代种群,其中,所述交叉包括:

6.根据权利要求5所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,所述将所述输入种群进行交叉和变异,生成子代种群,其中,所述变异包括:

7.根据权利要求1至6中任一项所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,所述将所述输入种群进行交叉和变异,生成子代种群包括:

8.根据权利要求7所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,所述将所述子代种群在运算时长的维度上进行优化,得到优化种群包括:

9.根据权利要求1至6中任一项所述的基于并行遗传算法的GPU运算GEMM调优方法,其特征在于,所述终止条件包括:

10.一种基于并行遗传算法的GPU运算GEMM调优装置,其特征在于,包括至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1至9中任一项所述的基于并行遗传算法的GPU运算GEMM调优方法。

...

【技术特征摘要】

1.一种基于并行遗传算法的gpu运算gemm调优方法,其特征在于,包括:

2.根据权利要求1所述的基于并行遗传算法的gpu运算gemm调优方法,其特征在于,所述工作组包括:x维度大小的第一自变量wg_x和y维度大小的第二自变量wg_y;所述工作项包括第三自变量task_x和第四自变量task_y;

3.根据权利要求2所述的基于并行遗传算法的gpu运算gemm调优方法,其特征在于,在将所述输入种群进行交叉和变异以前,还包括:

4.根据权利要求3所述的基于并行遗传算法的gpu运算gemm调优方法,其特征在于,所述判断所述输入种群中的每个个体的计算可行性包括:

5.根据权利要求1所述的基于并行遗传算法的gpu运算gemm调优方法,其特征在于,所述将所述输入种群进行交叉和变异,生成子代种群,其中,所述交叉包括:

6.根据权利要求5所述的基于并行遗传算法的gpu运算gemm调优方...

【专利技术属性】
技术研发人员:谌竟成冯雨汤汉兵董礼
申请(专利权)人:芯动微电子科技武汉有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1