GPU和CPU整合新动向!CUDA+OpenCL详解

时间:2008-12-19   来源:泡泡网   网友评论:0   人气: 1148 作者:

众所周知,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算不动的任务转移过来,从而消除程序运算时的瓶颈,大幅提升电脑执行效能,以更小的代价(成本和功耗)实现更强大的性能。

开创视觉计算帝国GTX280/260权威评测

    但是,想要让一大批应用软件从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则是新的突破点,它的潜力几乎是无限的!


 

文章评论