[发明专利]一种针对多核平台的二进制程序自动并行化的设计方法有效
申请号: | 201510657166.5 | 申请日: | 2015-10-13 |
公开(公告)号: | CN105242929B | 公开(公告)日: | 2018-07-17 |
发明(设计)人: | 梅魁志;李博良;南宝松;刘冬冬;黄雄;刘辉;高榕 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 岳培华 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种针对多核平台的二进制程序自动并行化的设计方法,将多核平台中的二进制翻译成LLVM IR,然后先通过分析LLVM IR,建立控制流图来找出程序中的所有循环。静态分析循环的并行性,剔除不易并行的循环。在为循环在生成并行化代码前,对常见的内存访问依赖设定了简单的判据,加入了相应的内存地址重叠判断代码,降低了动态分析内存访问依赖引入的性能损失。然后将循环拆分到两个核上运行,重写LLVM IR生成并行化代码。该方法能够在无法获取二进制程序源码的情况下分析和提取二进制中的可并行性,并自动生成对应的可多核并行化的二进制程序,从而达到利用多核平台对原程序进行加速的效果。 | ||
搜索关键词: | 二进制程序 多核平台 并行化 内存访问 并行性 二进制 二进制翻译 动态分析 多核并行 建立控制 静态分析 内存地址 性能损失 自动生成 原程序 判据 源码 重写 剔除 并行 分析 引入 | ||
【主权项】:
1.一种针对多核平台的二进制程序自动并行化的设计方法,其特征在于,包括以下步骤:步骤一,将多核平台中的二进制程序翻译成LLVM IR;步骤二,分析LLVM IR,得到LLVM IR的控制流图CFG,通过控制流图CFG找到LLVM IR中函数内所有的循环;步骤三,对找到的所有循环分别进行静态分析,剔除所有没有并行化可能的循环;其中,剔除的没有并行化可能的循环包括以下几种:第一类,含有多个不同循环退出条件的循环;第二类,循环体内具体执行顺序会影响循环结束后程序运行,且该影响不能被消除的循环;第三类,含有非迭代子类型的标量依赖的循环,以及含有迭代子类型的标量依赖,且控制该标量迭代的参数不恒定的循环;第四类,含有多分支的循环中不同分支迭代子更新情况不一致的循环;第五类,含有多分支的循环中有分支间标量依赖的循环;第六类,循环退出条件不满足以下条件的循环:循环退出的比较指令的一个参数是和某迭代子相关的线性函数,且另一个参数是和任何迭代子都不相关的循环内恒定量;步骤四,基于剩余的所有具有并行化可能的循环来重写LLVM IR,判断所有具有并行化可能的循环中是否存在内存访问依赖,若存在内存访问依赖,则按原循环的流程执行,若不存在内存访问依赖,则对原循环进行并行化处理,生成并行化代码。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510657166.5/,转载请声明来源钻瓜专利网。