网站大量收购独家精品文档,联系QQ:2885784924

CUDA--用于大量数据超级计算.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CUDA--用于大量数据超级计算

CUDA——用于大量数据的超级计算 Rob Farber CUDA使您能够在开发GPU上运行的软件时使用熟悉的编程概念。 Rob Farber是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员。他在多个国家实验室进行大量数据平行计算的研究,并且是好几个新创企业的创始人之一。可以发邮件到 HYPERLINK mailto:rob.farber@pnl.gov rob.farber@pnl.gov联系他。 ????? 您是否有兴趣在使用高级语言(比如C)编程时,通过标准多核处理器将性能提升几个数量级?您是否也希望拥有跨多个设备的伸缩能力??????? 很多人(包括我自己)都通过使用NVIDIA的CUDA(Compute Unified Device Architecture,即计算统一设备架构的简称)获得了这种高性能和可伸缩性,以编写廉价的多线程GPU程序。我特别强调“编程”是因为CUDA是为您的工作服务的架构,它不会迫使您的工作适应有限的一组性能库。使用CUDA,您可以发挥才能设计软件以便在多线程硬件上获得最佳性能——并从中获得乐趣,因为计算正确的映射是很有意思的,而且软件开发环境十分合理和直观。 第一部分 ????? 本文是这一系列文章的第一篇,介绍了CUDA的功能(通过使用代码)和思维过程,帮助您将应用程序映射到多线程硬件(比如GPU)以获得较大的性能提升。当然,并不是所有问题都可以有效映射到多线程硬件,因此我会介绍哪些可以进行有效映射,哪些不能,而且让您对哪些映射可以运行良好有个常识性的了解。 ????? “CUDA编程”和“GPGPU编程”并不相同(尽管CUDA运行在GPU上)。以前,为GPU编写软件意味着使用GPU语言编程。我的一个朋友曾将这一过程描述为将数据从您的肘部拉到眼前。CUDA允许您使用熟悉的编程概念开发能在GPU上运行的软件。它可以通过将软件直接编译到硬件(例如,GPU汇编语言)避免图形层API的性能开销,这样可以提供更好的性能。 您可以任选一种CUDA设备。图1和图2分别显示了运行在笔记本和台式机的离散GPU上的CUDA 多体模拟(N-body simulation)程序。 ????? CUDA真的可以将应用程序性能提高一到两个数量级——或者这只是一种与事实不符的夸张? CUDA是一种相当新的技术,但是在一些书面作品和Internet中已经有很多实例突出介绍了这种技术在使用当前商用GPU硬件时对性能的极大提升。表1和表2显示了NVIDIA和Beckman Institute网站上相关内容的总结。CUDA的核心是让程序员能够使数千线程保持工作状态。目前这一代NVIDIA GPU能够有效地支持大量线程,因此它们可以将应用程序性能提高一到两个数量级。这些图形处理器的价位有高有低,几乎可供任何人使用。较新的主板将通过提供更大的内存带宽、异步数据传输、原子操作和双精度浮点计算等多项硬件技术改进扩展CUDA的功能。随着技术的不断进步,CUDA软件环境将不断扩展,最终GPU和“多核”处理器之间的区别也会逐渐消失。作为开发人员,我们可以预计,具有成千上万活动线程的应用程序将变得很常见而且CUDA将会运行在多个平台上,包括一般用途的处理器。 ? ? ????? ????? 在20世纪80年代,作为Los Alamos National Laboratory的科学家,我有幸使用了拥有多达65,536个平行处理器的Thinking Machines超级计算机。CUDA被证明是天生用于现代大量平行(即高线程)环境的框架。它的性能优势非常明显。我的一段生产代码,现在用CUDA编写并且运行在NVIDIA GPU上,与2.6-Ghz四核Opteron系统相比,具有明显的线形伸缩和几乎两个数量级的速度提升。? ????? 启用CUDA的图形处理器作为宿主计算机内的联合处理器运行。这意味着每个GPU都被认为有其自己的内存和处理元素,它们是与宿主计算机分开的。要进行有效的工作,数据必须在宿主计算机的内存空间和CUDA设备之间传输。因此,性能结果必须包括IO时间才更有意义。同事们喜欢将其称为“诚实的数据”,因为它们会更准确地反映将要交付生产的性能应用程序。 ????? 我认为与现有技术相比,一到两个数量级的性能提升是一个巨变,可以在很大程度上改变计算的某些方面。例如,以前需要一年的计算任务现在只要几天就可以完成,几个小时的计算突然变得可交互了,因为使用新技术它们可以在几秒钟内完成,过去不易处理的实时处理任务现在变得极易处理。最后,它为具有正确技能集和能力的顾问和工程师们提供了良好的机会,使他们可以编写高线程(大量平行)软件。那么,对于您来说,这种计算能力又能给您的职

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档