- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
挖掘GPU通用运算潜能,OpenCL和CUDA
NVIDIACUDA技术的到来,使GPU通用运算的应用领域得到了全面扩充,利用
GPU强大的并行运算能力,使更加适合GPU进行运算的程序执行效率大幅提升。虽然早
就有人提出了让并行计算架构的GPU,去处理非常适合他们的大规模并行计算工作,但是
在CUDA问世前,所谓的GPGPU概念并没有真正的为我们解决问题,而早期专为图形运
算而设计的GPU并不能通过一种通用性强的手段完成在GPU上的编程任务,专业性强的
图形计算语言仅仅掌握在少数的专业图形开发者的手中。
NVIDIACUDA技术的最大突破就是可以让用户通过简单、易用、使用率广泛的编程
语言对GPU进行控制,从而为人们提供高效率的运算工作。而最近一个为“OpenCL”的名
词越来越多的出现在我们的视线中。
OpenCL是一种通用运算API,同样是种异构计算机的一种开放式开发语言,它也可
以控制GPU去进行通用运算,并且还得到了IT业内广泛的关注和认同。CUDA和
OpenGL都是创造计算机异构架构的方式,那么它们之间到底有何不同?OpenGL会不会
取代CUDA?在进GPU通用运算时,我们应该使用CUDA还是OpenCL?……以上的问题
越来越多的被关注GPU通用算的人提出,而对这两项技术了解不多的朋友更是被搞得一
头雾水。
今天我们就为大家带来一次CUDA和OpenCL的详细解析,从未为您揭开CUDA与
OpenCL之间的关系之谜。
并行计算的利器OpenCL问世
OpenCL1.0规范在2008年12月浮出水面,12月9日在新加坡召开的2008亚洲
SIGGRAPH大会上NVIDIA公司正式宣布完全支持KhronosGroup新近发布的OpenCL
1.0技术规范。我们已经知道了OpenCL(开放式计算语言)是一种全新计算应用程序接口
(API),它让开发人员能够利用GPU内部巨大的并行计算动力,那么KhronosGroup又是
什么呢?
KHRONOSGroup制定了OpenCL标准,KHRONOSGroup这个工作小组中包括了
很多厂商,如:Intel、AMD、IBM、SONY、NOKIA……,NVIDIA也是KHRONOS
Group的一员,并且参与了OpenCL内容的制定。由多个厂商成员组成的KHRONOS
Group,提供了多种开放API标准的制定。
KHRONOSGroup中不仅包括了传统的PC硬件厂商,还包括了很多移动设备领域的
厂商,因此,我们不应该将这个组织以及他们制定的标准局限在PC平台,也说明了在很
多非PC领域上对开放API标准的需求同样重要。对GPU并行计算能力的需求越来越
多,以前的OpenGLAPI并不能满足当前的需要,而OpenCL正是用来满足这些需求的,
也从另一个侧面反映了NVIDIA一直强调的视觉计算发展方向。
什么是OpenCL?
OpenCL是一种全新计算应用程序接口(API),它的全称是OpenComputeLibrary(开
放式计算语言),它让开发人员能够利用GPU内部巨大的并行计算动力。OpenCL的作用
就是为通用计算领域提供一个跨平台的统一标准语言。
OpenCL最早是由Apple公司提出,而KHRONOSGroup通过协调各个厂商,从而
使OpenCL的跨平台特性更加完善。简单的说,OpenCL是针对并行计算的API,它可以
利用GPU进行并行计算方面的工作,OpenCLAPI是应用程序的编程接口,图形程序也有
很多API,比如OpenGL和DirectX……
OpenCL开发人员可以利用GPU和CPU的计算能力,把CPU和GPU的异构系统运
用在很多并行计算领域里面。
OpenCL工作小组
由KHRONOS所制定的开放标准
OpenCL是KHRONOS制定的多项开放标准中的并行计算和可视化的标准API
并行运算架构——CUDA
NVIDIACUDA技术,也是为释放GPU并行计算能力而设计的,NVIDIACUDA能够
通过通用性防范的高级编程语言让GPU进行非常适合的并行计算。
CUDA最初同N
文档评论(0)