一种针对多核平台的二进制程序自动并行化的设计方法

    公开(公告)号:CN105242929A

    公开(公告)日:2016-01-13

    申请号:CN201510657166.5

    申请日:2015-10-13

    IPC分类号: G06F9/44

    摘要: 本发明公开了一种针对多核平台的二进制程序自动并行化的设计方法,将多核平台中的二进制翻译成LLVM IR,然后先通过分析LLVM IR,建立控制流图来找出程序中的所有循环。静态分析循环的并行性,剔除不易并行的循环。在为循环在生成并行化代码前,对常见的内存访问依赖设定了简单的判据,加入了相应的内存地址重叠判断代码,降低了动态分析内存访问依赖引入的性能损失。然后将循环拆分到两个核上运行,重写LLVM IR生成并行化代码。该方法能够在无法获取二进制程序源码的情况下分析和提取二进制中的可并行性,并自动生成对应的可多核并行化的二进制程序,从而达到利用多核平台对原程序进行加速的效果。

    一种针对多核平台的二进制程序自动并行化的设计方法

    公开(公告)号:CN105242929B

    公开(公告)日:2018-07-17

    申请号:CN201510657166.5

    申请日:2015-10-13

    IPC分类号: G06F8/41

    摘要: 本发明公开了一种针对多核平台的二进制程序自动并行化的设计方法,将多核平台中的二进制翻译成LLVM IR,然后先通过分析LLVM IR,建立控制流图来找出程序中的所有循环。静态分析循环的并行性,剔除不易并行的循环。在为循环在生成并行化代码前,对常见的内存访问依赖设定了简单的判据,加入了相应的内存地址重叠判断代码,降低了动态分析内存访问依赖引入的性能损失。然后将循环拆分到两个核上运行,重写LLVM IR生成并行化代码。该方法能够在无法获取二进制程序源码的情况下分析和提取二进制中的可并行性,并自动生成对应的可多核并行化的二进制程序,从而达到利用多核平台对原程序进行加速的效果。

    ARM二进制代码的NEON向量化转换方法

    公开(公告)号:CN105242907B

    公开(公告)日:2018-01-19

    申请号:CN201510574950.X

    申请日:2015-09-10

    IPC分类号: G06F9/38

    摘要: 本发明公开一种ARM二进制代码的NEON向量化转换方法,包括以下步骤:第一步、反汇编;第二步、流图生成;第三步、循环检测;第四步、内存分析;第五步、指令翻译;第六步、汇编指令输出。本发明通过将ARM的二进制代码反汇编后建立控制流图和做到达定值分析,找到目标优化对象所在的基本块,并分析要优化的基本块中访存模式,同时跟据片上空闲的扩展寄存器和核心寄存器的资源调度,将部分重复访存结果存储在空闲的片上寄存器中,利用访问高速的寄存器来减少程序访存的时间开销,从而达到加速的目的。

    ARM二进制代码的NEON向量化转换方法

    公开(公告)号:CN105242907A

    公开(公告)日:2016-01-13

    申请号:CN201510574950.X

    申请日:2015-09-10

    IPC分类号: G06F9/38

    摘要: 本发明公开一种ARM二进制代码的NEON向量化转换方法,包括以下步骤:第一步、反汇编;第二步、流图生成;第三步、循环检测;第四步、内存分析;第五步、指令翻译;第六步、汇编指令输出。本发明通过将ARM的二进制代码反汇编后建立控制流图和做到达定值分析,找到目标优化对象所在的基本块,并分析要优化的基本块中访存模式,同时跟据片上空闲的扩展寄存器和核心寄存器的资源调度,将部分重复访存结果存储在空闲的片上寄存器中,利用访问高速的寄存器来减少程序访存的时间开销,从而达到加速的目的。