NVIDIA为了推广GPU通用计算,开发了CUDA编译软件,供广大程序员免费使用。而两年时间已经过去,现在CUDA将给我们带来何种体验呢?我们不妨通过NVIDIA公司首席科学家David Kirk和伊利诺伊大学教授胡文美先生带来的介绍来了解一下CUDA。

伊利诺伊大学教授胡文美先生(左)和Nvidia首席科技官David Kirk先生(右)
CUDA是世界上第一个针对GPU的C语言开发环境,其最大的优点就是可以充分利用GPU强大的浮点运算能力从而解决复杂的科学运算问题。根据测试,GeForce 8800显卡在CUDA中的峰值运算能力可达520GFlops,而最新的GTX280 GTX280报价、 参数、 图片、 群乐显卡则接近1TFlops。这相对于CPU而言无疑具有巨大的优势。在我们的印象中GPU只能用来处理图像,不过CUDA要承担的任务是让显卡可以用于图像计算以外的目的,它是一个完整的GPGPU解决方案,采用C语言作为编程语言来使用GPU强大的硬件资源。C语言在国际上是普及程度最高的计算机编程语言,所以CUDA大大降低了GPU应用的门槛。

使用GPU来进行科学计算还有一个优势就是成本,相比于目前的中高端CPU产品,GPU的成本相对较低,而能够实现的性能却相当可观。
之前Nvidia曾介绍过使用硬件来支持双精度浮点计算,不过当初还是猜测将以模拟的形式为主。David举例说明:“会有一个模拟函数库提供给软件开发者,这并不是意味着去运行真实的应用程序,只是作为应用开发而使用,因为我们下一代产品将会支持双精度的浮点计算”。当我们提到下一代产品是什么时候,David表示将是Tesla2。
David和胡教授对于CUDA能够成为业界标准也是充满了信心。NVIDIA认为,现有的环境风险险显而易见但却又被牢牢控制和掌握。而所谓的标准,在目前GPU并行计算和高性能计算独特的这个领域,开发环境上并不存在。CUDA甚至可以被看作第一个产品,那么CUDA更有资格成为标准。同时CPU也一样可以用CUDA编程,NVIDIA到时候也会让CUDA在CPU上用得更好。
而目前AMD的显示卡是不能运行C代码的,NVIDIA曾经很真诚的邀请那些对CUDA感兴趣的合作伙伴加入计划,但最后我们没有能够与AMD达成合作协议。CUDA并非一个纯软件的方案,它还需要在硬件(GPU)上做出相应的设计,在G80以及Nvidia的下一代产品中都会有CUDA相关的硬件设计。
CUDA目前只有两岁,对于这样一个全新的技术我们也许不能有太多苛求。如果能够被市场所接受,那无疑将是令人欣喜的,毕竟对于用户来讲一块显卡的功能越多那么花出去的钱也就越值。不过目前基于CUDA的开发还仅限于NVIDIA一家厂商,能否如NVIDIA所愿将CUDA进行普及还是任重而道远的。
相关报道
DIY硬件导航