[发明专利]实现CPU/GPU异构平台的虚拟执行环境的方法有效
| 申请号: | 201010519516.9 | 申请日: | 2010-10-26 |
| 公开(公告)号: | CN101963918A | 公开(公告)日: | 2011-02-02 |
| 发明(设计)人: | 管海兵;陈凯;贾昭元;董国星;章一超 | 申请(专利权)人: | 上海交通大学 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F15/16 |
| 代理公司: | 上海交达专利事务所 31201 | 代理人: | 王锡麟;王桂忠 |
| 地址: | 200240 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 实现 cpu gpu 平台 虚拟 执行 环境 方法 | ||
1.一种实现CPU/GPU异构平台的虚拟执行环境的方法,其特征在于,利用动态二进制翻译技术使得程序运行在X86 CPU和NVIDIA GPU混合架构上,并且利用动态二进制翻译技术来收集程序的静态信息和动态信息,利用这些信息寻找程序执行嵌套的循环、循环之间的依赖关系和进出热块的数据流;执行中分两阶段实施:
第一阶段、收集信息和优化热块,并存储到文件中;
第二阶段、生成包含串行指令和并行指令的混合程序,执行含有混合指令的程序。
2.根据权利要求1所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,包括以下步骤:
①、首先对整个二进制程序文件进行静态分析,找到和标记出其中的嵌套循环部分;
②、然后对这部分单独执行,获得该块的控制流和数据流信息;
③、利用这些信息建立多面体模型,检测循环之间的依赖;
④、为后续生成并行指令的算法提供信息;
⑤、静态分析结束后,开始动态执行。
3.根据权利要求2所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,步骤①中所述的二进制程序中for循环进行分析、优化和并行化处理。
4.根据权利要求3所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,所述的并行化处理,是指:CPU的执行是线性的,而GPU采用了流计算模型,要在GPU上运行传统的程序,必须改变程序的结构,将传统串行的程序转换变为流计算模型,包括将串行的指令转换为并行的指令。
5.根据权利要求1所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,所述的并行化处理,在CPU切换到GPU时保存处理器的状态,并且在GPU的执行的时候要保持CPU状态寄存器的一致性。
6.根据权利要求1所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,所述的优化,是指:结合了动态分析和静态分析,用静态分析找到二进制程序中的循环部分,利用动态分析中获得循环的索引、循环的边界等信息,通过静态二进制分析得到程序的全局信息,而程序执行时是单路径的,得不到全局信息;静态分析也有其缺陷,因为有些信息只能在程序执行的时候获得,如条件跳转时的目的地址只能在执行的阶段获得,而且静态分析要扫描所有的执行路径,因此开销较大;动态分析是在程序执行的时候进行的,执行的路径取决于程序的输入,它获取的是程序在执行时的信息。
7.根据权利要求1所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,所述的动态二进制翻译技术,是指基于Crossbit实现了一个CPU/GPU异构平台的虚拟执行环境GXBIT,使得x86平台上程序可并行在x86CPU和NVIDIA GPU异构平台上,前端将源机器指令翻译为自行设计的中间指令块,后端将中间指令翻译为目标机器指令并执行。
8.根据权利要求1所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,所述的执行的第一阶段、收集信息和优化热块,并存储到文件中,实施步骤如下:
①、读入某个二进制可执行文件,首先扫描该文件中的可执行的代码段,找出其中所有嵌套循环,将它们作为备选的热块;
②、然后只执行找到的嵌套循环部分,在执行的过程中,在每个访存指令后面插入额外的指令,在执行的时候,所有的访存地址都会被记录下来;在最外层的循环执行了一次以后,动态分析工具利用上述记录的访存地址信息建立多面体模型,确定循环之间是否有依赖,如果没有依赖,则这些循环就被并行化在GPU上执行,并将这些循环设置为热块;
③、优化器针对特定GPU架构对热块进行某些优化,最后将收集的信息和优化后的热块存储到文件中。
9.根据权利要求1所述的实现CPU/GPU异构平台的虚拟执行环境的方法,其特征是,所述的执行的第二阶段、生成包含串行指令和并行指令的混合程序,执行含有混合指令的程序,实施步骤如下:
①、第二次读入该可执行文件,并装载上一阶段收集到的信息和优化后的热块,并获取热块的入口和出口地址;
②、执行整个二进制文件,当执行流进入某一个热块中时,启动并行翻译引擎,将优化后的热块翻译为GPU上可运行的并行指令,这样就生成了一个混合的二进制文件,它同时包含串行指令和并行指令;
③、将上一步生成的混合指令放到CPU/GPU异构平台上执行,并且处理内存的一致性问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010519516.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数字化课堂教学系统
- 下一篇:一种遥控电子设备的控制检测方法和一种遥控器





