GPU挑战CPU地位!详解CUDA+OpenCL威力

2009-1-24 作者: 孙敏杰 来源: 泡泡网

关键字: GPU CUDA OpenCL 

  众所周知,GPU拥有数十倍于CPU的浮点运算能力,但如此强大的实力多数情况下只能用来玩游戏,岂不可惜?因此近年来业界都在致力于发掘GPU的潜能,让它能够在非3D、非图形领域大展拳脚。

  1999年,首颗GPU(GeForce 256)诞生,GPU从CPU手中接管T&L(坐标转换和光源)

  2000年,Hopf在GPU上实现小波变换

  2001年,Larsen利用GPU的多纹理技术做矩阵运算

  2002年,Harris在GPU上用细胞自动机(CA)仿真各种物理现象,Purcell第一次使用GPU加速光线跟踪算法

  2003年,是GPGPU领域具有里程碑意义的一年,Kruger实现了线性代数操作;Li实现了Lattice Boltzmann的流体仿真;Lefohn实现了Level Set方法等一大批成果

  2004年,Govindaraju在数据库领域应用GPU加速取得进展;商业领域,Apple推出支持GPU的视频工具

  2006年,首颗DX10 GPU(GeForce 8800)诞生,GPU代替CPU进行更高效的Geometry Shader(几何着色)运算

  2007年,主流DX10 GPU全面上市,将CPU从劳累不堪的高清视频解码运算中解放出来,如今整合GPU都完美支持硬解码

  2008年,CUDA架构初露锋芒:PhysX引擎发布,GPU代替CPU和PPU进行物理加速运算;Badaboom、TMPGEnc等软件开始利用GPU的并行计算能力来加速视频编码

  2009年,CUDA、OpenCL、DX11 Compute Shader百花齐放,GPU将会全面取代CPU进行并行计算,大批应用软件改投GPU门下……
  
  可以这么说,CPU是万能的,它几乎可以处理任何事情,但由于深度流水作业架构的特性、以及浮点运算能力的限制,它处理一些任务时的效率很低。纵观近年来GPU的发展历程,就是一步步的将那些不适合CPU处理、或CPU算不动的任务转移过来,从而消除程序运算时的瓶颈,大幅提升电脑执行效能,以更小的代价(成本和功耗)实现更强大的性能。

  但是,想要让一大批应用软件从CPU移植到GPU上,非一朝一夕所能完成,需要业界的大力推广以及开发平台及编程语言的支持。NVIDIA早在2005年开始就致力于研发CUDA架构及基于CUDA的C语言开发者平台,并于2007年正式推出,而且专门发布了针对科学计算的Tesla品牌,在GPU计算方面一直处于领跑地位。

  而今年由苹果所倡导的OpenCL标准发布后,包括NVIDIA、Intel、AMD在内的所有IT巨头都表示出了浓厚的兴趣。有了统一的标准之后,GPU计算的推广与普及就是水到渠成之事,GPU将会在电脑系统中扮演更重要的角色。

  那么CUDA与OpenCL之间有什么利害关系呢?未来谁将左右GPU的发展?GPU会否取代CPU成为计算机核心?笔者通过搜集各方资料,并采访NVIDIA相关技术研究人员,为大家深入分析GPU的通用计算之路。

  可能很多朋友还心存疑惑:目前CPU的性能已经很强大了,为什么还要花很大的代价让GPU进行辅助运算呢?这个问题可以从两个角度来回答:一般我们认为CPU在浮点运算/并行计算方面的性能远不如GPU强大,所以将GPU的实力释放出来可以将电脑获得新的飞跃;如果从更深层面考虑的话,目前CPU的发展已经遇到了瓶颈,无论核心架构的效率还是核心数量都很难获得大幅提升,而GPU则是新的突破点,它的潜力几乎是无限的!

  ● CPU核心效率提升举步维艰

  就拿目前Intel最强的Core i7处理器来说,架构方面相比上代Core 2 Quad发生了天翻地覆的变化:胶水四核变成了原生四核、引入三级缓存、高速QPI总线、三通道DDR3内存控制器、超线程技术、诸多内核及指令集优化等等……,所有这些技术共同作用的结果就是——同频率下i7 965的综合性能仅比上代QX9770提升了10-20%,这说明了什么呢?说明Intel的处理器架构已经非常优秀了,以至于在此基础上很难再有Pentium D到Core 2 Duo那种飞跃式提升。


Core i7的性能表现没有带来惊喜

  AMD方面的情况也大致如此,Phenom II相比Phenom的提升主要来自于45nm工艺带来的高频率,核心架构优化的贡献仅有不到5%。目前两大处理器巨头单核心效能都已接近极限,只能依靠新工艺带来的大缓存、高频率,而获得微弱的性能提升。




<<首页 <上一页  1  2  3  4  5  6  下一页>  末页>>  
责任编辑:熊东旭