基于CPU-GPU异构平台的性能优化及多核并行编程模型的研究

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:stanley45518501
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着图形处理器(GPU)的计算能力和可编程性的不断提高,利用GPU进行通用计算(GPGPU)逐渐成为研究的热点。通常GPGPU计算采用CPU-GPU的异构模式,虽然这种异构模式能够获得好的性能收益,但其程序开发和性能优化的复杂度要比同构系统大的多。在CPU-GPU异构系统上进行计算会遇到很多性能瓶颈,例如:负载均衡、同步与延迟、数据局部性、任务划分等。这些因素对提高程序的性能至关重要。此外,尽管CUDA编程模型极大的降低了CPU-GPU异构平台编程的难度,但对于大多数串行程序开发者来说,其开发门槛还是相对较高,而且当底层的硬件平台发生变化时,软件开发者又要学习一种新的编程模型并针对新的硬件平台重新改写已有的程序,这无疑加重了程序员的负担。因此设计一种使用简单、平台无关的多核并行编程模型具有重要意义。本文主要进行了以下研究工作:(1)分析了影响CPU-GPU异构平台上程序性能的关键因素,全面总结了已有的优化方法并设计了一种使用原子函数实现不同线程块之间同步等自己的优化方法和优化策略。对每一种优化方法都进行了实验验证和理论分析,其中我们设计的使用原子函数实现不同线程块之间同步的方法比现有的重新启动内核函数的方法要快4~5倍。(2)为了进一步验证各种优化方法的效果,也为了完整的介绍在CPU-GPU异构上进行程序开发的流程(算法设计、编程实现、性能优化),我们以解决生物信息学中的DNA或蛋白质局部序列比对问题为例,在CPU-GPU异构平台上设计并实现了基于列并行的Smith-Waterman算法,综合运用多种优化方法进行优化后的并行程序获得了平均37倍的加速比。(3)在深入分析了OpenMM并行编程框架之后,我们设计了一个基于库的、平台无关的多核并行编程模型。为了验证该模型的可行性和易用性,我们实现了一个面向科学计算的原型系统,通过设计合理的API层次结构,对上层用户屏蔽了底层硬件的具体细节,用户只需在编译时根据具体的底层硬件平台选择相应的动态链接库就可以将原来的串行程序变成高效的并行程序。
其他文献
网络通信科技的迅猛发展,为人们日常生活的信息沟通提供了越来越快捷的服务。无线传感网络在科学研究、环境监测、智能公交、医疗监护、智能家居、军事侦查和日常生活等领域
数据流聚类是从大量的、有噪声的、模糊的、随机的流数据中发现不相连的、具有相似属性的簇,并使簇中数据的相似性尽可能高,不同簇中的数据的相似性尽可能低,它是数据挖掘领域的
由于相同频率信号之间的干扰、有限的网络带宽资源、网络节点的移动性以及无线信道的不稳定性,无线网络的传输效率受到严重的影响。因此如何保证和提高无线网络的传输效率以
随着信息技术的成熟、移动设备的普及,学生的学习环境从现实的课堂环境转变为虚拟的网络环境。然而大多数在线学习只是简单的延续传统教学的老路,对于不同特点和水平的学生仍
随着工业自动化程度的提高,工业机器人成为近年来研究和应用的热点,而机器人的运动轨迹规划又是机器人控制系统的一项基本目标和任务,运动轨迹的连续性和平滑性,直接影响机器人的
由于高维空间数据的稀疏性和维灾问题使得高维空间离群点的挖掘和分析始终是数据挖掘的难点之一,本文在现有高维空间离群点挖掘算法的基础上,提出了用数据直方图和FP增长(Frequ
作为实现业务过程建模、仿真分析、优化管理与集成的核心技术,工作流目前已被广泛运用于项目管理、办公自动化以及业务流程重组等领域。建立工作流模型是实现工作流技术的关键
21世纪末以来,随着半导体技术、通信技术、微电子系统、计算机技术等的发展,具有环境感知、信息处理、信号传播的传感器节点逐渐出现,而由其组成的无线传感器网络的技术及应
随着信息化科技的发展,人们对计算资源和存储资源的需求不断的增加。云计算的提出能够很好的解决因需求增长带来的资源利用问题。同时伴随着虚拟化技术逐渐成熟,尤其是在服务
从20世纪后期到本世纪初,由于信息技术的迅猛发展及其产业规模的不断扩大,云计算成为继自来水、电力、天然气、电信之后的第五个公共基础设施服务。云计算是利用网络将各种资