[发明专利]一种快速开发CUDA并行程序的方法在审

专利信息
申请号: 201310725876.8 申请日: 2013-12-25
公开(公告)号: CN103729180A 公开(公告)日: 2014-04-16
发明(设计)人: 张广勇;卢晓伟;沈铂;吴韶华;张清 申请(专利权)人: 浪潮电子信息产业股份有限公司
主分类号: G06F9/44 分类号: G06F9/44;G06F11/36
代理公司: 暂无信息 代理人: 暂无信息
地址: 250014 山东*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 快速 开发 cuda 并行 程序 方法
【说明书】:

技术领域

发明涉及计算机应用技术领域,具体的说是一种快速开发CUDA并行程序的方法。

背景技术

自从2006年英伟达(NVIDIA)公司推出图形处理器G80(包含了128个流式多处理器,最新的G200包含了240个多处理器)以来,图形处理器(GPU,Graphic Processing Unit)在某些大规模并行计算的应用上,相对于CPU来说性能提高可达100倍以上。尤其从2008年5月,NVIDIA公司推出用于GPU的开发平台统一计算设备架构(CUDA,Compute Unified Device Architecture)软件开发工具包(SDK,Software Development Kit)1.1以来,基于GPU平台的并行计算便得到了大规模的推广。CUDA为GPU计算提供了统一计算设备架构,使用户很容易地将GPU编程融于传统的编程工具(例如Visual Studio、Gcc等)和语言(例如C、C++及FORTRAN等)中。在短短的一年以来,CUDA被应用于加速大规模并行计算领域的许多方面,如在图像处理,物理模型模拟(如计算流体力学),工程和金融模拟与分析,生物医药工程,数据库及数据挖掘,搜索,排序等诸多方面都有很好的应用,在很多应用中取得了1至2个几何数量级的加速。

GPU拥有更多的晶体管,用于数据处理而不是像CPU那样去处理数据cache和指令控制,这意味着GPU具有巨大的并行计算能力。

CUDA C作为GPU的并行编程语言。CUDA C编程将CPU称之为主机,将GPU作为一个协处理器称为设备。在CUDA编程中,多个线程同时执行在一个GPU上,并由多个线程组成一个线程块(Block),多个线程块又组织成网格(Grid);另外,每32个线程组成一个束(warp)。CUDA编程中常用到的优化技术有合理的网格配置,每个SM上有足够多的warp可隐藏访问延迟,并进行全局存储器的合并访问,共享存储器的使用,纹理存储器和常量存储器的使用,寄存器的合理使用等等。CUDA并行程序需要执行成千上万个线程,比CPU串行程序开发要复杂,设计不当会导致结果的错误和性能下降。

可见,为实现CUDA并行程序开发的需求,需要一种快速、有效地实现CUDA并行程序开发的方法。

发明内容

本发明的技术任务是解决现有技术的不足,提供一种快速开发CUDA并行程序的方法。

本发明的技术方案是按以下方式实现的,该一种快速开发CUDA并行程序的方法,其具体操作过程为:

步骤一、CPU串行程序修改,即按CUDA程序格式要求对CPU串行程序的分析和修改,其中

1.1)CPU串行程序分析具体包括:利用打印时间方式测试串行程序中的热点模块;根据算法特点和数据特点分析热点模块是否可以并行,是否可以采用CUDA细粒度并行;根据可并行的模块,找到CUDA内核将会使用到的数组,并对数组结构进行分析;

1.2)仿CUDA格式的CPU串行程序修改,具体包括:原程序算法修改,修改成可并行的代码;数组修改,修改成适合CUDA并行程序格式的数组形式;

步骤二、CUDA并行程序移植,即设计CUDA并行程序把CPU程序移植到GPU平台,以及CUDA并行程序的优化,其中

2.1)设计CUDA并行程序具体包括:线程块、网格的设计,用于数据的划分和内核的计算;通信函数的实现,用于进行CPU与GPU之间的数据传递;内核的设计,实现CUDA并行加速热点模块;

2.2)所述优化CUDA并行程序,具体包括:将上述CUDA并行程序利用优化技术进一步提高并行程序的性能,主要优化包括2个方面:通信优化和内核优化。

所述步骤1.1)的详细过程为:

热点测试是指根据时间的测试结果确定热点函数,作为后面移植的重点代码模块;

找出热点代码后,需要分析热点部分的算法、数据特点,根据算法和数据的特点分析其是否可以并行,是否可以采用CUDA细粒度并行,确定其并行性;

根据对串行程序的分析,确定哪些模块需要移植到GPU平台上运行,对于需要运行上GPU平台上的代码内的数据进行分析,确定数组在代码中的什么位置传递到CUDA内核中,传递的方向是CPUtoGPU还是GPUtoCPU,以及每次传递时的数据大小等信息。

所述步骤1.2)的详细过程为:

对于CPU串行程序,根据并行算法的要求修改原程序,改成可并行的模式;同时需要重新设计并行算法;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310725876.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top