论文部分内容阅读
近几年,随着GPU的计算能力和访存带宽的提高,GPU计算已经成为了近代信息处理领域一项非常重要的技术。CPU的串行计算架构日益成为高性能计算性能提升的瓶颈,而GPU已成为当前计算机系统中具备高性能处理能力的部件。另外,各应用领域已经积累了大量运行于CPU上的二进制可执行文件形式的传统串行程序。因此如何利用CPU和GPU新型异构体系结构来提高传统串行程序的执行性能是一个新课题。二进制翻译技术提供了无需重新编译源程序就能将旧体系结构下的可执行二进制代码自动转换成新的体系结构下的可执行文件的能力。一般采用二进制翻译技术来解决不同体系结构的软件移植问题。因此,本文利用二进制翻译技术并结合CPU和GPU新型异构体系结构来提高传统串行程序的执行性能。本文主要的工作包括:首先,根据反编译技术、编译技术和二进制翻译技术之问的相似性,本文提出了一种采用反编译器的前端和编译器的后端构建一个静态二进制翻译器的方法。此种方法避免了重新编写一个静态二进制翻译器的麻烦,大大缩短了翻译器系统的丌发时间。其次,在深入研究传统串行程序软件资源丰富与新型体系结构软件资源匮乏之间矛盾的基础上,本文提出了一种基于二进制翻译技术的统一计算架构的解决方案bCUDA。bCUDA可以将传统串行程序翻译成运行在CPU和GPU新型体系结构下的并行程序。最后,根据基于二进制翻译技术的统一计算架构的bCUDA解决方案,本文利用反编译器Boomerang前端、LLVM编译器后端、PTX中间语言后端和C语言后端实现了一个静态二进制翻译系统SBTG。通过矩阵乘法实验表明,静态二进制翻译系统SBTG翻译生成的并行程序不仅能正确执行传统串行程序的功能,而且执行速度比传统串行程序要快。