GPU挑战CPU地位!详解CUDA+OpenCL威力
分享
[泡泡网显卡频道 12月16日] 众所周知,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的通用计算之路。
2人已赞