The Way of the great learning involves manifesting virtue, renovating the people, and abiding by the highest good.

2008年11月24日星期一

CUDA计算未来 专访NVIDIA首席科学家D.K

3月26日,适逢NVIDIA首席科家David Kirk(柯大为)在北京清华大学做学术报告,笔者得以有机会采访到这位当代PC图形界的传奇人物。David从1997年开始出任NVIDIA首席科家,是NVIDIA GPU技术和产品的奠基人之一,他领导NVIDIA很多GPU的研发并在2003年获得图形业至高奖——多媒体业务奖,David同时也是NVIDIA CUDA的创始人与奠基人。
● David Kirk谈CUDA和计算的革命

David Kirk此行主要是宣传NVIDIA的CUDA(Compute Unified Device Architecture的简称,意为计算统一设备构架)并以此预见3D图形的未来,这些概念则围绕着GPU来展开。

David Kirk表示GPU的功能还不仅仅是在已经取得巨大成就的图形方面,现在有很多新的领域在使用GPU。比如物理模拟、信号处理中的一些音频、视频的处理等等,还有计算机科学以及数据库的管理。此外一些与计算相关的科学,比如像生物学、金融学等等都可以通过GPU的应用来极大地加强计算机在该领域中的运算能力,这些都依赖于CUDA。

CUDA兼有软件和硬件的性质,是为GPU所重新设计的一个新的架构,它使得开发人员可以用C语言而不是原来的OpenGL或DirectX来对硬件进行控制。通过使用基于GPU的C语言编程,就可以实现原来非图形的应用的上百倍加速,让GPU有更多新的应用领域。NVIDAI从GeForce 8800系列开始到以后所有GeForce 8/9系列、Quadro 5600之后的新产品,所有Tesla产品都可支持CUDA,同时CUDA官方网站的SDK目前累计已经被下载了5万人次。


David Kirk

David Kirk认为这是一个新的时代的开始,这种异质性的、非同性的运算的新的时代的开始,会是一个多核CPU和多核GPU共存的时代,而在很多密集并行计算场合,CUDA优势明显。伊利诺依大学的生物化学实验中,通过CUDA方案可以让计算速度较单一PC CPU计算快200倍。在另一个研究神经元作用的公司里,这个同比数据是130倍。另一方面,CUDA也能够脱离现有3D API另辟蹊径的进行图形计算和绘制,在某些场合,它甚至比专用的OpenGL或D3D更有效。

● 水瓶和飞机?David Kirk谈CPU+GPU
在回答记者的CPU+GPU整合方案前景问题时,David Kirk比喻有人说要把GPU集成到CPU里面去,就好比把一架飞机放到这装水的瓶子里一样,这是不可能的,因为飞机本身太大了。GPU要比CPU复杂很多,如果要把一个现代非常高性能的GPU集成到CPU里面,跟这个比喻是一样的效果。

David Kirk还说对于低端市场,集成可能是更为需要的,如果CPU和GPU都做得很好,人们自然就想把它们放在一块儿,降低入门门槛,减少人们由于买低端的产品需要花的钱。但是对于比较高端的用户来说,人们追求的是性能,对成本的考虑不像低端那么多,所以他们可能要的是更高性能、“更大"的GPU或者CPU。

谈及未来,David Kirk觉得这两个处理器应该是合作的关系,因为各自的强项是不一样的,CPU的强项是控制、管理数据流然后决策等等,而GPU更强的地方是在于对数据的处理,以及同时处理大量类似的运算等等。它们各自不能相互取代,未来对于编程人员来说,他们必须要意识到这些硬件各自的能力和它们的特性,从而能更好的发挥这两个处理器不同的特点。

● 天生并行架构 CUDA编程简单

在谈到CUDA及GPU对于通用计算的并行控制时David.B Kirk说,对于CPU并没有特别的适用于并行计算的处理器来说,要对它进行并行编程和线程编程是非常危险、非常困难的,容易在程序运行过程中出现问题。但是对于利用CUDA和GPU运算的硬件来说,都是有非常明确的控制的,而且硬件有相应的参数,比如管理同步的问题,以及出现预测的问题之后有什么样的规则进行处理等等。对于CPU来说,完全没有可预测性,对并行线程的运算也没有任何支持的,也没有任何的硬件功能管理。所以,GPU具有在并行运算当中多线程的天生优势;而对于CPU进行编程,对程序员来说,他们需要一些多线程编程的支持,但是这些支持并不多。它要承担一定的责任,但是硬件本身也承担了很大的工作量。

● 逼近现实 CUDA和光线追踪及未来图形

David Kirk认为线追踪实际上也只是对于光的传播路径近似的表现。由于CUDA是一种编程环境,所以用户可以写任何程序。当然也可以写光线追踪的程序在上面。“现在有人们认为光线追踪是最完整的解决办法,但我认为未必是,它只是解决办法中的一个。因为对于未来来说,不可能只有一种方法能进行图形制作。25年前我就开始研究光线追踪的问题,但这25年来并没有新的东西,只不过效率提高了。所以我相信,对于同一幅画来说,我们应该有多种方法进行制作。而且到目前为止,最快的光线追踪程序是在NVIDIA GeForce 8800系列上运行的,这个程序可能是目前最快的光线追踪。”David Kirk如是说。

当笔者问及GPU如何继续实现缩短视觉虚拟世界与真实世界的差别时,David Kirk表示这正是NVIDIA来说努力的方向,希望能够减少我们所希望实现与能够实现的图形之间的差距。因为人们总会问,到底图形和GPU的下一步是什么。David Kirk认为最重要的是要认识到离我们所希望实现的还差得很远,无论是硬件的性能上还是算法的改善上,都有很长的道路和很大的提升空间。无论从GPU硬件角度,还是从算法的软件角度来说,NVIDIA还有非常多的事情要做。

● 国内CUDA应用

DavidKirk提及,清华就有一位教授在用CUDA进行分子动力学的模拟,而不少清华大学的其他的研究人员也在用CUDA进行相关的开发工作,这正是他来到中国来的原因。DavidKirk希望能到各处去,让大学、研究机构更多地使用它,并且在大学里更多地教授CUDA的相关知识,使得在这项技术的使用上中国可以领先于其他国家。

没有评论: