论文部分内容阅读
GPU(Graphic Processing Units)的并行性以及近年来发展起来的可编程功能为处理科学计算提供了良好的运行平台。由此使得各GPU厂商们转向将GPU用于通用计算方面的研究,提出如CUDA(Compute Unified Device Architecture)、Brook+等通用计算GPU编程模型。尽管这些编程模型逐渐变得精致,但考虑到降低翻译的开销、提高目标码的质量等因素,汇编语言总是必须的。然而不同体系结构下GPU汇编指令的差异对程序设计造成了很大困难。 为了解决这个问题,本文首先通过研究GPGPU领域中的多种体系结构和编程模型,并使用GPGPU-sim模拟器模拟GPU应用来对比当前具有代表性的GPU体系结构、存储结构,抽象出一种高性能的面向科学计算的虚拟GPU体系结构。随后,深入研究现有的各类机器的GPU指令集,找出各个指令集间的共性,在抽象出的高性能的面向科学计算的GPU体系结构指导下,定义出一种相对完善的适用于GPU上编程的中间语言,给出此中间语言的词法、语法、语句类型及格式、程序框架的详细设计。最后,实现一种支持多目标GPU指令的映射器,使得能够使用这种中间语言进行简单的算法编程,并编写软件模拟使用此GPU中间语言编写程序至最终获得运行结果的全过程。这种中间语言能够完成到各类GPU指令的映射任务,消除各机器平台的差异,由于使用相同的助记符编写的程序能运用于不同的GPU体系结构中,广大的计算机工作者便能减少重复学习的过程,从中得到裨益,从而提高软件产品的开发效率。