[发明专利]基于异构平台的自适应节点融合编译优化方法有效
申请号: | 201910885756.1 | 申请日: | 2019-09-19 |
公开(公告)号: | CN112527304B | 公开(公告)日: | 2022-10-04 |
发明(设计)人: | 王飞;沈莉;吴伟;胡浩;钱宏 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/901;G06K9/62 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 平台 自适应 节点 融合 编译 优化 方法 | ||
1.一种基于异构平台的自适应节点融合编译优化方法,其特征在于:包括以下步骤:
S1、源程序经过编译器的编译处理,生成编译器的中间表示DAG,对DAG进行降级处理,并在DAG降级阶段,对DAG进行以下操作:
S2、进行DAG融合子图识别,进一步包括以下步骤:
S21、对DAG进行拓扑排序、得到拓扑序列,将DAG中的节点按照拓扑序列的顺序,添加到节点融合优化的工作列表中;
S22、编译器自S21生成的工作列表的首节点开始,顺序取出工作列表的一个节点,并将此节点从工作列表中删除,检查此节点的操作码、操作数值类型和结果值类型,若此节点的操作码、操作数值类型以及结构值类型是合法的,则此节点进行节点融合,执行S23,否则继续进行S22,直到工作列表为空,转到S71;
S23、以S22中取出的节点为根节点,根据编译器后端的DAG子图匹配模板,使用图匹配算法,找到所有以S22中取出的节点为根节点的、可进行节点融合的n个DAG子图,转到S24;
S24、若S23未找到可进行节点融合的DAG子图,则转到S22,否则转到S31;
S3、S23中找到的n个可进行节点融合的DAG子图一一对应n种节点融合策略,根据第k个节点融合策略,将S23找到的第k个可进行节点融合的DAG子图进行节点融合,其中,k=1,2,3,4,...,n,将第k个可进行节点融合的DAG子图的多个节点融合为一个节点,并将第k个DAG子图和Pattern模板进行匹配,获得Pattern模板的输出子图,从而生成第k个可进行节点融合的DAG子图的融合后的DAG子图,编译器记录融合后的DAG子图的所有节点,转到S41;
S4、融合策略代价评估,即根据S3中融合后的DAG子图所有节点的数据引用和异构平台的指令集信息,计算将S3中生成的融合后的第k个DAG子图转换为指令序列后,运行该段指令序列中的指令所要花费的代价,所述代价包括花费的时钟周期数、寄存器数以及占用内存的大小,转到S51;
S5、自适应选择节点融合策略,即根据S4计算得到的第k个融合策略代价,结合目标后端的寄存器、cache、内存使用情况,自适应地选择最优的节点融合策略,即对目标后端提升性能效果最好的节点融合策略,转到S6;
S6、目标相关节点融合,即根据S5选择出的节点融合策略,将S23中匹配得到的DAG子图的控制流和数据流关系,转移到由S5选择出的节点融合策略所生成的融合后的DAG子图上,并使用融合后的DAG子图替换融合前的DAG子图,转到S22;
S7、生成目标代码,即编译器对降级完成后的DAG进行编译处理,生成异构平台代码。
2.根据权利要求1所述的基于异构平台的自适应节点融合编译优化方法,其特征在于:所述工作列表是一种线性的数据结构,包含所有待处理的节点。
3.根据权利要求1所述的基于异构平台的自适应节点融合编译优化方法,其特征在于:不同的根节点对应不同的DAG子图匹配模板,所述DAG子图匹配模板也是一个DAG子图。
4.根据权利要求1所述的基于异构平台的自适应节点融合编译优化方法,其特征在于:DAG中的一个节点对应异构平台的指令集中的一条指令。
5.根据权利要求1所述的基于异构平台的自适应节点融合编译优化方法,其特征在于:S23中匹配得到的DAG子图即与融合后的DAG子图对应的、节点融合优化前的DAG子图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910885756.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:在线视频的播放方法、装置及存储介质
- 下一篇:沉箱模板