面向GPU的数据流程序并行优化

来源 :华中科技大学 | 被引量 : 0次 | 上传用户:a273582760
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
图形处理单元(GPU)具有价格低廉和计算能力强大等特点,这使其近年来在高性能计算领域日益风靡。新的编程语言CUDA和OpenCL的出现使得GPU编程变得广为接受,但是GPU编程仍然是很复杂的任务,其原因有两点:一方面,为指定的GPU设计算法是非常耗时的,要求编程人员对算法本身和GPU底层架构都十分熟知;另一方面,GPU代码缺乏可移植性,同一份代码在不同GPU上获得的性能可能会有巨大的差别。要想将已有的某一GPU上的代码移植到另一GPU上且保持较高的性能几乎是不可能的,往往需要对其进行大量的修改才能达到目标。  针对GPU编程的复杂性和可移植性问题,设计并实现了一种可以有效地将数据流程序映射到GPU上的编译框架,该框架的输入为COStream程序,输出为针对GPU平台并行优化后的OpenCL目标代码。系统针对GPU平台进行两个层次的优化:软件流水调度和GPU平台的数据流程序优化。软件流水调度的任务划分阶段利用METIS对任务进行划分,尽量考虑到负载均衡和通信开销。在针对GPU平台的优化过程中引入了扩大因子,合理设置扩大因子既可以让应用程序充分利用GPU计算资源,又能有效减少线程间同步次数,降低同步开销。CPU和GPU之间的数据传输可以利用固定内存技术来加速。有效的将计算任务和通信任务重叠对提升程序性能有很大的帮助。此外,局部内存的合理使用不仅能实现对全局内存的合并访问,也能减少对全局内存的访问次数,从而降低访存开销。其他的OpenCL优化方法比如内建本地函数的使用也能在一定程度上提升程序性能。  实验以NVIDIA Tesla C2050为GPU平台,选取数字媒体领域典型的算法作为测试程序。实验结果表明,目标代码有很大的性能提升,但仍有不少改进的空间。
其他文献
视频监控系统为公民的正常生活提供了极大保障的同时,严重影响到公民的个人隐私。现有视频加密算法采用的语法元素不适于做压缩域隐私区域加密;同时非隐私区域与隐私区域之间存
望手诊病是中医中一种重要的诊断方法,具有悠久的历史,并且具有良好的诊断效果,它的客观化和自动化的实现是目前研究的热点之一。掌纹中的纹线特征是望手诊断的重要依据之一,
随着多媒体和互联网技术的不断发展,越来越多的图像是以嵌套在web文件上的形式存在,web图像的数量和种类也在日益的增多。从这些海量的图像中找到自己想要的图像是越来越困难,但
模式识别是计算机智能的一个重要研究领域,它在医学、工程、交通、天文、军事等很多领域有着广泛的应用。 本文以轨道衡车牌识别系统为应用背景,对车牌识别系统的各阶段的任
雷达信号采集和显示控制是雷达系统的重要组成部分,雷达系统不仅需要能够对目标进行精确的跟踪,而且还必须对雷达获取的数据进行高效率地处理,将获取的目标信息以直观、有效
随着软件系统规模和复杂性的不断增加,软件体系结构在软件开发中的作用显得越来越重要。近年来软件工程界提出了许多描述软件体系结构的方法,本文在充分研究了软件体系结构,
本文通过研究在一个实时系统中会有多类型任务的出现,将实时任务按照到达模式和截止时间类型两个纬度进行分类。并且在分析了诸多的调度算法中,对截止时间单调调度算法进行了
在计算机三维仿真应用中,数字地形模型系统占据了相当重要的地位,对整个应用的用户感官感受起到了非常大的影响,利用数字地形模型,三维仿真系统能实现整个场景的漫游,能更好的使用
随着Internet上的多媒体信息的日渐丰富,人们需要传输大量的视频、音频等二进制数据。传统的多媒体资源传输方式是客户端/服务器模式——客户端获取资源,服务器端发布资源。
随着先进制造技术研究与应用的不断深入,产品数据管理(PDM)和计算机辅助工艺设计(CAPP)己成为制造业实施生产自动化和企业信息化的重要组成部分。为了解决传统CAPP系统存在的