一种优化模式自动生成方法及优化装置的制造方法_6

文档序号:9750550阅读:来源:国知局
变换序列,每个所述基本块对包含至少一个属于第一基本块集合的基本块,所述程序变换序列用于优化所述源程序。2.根据权利要求1所述的方法,其特征在于,所述根据程序变换库及所述第一对应关系输出多个具有所述第一对应关系的基本块对对应的程序变换序列包括: 根据程序变换库为具有所述第一对应关系的基本块对分配程序变换序列; 在所述具有所述第一对应关系的基本块对中属于所述第一基本块集合的基本块能够通过所述程序变换序列得到属于同一基本块对的第二基本块集合中的基本块或空的情况下,输出所述基本块对对应的所述程序变换序列。3.根据权利要求1或2所述的方法,其特征在于,所述根据程序变换库及所述对应关系输出多个具有所述第一对应关系的基本块对对应的程序变换序列包括: 根据程序变换库为具有所述第一对应关系的基本块对分配程序变换序列; 在所述具有所述第一对应关系基本块对中属于所述第一基本块集合的基本块不能够通过所述程序变换序列得到属于同一基本块对的第二基本块集合中的基本块或空的情况下,对所述第一基本块集合和所述第二基本块集合中的基本块进行更新; 建立所述更新后的第一基本块集合的基本块与所述更新后的第二基本块集合的基本块间的第二对应关系; 根据所述程序变换库及所述第二对应关系,输出多个具有所述第二对应关系的基本块对对应的程序变换序列,每个所述具有所述第二对应关系的基本块对包含至少一个属于更新后的第一基本块集合的基本块。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述建立所述第一基本块集合与所述第二基本块集合的第一对应关系,包括: 确定所述GHJ优化程序中用于优化所述源程序的核心程序; 对所述核心程序进行逆程序变换得到目标程序; 确定所述目标程序对应的第三基本块集合; 建立第三基本块集合中的基本块与所述第二基本块集合中的基本块之间的等价关系;建立所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系; 根据所述等价关系及所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系,建立所述第一基本块集合与所述第二基本块集合的对应关系。5.根据权利要求4所述的方法,其特征在于,所述建立所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系包括: 建立所述第一基本块集合与所述第三基本块集合中程序形式相同的基本块之间的对应关系,所述程序形式包括三元组及操作数。6.根据权利要求4所述的方法,其特征在于,所述建立所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系包括: 确定所述源程序对应的第一程序结构集合及所述目标程序对应的第三程序结构集合;建立所述第一程序结构集合中的程序结构与所述第三程序结构集合中的程序结构之间的程序对应关系; 建立至少一个程序结构区域,每个所述程序区域包至少一对具有所述程序对应关系的程序结构; 建立所述第一基本块集合与所述第三基本块集合中程序形式相似度高于阈值且属于同一所述程序结构区域的基本块之间的对应关系,所述程序形式包括三元组及操作数。7.根据权利要求4所述的方法,其特征在于,所述确定所述GHJ优化程序中用于优化所述源程序的核心程序包括: 确定所述GHJ优化程序对应的第二程序结构集合; 确定所述第二程序结构集合中用于支持GHJ并行的目标程序结构; 从所述GHJ优化程序中去掉所述目标程序结构对应的程序代码,以得到所述核心程序。8.根据权利要求4所述的方法,其特征在于,所述根据所述等价关系及所述第一基本块集合与所述第三基本块集合之间的对应关系,建立所述第一基本块集合与所述第二基本块集合的对应关系包括: 确定第一目标基本块集合,所述第一目标基本块集合是由所述第二基本块集合中和所述第三基本块集合中具有所述等价关系的基本块组成的; 确定第二目标基本块集合,所述第二目标基本块集合是由所述第一基本块集合中的基本块组成的,所述第二目标基本块集合中的每个基本块与所述第一目标基本块集合中属于第三基本块集合中的基本块具有对应关系; 建立第三目标基本块集合与所述第二目标基本块集合之间的对应关系,所述第三目标基本块集合为所述第一目标基本块集合与所述第二基本块集合的交集。9.一种优化装置,其特征在于,包括: 获取模块,用于获取源程序及与所述源程序对应的图形处理器GRJ优化程序; 确定模块,用于确定所述获取模块获取的所述源程序对应的第一基本块集合,及所述GHJ优化程序对应的第二基本块集合; 建立模块,用于建立所述确定模块确定的所述第一基本块集合与所述第二基本块集合的第一对应关系; 输出模块,用于根据程序变换库及所述建立模块建立的第一对应关系输出多个具有所述第一对应关系的基本块对对应的程序变换序列,每个所述基本块对包含至少一个属于第一基本块集合的基本块,所述程序变换序列用于优化所述源程序。10.根据权利要求9所述的装置,其特征在于, 所述输出模块,还用于根据程序变换库为具有所述第一对应关系的基本块对分配程序变换序列; 所述输出模块,还用于在所述具有所述第一对应关系的基本块对中属于所述第一基本块集合的基本块能够通过所述程序变换序列得到属于同一基本块对的第二基本块集合中的基本块或空的情况下,输出所述基本块对对应的所述程序变换序列。11.根据权利要求9或10所述的装置,其特征在于, 所述输出模块,还用于根据程序变换库为具有所述第一对应关系的基本块对分配程序变换序列; 所述输出模块,还用于在所述具有所述第一对应关系基本块对中属于所述第一基本块集合的基本块不能够通过所述程序变换序列得到属于同一基本块对的第二基本块集合中的基本块或空的情况下,对所述第一基本块集合和所述第二基本块集合中的基本块进行更新; 所述建立模块,还用于建立所述更新后的第一基本块集合的基本块与所述更新后的第二基本块集合的基本块间的第二对应关系; 所述输出模块,还用于根据所述程序变换库及所述第二对应关系,输出多个具有所述第二对应关系的基本块对对应的程序变换序列,每个所述具有所述第二对应关系的基本块对包含至少一个属于更新后的第一基本块集合的基本块。12.根据权利要求9至11中任一项所述的装置,其特征在于, 所述建立模块,还用于确定所述GHJ优化程序中用于优化所述源程序的核心程序;所述建立模块,还用于对所述第一确定子单元确定的核心程序进行逆程序变换得到目标程序; 所述建立模块,还用于确定所述第二确定子单元确定的目标程序对应的第三基本块集合; 所述建立模块,还用于建立第三基本块集合中的基本块与所述第二基本块集合中的基本块之间的等价关系; 所述建立模块,还用于建立所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系; 所述建立模块,还用于根据所述等价关系及所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系,建立所述第一基本块集合与所述第二基本块集合的对应关系。13.根据权利要求12所述的装置,其特征在于, 所述建立模块,还用于建立所述第一基本块集合与所述第三基本块集合中程序形式相同的基本块之间的对应关系,所述程序形式包括三元组及操作数。14.根据权利要求13所述的装置,其特征在于, 所述建立模块,还用于确定所述源程序对应的第一程序结构集合及所述目标程序对应的第三程序结构集合; 所述建立模块,还用于建立所述第一程序结构集合中的程序结构与所述第三程序结构集合中的程序结构之间的程序对应关系; 所述建立模块,还用于建立至少一个程序结构区域,每个所述程序区域包至少一对具有所述程序对应关系的程序结构; 所述建立模块,还用于建立所述第一基本块集合与所述第三基本块集合中程序形式相似度高于阈值且属于同一所述程序结构区域的基本块之间的对应关系,所述程序形式包括三元组及操作数。15.根据权利要求13所述的装置,其特征在于, 所述建立模块,还用于确定所述GHJ优化程序对应的第二程序结构集合; 所述建立模块,还用于确定所述第二程序结构集合中用于支持GPU并行的目标程序结构; 所述建立模块,还用于从所述GHJ优化程序中去掉所述目标程序结构对应的程序代码,以得到所述核心程序。16.根据权利要求13所述的装置,其特征在于, 所述建立模块,还用于确定第一目标基本块集合,所述第一目标基本块集合是由所述第二基本块集合中和所述第三基本块集合中具有所述等价关系的基本块组成的; 所述建立模块,还用于确定第二目标基本块集合,所述第二目标基本块集合是由所述第一基本块集合中的基本块组成的,所述第二目标基本块集合中的每个基本块与所述第一目标基本块集合中属于第三基本块集合中的基本块具有对应关系; 所述建立模块,还用于建立第三目标基本块集合与所述第二目标基本块集合之间的对应关系,所述第三目标基本块集合为所述第一目标基本块集合与所述第二基本块集合的交集。17.一种优化装置,其特征在于,包括:输入装置、输出装置、处理器及存储器; 所述处理器用于执行以下步骤: 获取源程序及与所述源程序对应的图形处理器GRJ优化程序; 确定所述源程序对应的第一基本块集合,及所述GHJ优化程序对应的第二基本块集合; 建立所述第一基本块集合与所述第二基本块集合的第一对应关系; 所述输出装置用于执行以下步骤: 根据程序变换库及所述第一对应关系输出多个具有所述第一对应关系的基本块对对应的程序变换序列,每个所述基本块对包含至少一个属于第一基本块集合的基本块,所述程序变换序列用于优化所述源程序。18.根据权利要求17所述的装置,其特征在于,所述处理器具体用于执行以下步骤: 根据程序变换库为具有所述第一对应关系的基本块对分配程序变换序列; 所述输出装置具体用于执行以下步骤: 在所述具有所述第一对应关系的基本块对中属于所述第一基本块集合的基本块能够通过所述程序变换序列得到属于同一基本块对的第二基本块集合中的基本块或空的情况下,输出所述基本块对对应的所述程序变换序列。19.根据权利要求17或18所述的装置,其特征在于,所述处理器具体用于执行以下步骤: 根据程序变换库为具有所述第一对应关系的基本块对分配程序变换序列; 在所述具有所述第一对应关系基本块对中属于所述第一基本块集合的基本块不能够通过所述程序变换序列得到属于同一基本块对的第二基本块集合中的基本块或空的情况下,对所述第一基本块集合和所述第二基本块集合中的基本块进行更新; 建立所述更新后的第一基本块集合的基本块与所述更新后的第二基本块集合的基本块间的第二对应关系; 所述输出装置具体用于执行以下步骤: 根据所述程序变换库及所述第二对应关系,输出多个具有所述第二对应关系的基本块对对应的程序变换序列,每个所述具有所述第二对应关系的基本块对包含至少一个属于更新后的第一基本块集合的基本块。20.根据权利要求17至19中任一项所述的装置,其特征在于,所述处理器具体用于执行以下步骤: 确定所述GHJ优化程序中用于优化所述源程序的核心程序; 对所述核心程序进行逆程序变换得到目标程序; 确定所述目标程序对应的第三基本块集合; 建立第三基本块集合中的基本块与所述第二基本块集合中的基本块之间的等价关系;建立所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系; 根据所述等价关系及所述第一基本块集合中的基本块与所述第三基本块集合中的基本块之间的对应关系,建立所述第一基本块集合与所述第二基本块集合的对应关系。21.根据权利要求20所述的装置,其特征在于,所述处理器具体用于执行以下步骤: 建立所述第一基本块集合与所述第三基本块集合中程序形式相同的基本块之间的对应关系,所述程序形式包括三元组及操作数。22.根据权利要求20所述的装置,其特征在于,所述处理器具体用于执行以下步骤: 确定所述源程序对应的第一程序结构集合及所述目标程序对应的第三程序结构集合;建立所述第一程序结构集合中的程序结构与所述第三程序结构集合中的程序结构之间的程序对应关系; 建立至少一个程序结构区域,每个所述程序区域包至少一对具有所述程序对应关系的程序结构; 建立所述第一基本块集合与所述第三基本块集合中程序形式相似度高于阈值且属于同一所述程序结构区域的基本块之间的对应关系,所述程序形式包括三元组及操作数。23.根据权利要求20所述的装置,其特征在于,所述处理器具体用于执行以下步骤: 确定所述GHJ优化程序对应的第二程序结构集合; 确定所述第二程序结构集合中用于支持GHJ并行的目标程序结构; 从所述GHJ优化程序中去掉所述目标程序结构对应的程序代码,以得到所述核心程序。24.根据权利要求20所述的装置,其特征在于,所述处理器具体用于执行以下步骤: 确定第一目标基本块集合,所述第一目标基本块集合是由所述第二基本块集合中和所述第三基本块集合中具有所述等价关系的基本块组成的; 确定第二目标基本块集合,所述第二目标基本块集合是由所述第一基本块集合中的基本块组成的,所述第二目标基本块集合中的每个基本块与所述第一目标基本块集合中属于第三基本块集合中的基本块具有对应关系; 建立第三目标基本块集合与所述第二目标基本块集合之间的对应关系,所述第三目标基本块集合为所述第一目标基本块集合与所述第二基本块集合的交集。
【专利摘要】本发明实施例公开了一种优化模式自动生成方法及优化装置,用于提高工作效率,节约人力资源。本发明实施例方法包括:获取源程序及与所述源程序对应的图形处理器GPU优化程序;确定所述源程序对应的第一基本块集合,及所述GPU优化程序对应的第二基本块集合;建立所述第一基本块集合与所述第二基本块集合的第一对应关系;根据程序变换库及所述第一对应关系输出具有所述第一对应关系的基本块对对应的程序变换序列。本发明实施例还公开了一种优化装置,用于提高工作效率,节约人力资源。
【IPC分类】G06F9/44, G06F9/445
【公开号】CN105511867
【申请号】CN201510863780
【发明人】卢兴敬, 邢明杰, 刘雷
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2016年4月20日
【申请日】2015年11月30日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1