分支密集应用在GPU上的优化方法研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:bitgxd
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
现如今,以CPU+GPU为主的异构模式被广泛的使用,06年CUDA编程架构的推出大大提高了GPU的可编程性,各领域内使用CUDA进行加速的应用程序大量出现。CUDA的架构中引入了STMD的概念。STMD中在提高硬件资源利用效率的同时也引入了一些问题。STMD架构中引入了Warp的概念,Warp是GPU创建,管理,执行的最小单元,Warp有在一个周期内其中所有线程必须执行同一条指令的特性,因此在遇到分支等情况时会产生Control Divergence,严重影响程序的执行效率。本文重点研究方向是如何最大程度上降低分支密集型应用在执行过程中产生的Control Divergence以提高程序性能。为了解决这个问题,本文提出了一种基于线程交换的软件优化算法,可以在真实机器平台上应用于分支密集型应用程序,并能够有效的降低此类程序中大量存在的Control Divergence,从而提高程序性能,缩短程序运行时间。本文所做的工作以及成果有:1)深入分析了多个分支密集应用产生Control Divergence的具体原理,并对程序按如下标准进行分类。(1)易获得分支特性(Easy-Handled,EH)与不易获得分支特性(Hard-Handled,HH),(2)线程编号相关(Thread-Index Dependent,TID)与线程数据相关(Thread-Data Dependent,TDD)。通过这种分类将CUDA程序分为四类,可便于针对每一类进行不同的优化。2)提出并设计一种基于线程交换的优化算法框架,并进一步细化,将其分成直接构造映射表优化算法(DIMA,Direct Index-Map Algorithm)以及预处理构造映射表算法(PIMA,Pre-process Index-Map Algorithm)。实验结果表明,优化之后程序的Control Divergence基本降至无,使用线程交换优化算法优化之后相对与优化之前运行时间降低明显。优化之后Kernel的加速比平均有1.5左右,而总体运行时间的加速比平均有1.2左右。3)DIMA与PIMA算法中参数的控制可能会对优化结果产生影响。其中对于TID类型的程序线程交换范围会有影响,对于适用于PIMA算法的程序中,预处理的次数也是需要考虑的因素,因此对算法执行过程中参数的控制进行测试研究并得出结论。测试发现,对于不同的程序,由于要进行控制Control Divergence与控制不规则访存之间的权衡,线程交换范围的最优解不同。同样的,对于使用PIMA的程序,最优的预处理次数也不同。4)通过分析算法执行过程中的开销的产生情况并提出基于流水的延迟隐藏算法,这种算法利用CUDA中提供的异步数据传输函数Cuda Mem Cpy Asyc使得数据传输与Kernel执行重叠,通过合理的控制传输数据的范围以及执行Kernel的时间使之尽可能相同,那么就可以在一定程度上隐藏传输开销,提高程序性能。实验结果表明,相对于未优化之前,加速比平均有1.1。
其他文献
本文是在贵州电信ODS系统平台工程的基础上完成的,根据本工程以及其他系统的实施经验,决定ODS成败的关键技术要素有三点:数据模型、数据质量控制、元数据管理。本文结合贵州电信
随着我国经济建设的快速发展,国内外大中型枢纽机场的航班流量增长迅速,进而导致民航领域各单位面临的压力与日俱增,航班延误现象频繁发生。为此,本文通过开发航班协同运行管
近年来,随着计算机技术和互联网技术的迅速发展,远程教育和网上考试成为网络应用的一个重要方面。当国外一些国家已经获得快速发展的同时,在国内,网上考试还处于一个试用阶段。虽
随着高性能计算技术和计算流体力学的发展,数值模拟已经成为粘弹流领域与实验同等重要的研究方法,并广泛应用于物理、化学、生命科学、材料以及生物医药等领域。然而,开发面
随着Internet的普及与发展,网络已成为一个巨大的信息源。大量的数字信息在带给人们丰富便利的信息资源的同时,也给有效信息的快速获取带来了困难。自动文摘技术是自然语言处
本文对我国大批量定制生产技术体系结构展开研究,并着重研究了异构协同设计技术。研究内容如下。 (1)为了支持从集成化设计到客户化定制,从敏捷化配套生产到个性化售后服务
近年来,无人机技术广泛的应用于军事和科研领域,网络化的无人机应用对广域侦察、跨障碍监控等任务有较好的适应性。执行任务时,在无人机反馈的各类信息中,视频流在实时性和直
本文主要研究基于小波变换的图像逆半调方法。因为小波具有多分辨率分析的特性,能够区分图像的高频与低频部分,所以适用于逆半调处理。小波变换通过去除高频半调噪声,同时最大程
自动并行化技术的研究是随着并行计算机的出现而开始的,如何用好并行处理系统以解决大规模科学计算问题是当前计算机科学面临的一个重要课题,开发高效的并行软件是解决问题的
跨越语言障碍,实现人们不同语言之间的自由交流,是人类自古以来的一个梦想。早在50年代和60年代机器翻译就吸引了相当可观的资金,尤其是军备竞赛在1957年苏联第一颗人造地球卫星