面向CPU-GPU异构并行计算的代码生成关键技术研究

来源 :电子科技大学 | 被引量 : 1次 | 上传用户:shijunjie88
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,通用计算图形处理器作为计算密集型应用的加速器,被科学家和工程师们广泛关注。在CPU-GPU异构并行计算平台上,诸如CUDA和OpenCL等编程框架都提供了相对底层的编程接口,以SIMT的调度方式和SPMD的编程模型解决数据并行问题。但是,使用厂商提供的底层编程语言及接口不仅要求开发者深刻理解CPU-GPU异构并行计算平台的硬件架构,存储层次和执行模型,还需要开发者手动进行大量的诸如线程同步和存储优化等工作,使得利用CPU-GPU异构并行计算平台进行科学计算应用的开发非常困难,极易出错。机器学习,数据挖掘,图像处理等领域的发展对计算能力的要求不断提升,尽管Nvidia公司发布的CUDA使开发者可以利用C语言扩展进行并行计算程序的开发,但普通开发者利用CPU-GPU异构并行计算平台的能力依旧有限,因此迫切需要开发更简单、更易用、更高效的工具。本文提出了一套用于CPU-GPU异构并行计算平台编程的工具链:1.本文设计了面向大规模线性代数运算的RoyaL脚本语言。Roya L脚本语言从类型系统上支持矩阵等相关运算操作,并支持强类型语义检查。2.本文设计了将Roya L脚本语言程序转换为经过优化的CUDA程序的Roya编译框架,实现了抽象语法树、符号表、中间表示等重要模块,并在编译时的不同阶段对输入源代码进行多种类型的优化。这些工具为用户屏蔽了底层的硬件架构,存储层次及执行模型,并以高效的方式自动地处理CPU-GPU异构并行程序设计中一些易错的细节。为用户提供高层编程模型的RoyaL脚本语言和Roya编译框架不仅进行了一系列的诸如矩阵链乘法,矩阵链加减法的领域特定优化,还能自动地检测嵌套循环中的并行模式并抽取为内核函数在GPU上执行。在此基础上,本文设计了一系列对比实验来验证多种优化方法的有效性,展现了在多种场景下Roya编译框架生成的CUDA程序在运行时间开销上的收益。最后,本文总结了Roya编译框架在类型系统及分块并行上的不足,阐述了后续研究工作中的计划。
其他文献
文本分类在信息检索、文本过滤、文档组织等多个领域有着广泛的应用。在文本分类中,通常用特征词向量来表示文本数据,由于特征词较多导致文本数据的维数过高,经常达数千甚至数万
在社会老龄化和慢性疾病成为死亡主要原因的事实基础上,e-health/m-health成为一个技术或者产业热点。在过去的20年里,老年人健康居家监测设备快速发展,比如智能相机,跌倒探测器等,这些监测设备使用各种信息通信新技术,从雷达、红外到电磁器件[1]。这些设备的目的是定义一个定量框架,来判断显著偏离正常的行为方式,在居家环境中确定产生病理症状或发生紧急状况(例如,呼吸困难、跌倒)。除此之外,随
电子病历是医院信息化进程中的必然趋势。我国的医院信息系统正向着以病人为中心、高度集成化和多媒体化的方向发展。电子病历作为医疗卫生信息化的核心内容之一,新的尝试和运
降质图像的存在使得图像复原成为机器视觉的一个重要研究领域,其中雾天模糊图像和散焦模糊图像是最为常见的降质图像。目前关于雾天图像和散焦图像的复原方法有很多,取得的效果
随着机器视觉的发展,物体的三维重建技术日益显得重要。近年来,双目立体视觉测量方法得到了飞速的发展,该方法具有效率高、精度高、成本低等特点,非常适用于制造业现场的在线
随着微电子、无线通信技术的日趋成熟,无线传感器网络技术也得到快速发展。而在无线传感器网络广泛应用的同时,其所受到的安全威胁也越来越多。传统的基于密码机制的安全防御
计算机辅助检测是利用计算机学习人类的经验,达到自动化的辅助诊断病症。随着机器学习技术的发展,应用的领域不断扩展,它与医疗图像相结合的计算机辅助诊断成为研究的热点。
  随着微阵列芯片技术地广泛应用,科研人员能够在较少的实验中完成对物种大量基因表达水平值的检测,这为从分子水平上探索疾病的发病机理、临床诊断与治疗,了解生命的生长生活
云计算是近年来被提出的一种新型的计算模式,区别于传统的服务部署方式,弹性云计算可以使用户以相对较低的成本换取需要的IT基础设施服务。云计算以其独特的服务租用方式在IT领
成像测井技术是将沿井壁或井周的地层信息以电子图像的方式直观显示的新一代测井技术。成像测井在复杂油气储层等地质解释评价中发挥着越来越重要的作用,成为现在研究热点之一