没有合适的资源?快使用搜索试试~ 我知道了~
基于CPU-GPU异构平台的性能优化及多核并行编程模型的研究1
需积分: 0 4 下载量 71 浏览量
2022-08-04
00:47:39
上传
评论
收藏 1.68MB PDF 举报
温馨提示
试读
76页
摘要随着图形处理器(GPU)的计算能力和可编程性的不断提高,利用 GPU 进行通用计算(GPGPU)逐渐成为研究的热点。的异构模式,虽然这种异构模式能够获得好的
资源详情
资源评论
资源推荐
中国科学技术大学
硕士学位论文
基于CPU-GPU异构平台的性能优化及多核并行编程模型的研究
姓名:陈波
申请学位级别:硕士
专业:计算机应用技术
指导教师:徐云
2011-04-18
摘要
I
摘 要
随着图形处理器(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 层次结构,对上层用户屏蔽
了底层硬件的具体细节,用户只需在编译时根据具体的底层硬件平台选择相应的
动态链接库就可以将原来的串行程序变成高效的并行程序。
关键词:GPU,GPGPU,CUDA,异构计算平台,性能优化,并行编程模型
Abstract
II
ABSTRACT
With the computing power and programmability of graphics processor uint (GPU)
increasing continuously, general purpose computing on GPU (GPGPU) is gradually
becoming a research hotspot. Usually the computing with GPGPU utilizes a
heterogeneous mode of CPU and GPU. Although the heterogeneous system based on
CPU-GPU can achieve good performance gains, program development and
performance optimization of it are more complexity compared with the homogeneous
system.
Computing on the heterogeneous system based on CPU-GPU will encounter a lot
of performance bottlenecks, such as load balancing, synchronization and delay, data
locality, task division and so on. These factors are essential to improve the
performance of the program. On the other hand, although the programming difficulty
of the heterogeneous system based on CPU-GPU reduced greatly due to the CUDA
programming model, the development requirement is still high for most of the serial
program developers. And when the underlying hardware changes, software developers
have to learn a new programming model and rewrite programs for the new hardware
platform, which increases the burden on the programmer. So it is very significate to
designing a simple and platform-independent multicore parallel programming model.
We mainly did the following researches:
(1) Analyzed the key factors which affect the performance of CUDA programs,
summarized the existing optimization methods comprehensively and proposed our
new optimization methods and optimization strategy, such as using atomic functions
to achieve synchronization between different thread blocks. For each optimization
method, we did experiments to verify its effectiveness and theoretical analysis. And
our method that exploiting atomic functions to synchronize different thread blocks is
4~5 times faster than existing method that restarting the kernel function.
(2) To further validate the effectiveness of various optimization methods, and
also to descripte the development process (algorithm design, programming,
performance optimization) of heterogeneous platform based on CPU-GPU, we
exploited CPU-GPU heterogeneous computing platform to solve the problem of DNA
or protein sequence alignment which is a bioinformatics problem, namely designed
and implemented a new column-based parallel Smith-Waterman algorithm based on
Abstract
III
CUDA platform. The optimized parallel program is 37 times faster than the serial
program.
(3) After analyzing the OpenMM parallel programming framework deep, we
proposed a library-based and hardware-independent multicore parallel programming
model. In order to verify the feasibility and simplicity of the model, we implemented
a prototype system for scientific computing and tested it. It shields the details of
underlying hardware for upper users through designing rational hierarchy architecture
of APIs. To parallelize the serial programs, programmers only need to select the
appropriate dynamic-link library depending on underlying hardware at the compile
time.
Key Words: GPU ,GPGPU ,CUDA ,Heterogeneous Computing Platform ,
Performance Optimization,Parallel Programming Model
中国科学技术大学学位论文原创性声明
本人声明所呈交的学位论文,是本人在导师指导下进行研究工作所取得的成
果。除已特别加以标注和致谢的地方外,论文中不包含任何他人已经发表或撰写
过的研究成果。与我一同工作的同志对本研究所做的贡献均已在论文中作了明确
的说明。
作者签名:___________ 签字日期:_______________
中国科学技术大学学位论文授权使用声明
作为申请学位的条件之一,学位论文著作权拥有者授权中国科学技术大学拥
有学位论文的部分使用权,即:学校有权按有关规定向国家有关部门或机构送交
论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入《中国学
位论文全文数据库》等有关数据库进行检索,可以采用影印、缩印或扫描等复制
手段保存、汇编学位论文。本人提交的电子文档的内容和纸质论文的内容相一致。
保密的学位论文在解密后也遵守此规定。
□公开 □保密(____年)
作者签名:_______________ 导师签名:_______________
签字日期:_______________ 签字日期:_______________
剩余75页未读,继续阅读
思想假
- 粉丝: 25
- 资源: 326
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSCMS登录模块需要的JS文件
- JSP网络购物中心毕业设计(源代码+论文).rar
- 白盒测试报告.docx
- 基于LM5117芯片评估开发板硬件参考设计(原理图+PCB)+中英文数据手册资料.zip
- 照片批量重命名软件(文件批量修改图片文件名)
- app.apk
- 人工智能(AI)是计算机科学的一个分支,旨在开发和应用能够模拟、延伸和扩展人类智能的理论、方法和技术,包括机器人、语言识别、图像
- 嵌入式与物联网开发是当今信息技术领域的两大重要分支,它们相互交织,共同推动着智能化时代的进步 嵌入式开发主要关注在嵌入式操作
- 网络安全,这一看似高深莫测的领域,实则与我们每个人的生活息息相关
- 毕业设计基于深度学习的视觉问答系统源码+文档说明+答辩PPT.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0