技术开发 频道

CUDA与C++联手构筑高效节能GPU

  【IT168 专稿】在GPU领域,NVIDIA推出的CUDA技术是一种并行计算体系架构,比单纯的CPU运算效率高至少十倍。在编程语言领域,C++在每瓦性能上存在绝对优势,与CUDA并行计算的高效节能异曲同工,C++ AMP的并行异构计算环境把两者结合在一起,这无疑是效能优化的非常好的选择。

  在6月16日举办的AMD Fusion开发者峰会上,微软发布了C++ AMP用于帮助开发人员充分适应现在和未来的高度并行和异构计算环境,将C++扩展到GPU计算领域。通过C++ AMP扩展程序,能够让程序员轻松调用CPU和GPU的异构并行计算性能。微软同时宣布C++ AMP标准将是一种开放的规范,允许其它编译器集成和支持。相比同样免费开放的OpenCL,微软凭借自身实力优势,相信C++ AMP将会成为开发人员一个更好的选择。

  C++是一种使用非常广泛的计算机编程语言。它是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。在最新编程语言排行榜中,Java、C、C++占据排行榜前3甲,C++比例占总编程语言的10%。可见在编程语言中,C++是相当受欢迎的。C++相对于其他编程语言,如Java、C#,优势在于程序的运行性能。

  上周,微软和NVIDIA联合主办了一个活动,资深C++的开发者、硅谷当地首席微软语言架构师Herb Sutter(下图)发表演讲称,C++ AMP和CUDA是同一事物的两个方面:CUDA的技术优化到高性能的同时,C++ AMP的效能也将得到优化。事实上,未来将属于CUDA开发者。Herb还指出,相比其他编程语言,C++在每瓦性能上存在决定性优势,这意味着基于C++的解决方案是最节能的选择。

CUDA和C++ 联手构筑高效节能GPU

  Herb的演讲结束后,一个NVIDIANs团队提到了CUDA的基本要素Thrust。Thrust是一个类似于STL的CUDA并行算法库,能够使程序更简洁易读。通过利用Thrust,程序员得以快速构建CUDA程序,并能够获得极高的稳定性和性能与精度,并行排序等例程的速度可提升5至100倍。

  Thrust提供与CUDA C完全兼容的接口,提供了丰富的数据并行算法,例如scan、sort、reduce等,可以简单快捷地构成复杂算法,并使得代码获得更高的可读性。使用这些高度抽象的方法来表达计算,可以隐藏细节,并且Thrust会自动选择最有效率的算法实现。Thrust C++库通过处理存储器存取和分配等低级功能,从而大幅降低了入门门槛。

  C++ AMP将随同下个版本的Visual Studio一同发布,所以至少要到今年秋季的微软的BUILD大会,开发者才能使用C++ AMP,但你可以在www.nvidia.com/getcuda下载CUDA和Thrust。

        更多内容请点击:

        CUDA专区:http://cuda.it168.com/

        CUDA论坛:http://cudabbs.it168.com/

0
相关文章