GPU并行编程有哪些优点?

No replies
Demi
Demi 的头像
Offline
Joined: 2017-03-07

在GPU并行编程过程中,OpenCL是一个不错的选择。OpenCL是Open Computing Language(开放式计算语言)的简称,它是第一个为异构系统的通用并行编程而产生的统一的、免费的标准。OpenCL支持由多核的CPU、GPU、Cell类型架构以及信号处理器(DSP)等其他的并行设备组成的异构系统。OpenCL的出现,使得软件开发人员编写高性能服务器、桌面计算系统以及手持设备的代码变得更加快捷。OpenCL由用于编写内核程序的语言和定义并控制平台的API组成,提供了基于任务和基于数据的两种并行计算机制,使得GPU的计算不在仅仅局限于图形领域,而能够进行更多的并行计算。但是,如果通过传统的方法开发一个能够运行在异构平台(在CPU和GPU的平台)的程序是很难的。不同的厂商,不同的产品型号的GPU一般有着不一样的架构,这样要想开发出一款能够高效的能够运用不同平台的所有计算资源的软件是很难的。OpenCL的出现有效地解决了异构平台的问题。

OpenCL规范是由Khronos Group推出的,OpenCL程序不仅仅可以运行在多核的CPU上,也可以在GPU上进行执行,这充分体现了OpenCL的跨平台性和可移植性,也让编程人员可以充分利用GPU的强大的并行计算能力,相对于CPU来说,GPU存在很多特点。

• GPU拥有的核心的数量要比高端CPU的核心数量多很多。虽然GPU的每个运算核心没有CPU的每个运算核心工作频率高,但是GPU的总体性能-芯片面积比以及性能-功耗比比CPU高很多,所以在处理越多线程的并行计算的任务性能高很多。
• GPU能够通过大量并行线程之间的交织运行隐藏全局的延迟,除此之外GPU还拥有大量的寄存器、局部存储器和cache等用来提升外部存储的访问性能。
• 在传统的CPU运算中,线程之间的切换是需要很大的开销的,所以在开启了大量线程的算法的效率是很低的。但是,在GPU中,线程之间的切换是很廉价的。
• GPU的计算能力比CPU强很多。

转自:http://blog.csdn.net/LG1259156776/article/details/52805221

--电子创新网--
粤ICP备12070055号