CUDA平台上序列比对并行软件的优化
发布时间:2020-08-07 03:36
【摘要】:流应用是从科学计算、多媒体等领域中抽象出的一类应用,并且还成为了微处理器上的主要负载形式。序列比对是生物信息学的基本操作之一,具有计算密集性、并行性和局域性等特点,属于流应用范畴。由于生物技术的发展,数据库容量每年以指数增加,使得序列比对越来越耗时,传统的计算机已经很难满足该应用对实时性的要求,急需要一种新的并行计算平台去实现该应用。NVIDIA GPU从仅用于3D图形渲染扩展到通用计算,而且完全支持流应用,成为了工业界最成功的流体系结构。CUDA统一计算设备架构正是推动NVIDIA GPU成为数据并行通用计算设备的主要动力。 本文的研究成果包括:(1)研究了序列比对并行软件的平台适应性,包括在CUDA平台上开发序列比对软件中的粗粒度并行性和开发该软件的核心算法Smith-Waterman算法中的细粒度并行性。(2)从优化计算和访存、负载平衡、开发软件中的粗细粒度并行性和灵活的线程组织方式四个方面优化了序列比对并行软件,包括根据Smith-Waterman算法运行时的行为特征优化GPU线程的计算和访存操作,设计了执行算法Optimized GSW;为了实现GPU线程之间和CPU和GPU之间的负载平衡,分别设计了执行算法G_Optimized GSW和CG_Optimized GSW,提高了计算资源的利用率;灵活使用划分原理,将并行算法和CUDA平台结合,改变了子任务的映射方式,设计了粗细粒度同时并行的算法DL_GSW,同时还指出此方法在CUDA平台的局限性;改变GSW中呆板的线程组织方式,灵活设定grid维度和block维度,从而提高了每个GPU线程的计算能力。(3)实现并评测了四种优化方案,证明了优化方案的高效性,同时这些结论对程序员设计其他流应用在CUDA平台上的映射方法和优化方案有借鉴意义,对CUDA硬件架构的发展也有参考价值。
【学位授予单位】:中国科学技术大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP332
【图文】:
为了获得最优的性能,我们就要研究应用在 CUDA 平台上的优化可以从以下几个点着手优化 CUDA 程序:(1)任务分解。高效的任务分解方式可以产生足够多的并行性,之间独立工作,不需要或只需极少量的数据交换和通信。(2)优化计算和访存。编程时尽量使用高效的算术运算指令。因理分支指令的局限性,尽量减少控制流指令的使用。CUDA 架构中元,访问方式和速率各不相同,设计合适的执行算法可以最优化(3)负载平衡。这不仅指 GPU 线程之间的负载平衡,还包括 GP的负载平衡。CUDA 架构提供的异步执行模式可以实现 GPU 和 C平衡。(4)灵活的线程组织方式。CUDA 程序在 GPU 上执行的部分称nel 对应的线程结构称为 grid,grid 由多个 block 组成,kernel 执行以单位,灵活的调整 grid 维度和 block 维度会提高 GPU 上资源占用(5)并行算法与 CUDA 平台结合。在 CUDA 平台上灵活使用并
图 2.2 GT200 存储系统相联,每行 4KB。纹理存储器和常数存储器都有相应个 TPC 中有一个 L1 纹理缓存(L1 texture cache)是 he 行 32bytes,L2 纹理缓存(L2 texture cache)存在于B、8 路组相联,每 cache 行 256bytes;每个 SM 中有一存(L1 constant cache),4 路组相联,每 cache 行 64byB 大小的 L2 指令和常数缓存(L2 Instruction&constanache 行 256bytes,另外,所有的 TPC 共享大小为 32KL3 Instruction&constant cache),8 路组相联,每 cach从全局存储器中取指令的速度,GT200 架构中设有三 4KB 大小的 L1 指令缓存(L1 Instruction cache),4 L2 指令缓存和 L3 指令缓存与 L2 常数缓存和 L3 常数 中有 16KB 的共享存储器(shared memory),16384
图 2.3 GT200 架构个 bank 无法同时满足多个请求,所以必须串行响应这些请求,使得多 bank 件优势不能发挥。还有一种局部存储器(loacal memory),存在于显存 device memory 中, GPU 线程都有私有的局部存储器。当分配给线程的寄存器不够用时,编译在编译时将线程多余的私有数据放置到它们的 local memory 中。通常,共享存储器、寄存器、各级 cache 被称为片上存储器(on-chip memory局存储器、常数存储器、纹理存储器和局部存储器被称为片外存储器(off-chemory)。片上存储器有较高的访问速率,而访问片外存储器有很长的延迟。.2.2 GPU 线程和多级存储器的关系程序员将应用中可并行执行的部分写成 kernel 函数并由 GPU 来执行。为到通过计算隐藏访存延迟的目的,CUDA 架构支持大量线程活跃在流处理阵。执行一个kernel函数的所有线程被组织成一个grid,一个grid中有很多bloc
本文编号:2783417
【学位授予单位】:中国科学技术大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP332
【图文】:
为了获得最优的性能,我们就要研究应用在 CUDA 平台上的优化可以从以下几个点着手优化 CUDA 程序:(1)任务分解。高效的任务分解方式可以产生足够多的并行性,之间独立工作,不需要或只需极少量的数据交换和通信。(2)优化计算和访存。编程时尽量使用高效的算术运算指令。因理分支指令的局限性,尽量减少控制流指令的使用。CUDA 架构中元,访问方式和速率各不相同,设计合适的执行算法可以最优化(3)负载平衡。这不仅指 GPU 线程之间的负载平衡,还包括 GP的负载平衡。CUDA 架构提供的异步执行模式可以实现 GPU 和 C平衡。(4)灵活的线程组织方式。CUDA 程序在 GPU 上执行的部分称nel 对应的线程结构称为 grid,grid 由多个 block 组成,kernel 执行以单位,灵活的调整 grid 维度和 block 维度会提高 GPU 上资源占用(5)并行算法与 CUDA 平台结合。在 CUDA 平台上灵活使用并
图 2.2 GT200 存储系统相联,每行 4KB。纹理存储器和常数存储器都有相应个 TPC 中有一个 L1 纹理缓存(L1 texture cache)是 he 行 32bytes,L2 纹理缓存(L2 texture cache)存在于B、8 路组相联,每 cache 行 256bytes;每个 SM 中有一存(L1 constant cache),4 路组相联,每 cache 行 64byB 大小的 L2 指令和常数缓存(L2 Instruction&constanache 行 256bytes,另外,所有的 TPC 共享大小为 32KL3 Instruction&constant cache),8 路组相联,每 cach从全局存储器中取指令的速度,GT200 架构中设有三 4KB 大小的 L1 指令缓存(L1 Instruction cache),4 L2 指令缓存和 L3 指令缓存与 L2 常数缓存和 L3 常数 中有 16KB 的共享存储器(shared memory),16384
图 2.3 GT200 架构个 bank 无法同时满足多个请求,所以必须串行响应这些请求,使得多 bank 件优势不能发挥。还有一种局部存储器(loacal memory),存在于显存 device memory 中, GPU 线程都有私有的局部存储器。当分配给线程的寄存器不够用时,编译在编译时将线程多余的私有数据放置到它们的 local memory 中。通常,共享存储器、寄存器、各级 cache 被称为片上存储器(on-chip memory局存储器、常数存储器、纹理存储器和局部存储器被称为片外存储器(off-chemory)。片上存储器有较高的访问速率,而访问片外存储器有很长的延迟。.2.2 GPU 线程和多级存储器的关系程序员将应用中可并行执行的部分写成 kernel 函数并由 GPU 来执行。为到通过计算隐藏访存延迟的目的,CUDA 架构支持大量线程活跃在流处理阵。执行一个kernel函数的所有线程被组织成一个grid,一个grid中有很多bloc
【引证文献】
相关硕士学位论文 前1条
1 林乐森;基于OpenCL的AES算法并行性分析及加速方案[D];吉林大学;2012年
本文编号:2783417
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2783417.html