- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在图形处理器上使用CUDA来研究一个通用的应用程序的性能
摘要
图形处理器(GPU)提供了大量简单的、并行数据、大量的多线程内核和高内存带宽。 GPU架构正变得越来越可编程,与通用处理器(CPU)相比,为各种通用应用程序提供了巨大的加速潜力。本文采用NVIDIA的CUDA类似C语言,并且为了为各种应用类型探索GPU的成效,他们最近推出了GTX260 GPU的工程样品,并介绍了一些具体的编码成语来提高他们在GPU上的性能。GPU的性能被比作单核与多核CPU性能,使用OpenMP实现写入多核CPU的性能。本文还讨论了CUDA编程模型的优势和低下的效率,同时有一些令人欣慰的性能,也可能考虑到一些可取的特点,也更容易支持大量的应用。
1、介绍
结合探索更大指令级水平并行的困难,为了限制单核心微处理器的性能增长,半导体扩展限制和相关的电源和散热挑战已经结合限制单核多处理器的性能,如果程序员或编译器直接并行软件,即使多核的利益能被实现,这也使得大多数微处理器供应商转向向多核芯片组织求助。
在本文中,因为它们为非可视化、通用的计算(大规模并行处理,高内存带宽和通用的指令集,包括支持单和双精度IEEE浮点算术(尽管用四舍五入有一些限制))提供了丰富的资源,这使得图形处理器(GPU)变得更有吸引力。事实上,GPU真的有“多核”处理器,拥有数百个处理元素。 当GPU对传统的、多核CPU 可取时,GPU通用计算的到来使得它的理解变得更重要。随着新的并行计算平台如GPU和多核CPU占领市场,在编程便捷和硬件实施成本之间,这也使得重新访问并行编程模型和找到最佳平衡变得更重要。本文首先探讨在何种程度上可以利用现有的并行编程模型来使传统CPU域的问题可以被映射到GPU架构上。伯克利分校最近的一份报告[1]认为,成功的平行架构应该执行超过一组13个代表的类问题,被称为小矮人,每个捕获一套相关的问题。 受这项工作的启发,并注意到一个明显的CPU和GPU的融合结构。在本文中,我们的目标是把CUDA作为一种工具来检查其有效性,并使用不同的性能特征来表达并行计算。在GPU上,问题源于不同的小矮人的问题。我们定量比较一系列运行的应用程序的性能并在NVIDIA的GeForce GTX260 GPU和一套具有最先进的双3.2千兆赫的多核CPU系统、超线程英特尔,强处理器上运行。 我们使用CUDA来开发GPU应用程序并使用OpenMP来开发CPU应用。我们还研究了映射CUDA的计算内核的复杂性,以更好地利用GPU的高核数、线程管理软件,以及独特的记忆层次结构,并探讨一些有时非直观的优化技术。例如,在热点基准中,我们引入一个金字塔数据结构,以避免线程块之间需要的同步。我们表明,当涉及到许多不规则的数据排列查找图标时,对控制流开销时是有用的。所有的应用程序显示了令人满意的加速,在一个更一般的多核世界中,我们所做的工作的主要贡献是讨论CUDA编程模型的优势和缺点。对于我们基准的大多数,单线程、CUDA技术、OpenMP代码和样本输入用于在/wiki/rodinia网站上公开发布。 性能源于我们检查的广泛的应用领域,连同以前公布的数据,表明并行计算模型CUDA的巨大潜力;然而,我们也注意到一些修改,在GPU上使用CUDA和底层硬件架构,来提高程序员的能力,以实现复杂的应用程序。
2、相关工作
近年来,大量的工作已探索如何使用GPU的通用计算,有时也被称为“GPGPU”。通用计算语言GPGPU出现之前, GPU实现只能使用现有3D渲染的APIs:OpenGL[12]或DirectX[16]来完成。语法,需要解决多边形光栅中的问题,并通过所有像素的独立使这种方法变得更麻烦。单从GPU厂商所做的努力来考虑,一些新的语言或API被创建来提供一个通用接口和抽象必要的3D API指令。Brook[4],SH[15]和其商业的继任者RapidMind以及 微软的加速器[27]就是显著的例子。 认识到GPU对通用计算的价值,GPU的厂商通过整个图形管线(转化顶点,光栅等),不需要估计进程,也无需使用3D APIs,使用高度并行的GPU硬件增加了驱动程序和硬件支持。NVIDIA的解决方案是CUDA语言,第3节中进一步描述了C扩展。AMD的解决方案是组合低级别的接口,计算抽象层(CAL)和Brook扩展。 使用GPGPU实现,各种广泛的应用已取得了显著的加速。在图形处理器上,解决线性代数问题框架,是由克鲁格等提出的 [13]。哈里斯等使用偏微分方程[8] ,提出了云动力学模拟,以及其他各种Nbody(例如,[21])和分子动力学模拟(如[23])也取得了了令人印象深刻的加速。一些重要的数据库,使用像素引擎[7],也在GPU上实现。各种
您可能关注的文档
最近下载
- 不同的拧紧策略的优缺点分析课件.pptx VIP
- 第三单元有趣的纸藤编织(课件)-五年级上册综合实践活动全国通用.pptx VIP
- 临床药物治疗学(本科).docx VIP
- 在办公用房权属统一登记工作动员会上的讲话.docx VIP
- ANSI ESD STM11.12-2021平面材料的体积电阻测量.pdf VIP
- 同济大学顾祥林-混凝土结构课后答案.pdf VIP
- 05人工智能技术的突破-大语言模型技术02.pptx VIP
- 安全文明施工方案.docx VIP
- 05人工智能技术的突破-大语言模型技术01.pptx VIP
- 矿井供电系统与井下供电安全培训课件PPT(共 51张).ppt VIP
文档评论(0)