泡泡网显卡频道 PCPOP首页      /      显卡     /      新闻    /    正文

专访NV首席科学家:CUDA将是业界标准

    一周前,NVIDIA正式发布了第二代统一渲染架构的GeForce GTX 280/260图形芯片,将3D图形性能提升到了新的境界,令无数游戏玩家为之疯狂。其实,GTX280不仅是拥有空前强大的3D图形性能,其大规模标量流处理器架构更加擅长做并行数据计算,因此NVIDIA特别强调GTX280的图形架构是图形处理架构和并行计算架构的统一体。

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

    当然,硬件需要软件的支持才能发挥出最大效能,NVIDIA为了推广GPU通用计算,特意开发了CUDA(Compute Unified Device Architecture)编译软件,力图开创一个以GPU为中心的运算平台,供广大程序员免费使用。两年时间过去了,CUDA开始走向成熟,目前开发人员已超过60000人,CUDA软件下载量高达350000次/周,很多大学专门开设了有关CUDA编程的课程,可以预见未来支持GPU运算的软件将会越来越多!

    近日,NVIDIA公司首席科学家David Kirk和伊利诺伊大学教授Wen-mei Hwu来华出席GPGPU相关技术讲解会,泡泡网有幸对这两位专家进行了有关CUDA技术的专访,更深层次的了解有关CUDA及GPU通用计算的方方面面。

Wen-mei Hwu:伊利诺伊大学计算机系教授

    胡文美(Wen-mei Hwu)教授主要在伊力诺依州立大学教授CUDA开发及并行计算的课程,对于GPGPU方面有独到的见解,与业界相关技术人员保持密切的合作关系,共同探讨、推动GPU通用计算的发展。

{imageTitle}
Wen-mei Hwu(左)与David Kirk(右)

David Kirk:美国国家工程院院士、NVIDIA首席科学家

    1989至1991年,David博士是惠普公司Apollo Systems部的工程师;
    1993至1996年,David博士是视频游戏制造公司Crystal Dynamics的首席科学家、技术带头人;
    1991年起至今,担任NVIDIA首席科学家,David一直负责制定NVIDIA新一代硬件架构构想,他的贡献包括领导了NVIDIA图形技术开发,使其成为当今最流行的大众娱乐平台;
    2002年,David获得SIGGRAPH计算机图形成就奖,以表彰他在把高性能计算机图形系统推向大众市场方面所做出的贡献。
    2006年,由于在将高性能图形带入个人计算机领域的贡献,David被选为美国国家工程院 (NAE) 院士。NAE院士是工程领域的最高专业成就荣誉。

    CUDA是世界上第一个针对GPU的C语言开发环境,可以充分应用GPU上众多流处理单元强大的浮点运算能力,解决复杂的科学运算问题。该环境目前仅支持NVIDIA GeForce 8/9/200系列显卡以及相应的Quadro专业显卡。根据NVIDIA的测试,GeForce 8800显卡在CUDA架构中的峰值运算能力可达520GFlops,而最新的GTX280显卡则接近1TFlops。

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

    CUDA要承担的任务是让显卡可以用于图像计算以外的目的,它是一个完整的GPGPU解决方案,采用C语言作为编程语言来使用GPU强大的硬件资源。C语言目前是大学的必修课程,已经国际上普及程度最高的计算机编程语言,所以CUDA大大降低了GPU应用的门槛,大家都可以用C语言写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构。

    使用GPU而不使用CPU从事科学计算的原因除了GPU在性能表现上更有优势外,还不能忽略GPU相对CPU低廉的价格。和高端的CPU售价比起来,GPU简直太便宜了,目前9600GT只要八百元,更高的8800GT也才一千元出头,而一颗入门的四核CPU就要上千元。

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

    目前GPU已经是足够强大的可编程处理器,非常适合大运算量的科学应用,诸如地质勘探,生物学,流体力学,金融建模等等。通过CUDA技术,所有开发人员都能够使用标准的C语言,挖掘NVIDIA GPU中多个处理单元强大的并行计算能力。

    随着开发人员的不断壮大,现在CUDA已经开始渗透到各个领域,使得GPU发挥出远超CPU的强大实力,进入大规模实际应用的领域包括:

  • 视频解码编码加速
  • 期货风险分析系统
  • 医疗CT立体化提速
  • 地理气象分析系统
  • 生命科学
  • CAD设计
  • MATLAB

    下面就是此次访谈的主要内容,两位业内专家就记者的疑问进行了详细的讲解。

{imageTitle}

● CUDA应用给人最震撼的一个例子,就是NVIDIA仅花了一月时间就完成了对PhysX引擎的移植工作,一款新驱动就让GeForce显卡能够代替物理加速卡支持那些采用PhysX引擎的物理游戏。当然NVIDIA收购AGEIA是众所皆知的事实,那是不是意味着两家合并为一家公司了,研发的速度会快一些。但如果是第三方的软件公司或者小组的话,用CUDA开发软件的效率是否会低一些?

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

David博士:自家的东西开发起来自然更加得心应手,不过这次进展顺利主要还是归功于CUDA更易用学习和掌握。AGIEA的物理加速卡本身就要比GPU复杂很多,但两者的共同点就是并行计算架构,由复杂到简单的开发工作自然会容易一些,有了以前的经验再加上简单易用的CUDA,一切都是水到渠成。

● CUDA仅支持NVIDIA的GPU,而无法兼容AMD的GPU,这是什么原因?

David博士:其实在最开始的时候,NVIDIA曾邀请AMD加入CUDA,但是AMD的GPU缺失一些功能而不能运转CUDA。它只有改进GPU的架构才能够兼容CUDA,所以并非我们不让AMD使用CUDA,而是CUDA这个软件在AMD的硬件上没有办法运转。所以,AMD只能选择开源,将困难推给程序开发者。(注:AMD也承认在GPGPU开发和应用方面已经落后于NVIDIA了)

● CUDA无论是它的架构还是指令集都是全新的,从设计和未来的角度来讲是比较有优势的,但它作为一项新标准风险也很大。实际上这个问题也是竞争对手AMD指责比较多的地方。从过去的10多年的发展来讲,这种专有性的API体系,如果它最后没有成为行业的衡量标准的话,往往最后都是不常用的。而且从NVIDIA这方面来说,也是一再表示今后要将CUDA做成整个行业通用的一个结构。那么NVIDIA现在在这方面取得了多大的成就?

{imageTitle}
AMD在内部文档中暗指NVIDIA的CUDA为“封闭技术”

David博士:我不认为CUDA是有风险的,这个架构相对来说是比较新,但是它非常直接、易用、而且是免费的!目前NVIDIA的所有GPU都支持CUDA,它已经是很普遍了。我们说如果一个新的东西有风险,是因为它不被人们所使用。目前CUDA用户与日俱增,对于CUDA来说就不存在这个问题,所以从这一点来看,我们不认为它是有风险的。

    第二点,我认为CUDA是NVIDIA在给开发者一个礼物,它是免费的。我们开发CUDA对于我们公司从策略来讲也是重要的,因为它可以帮助提升我们自己产品的价值,不管是GeForce、Quadro还是Tesla。从各个方面来看,我们都认为是很正面、积极的。

    CUDA被越来越多的人在使用。在这个领域,还没有其他的标准。CUDA是第一个被提出来的,加上越来越多的用户使用它,它自然而然就会成为标准了。同时,我们现在推广CUDA,成立一个CUDA的社区,让大家一块儿来合作,一起来提高CUDA。

胡文美教授:其实大家可以把CUDA想象成是JAVA,它是Sun Microsystems专有的软件,但同时又有很多人在使用它,它已经成为一个标准。虽然说CUDA本身的语言是有控制的,但是它的编译器跟它里面的信息是开放的,这样控制它,是不希望它这里面的编码被破坏。

● 对于高性能计算来说,处理器的性能一般都是用浮点运算能力来衡量的,这次NVIDIA最新的GTX280是933GFLOPS,它实际上没有超过上一代的9800GX2,甚至不如AMD最新的HD4850/4870。我想问这个理论值是不是跟实际值有一定的差距?GTX280的优势在哪?

开创视觉计算帝国GTX280/260权威评测
非常遗憾的是,GTX280的浮点运算能力未能超越9800GX2/HD3870X2

David博士:9800GX2和GTX280实际上是不具可比性的,一个是双芯片、一个是单芯片,架构和外部总线的规格都有很大的差异,所以光看理论值不代表真正的性能,要看最后的实际应用。

    AMD的理论值看似很高,实际上和真正性能之间是有差距的,大家通过其游戏性能表现就能略知一二,对于并行计算来说也是相同的道理,我们的架构更加适合通用计算,拥有更高的效率。

    就GTX200系列来讲,在并行计算架构方面做了进一步的优化,比如Dual-Issue的效率达到了93%-94%之高,实际性能更加接近于理论值,新一代产品拥有更高的输出率,工作效率和成本比也更好。

● GTX280的频率如果再高一点的话,实际上浮点运算能力就能突破万亿次(TFLOPS)了。但Intel却认为目前的架构和工艺很难真正实现万亿次浮点运算,在他看来DRAM带宽和Cache延迟都不可能符合万亿次运算,那么NVIDIA怎么看待这个问题,GPU的浮点运算为何能达到CPU的数十倍这么夸张?

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

David博士:我们所谈的高性能计算范畴中的万亿次计算,通常指的是双精度64Bit浮点运算,现在我们讲的这个万亿次计算是单精度的,目前双精度运算的速度只有单精度的1/10左右,因此距离真正的万亿次还有不小的距离。

    但是GPU比传统的CPU已经有了很大的进步,无论单精度还是双精度的性能都要远远超越CPU。而且GPU的效率实际上也要比CPU高很多,因为CPU的内存带宽只有GPU显存带宽的1/10,存储效率要低很多,这就限制了其运算能力,虽然CPU通过更大的Cache来弥补不足,但也是杯水车薪,付出和回报不成比例。

    比如GTX280,其双精度浮点运算能力是117GFLOPS,而显存带宽达到了141GB/s,超过1:1的比例保证了数据存取不会产生瓶颈,这方面GPU就要比CPU好很多了。这就是我们选择512Bit显存的重要原因,也是GTX280比上代产品、比竞争对手更强大之处!

● 对于CUDA的应用,NVIDIA提出了异构计算的概念,CPU+GPU从而获得更强大的性能,但同时我们也注意到NVIDIA也提出了优化PC的概念,建议大家在GPU上多花一些钱从而获得更平衡的性能,那么未来GPU和CPU谁更重要呢?或者说将来的发展趋势是CPU+GPU整合还是保持现状?

胡文美教授:GPU相当于是协处理器,处理大量的并行运算,它在设计上并没有花很多的心血去做程序上的控制。所以最终的运算模式还是用CPU做控制程序,然后把需要大量并行处理的任务放到GPU上,这个在可见的将来大概还是一个最好的组合。

{imageTitle}

David博士:世界上最快的超级计算机也是基于异构计算这样一个架构,即CPU+GPU。这也是我们NVIDIA公司一直在跟大家讲的,CPU跟GPU都很重要,各司其职。

    GPU非常大,CPU很小。如果需要把GPU、CPU融合在一起,你这样就必须要把GPU变小,这样就要丧失它的功能。所以无论Intel还是AMD的CPU+GPU整合方案都是针对低成本的产品,而并非针对高性能计算或者玩家级产品。

● Intel即将推出的Larrabee是基于成熟的X86 IA架构,因此在数学计算方面的软件兼容性会比NVIDIA的GPU好很多,那么CUDA和X86相比,在软件开放方面是否具有优势?目前CUDA的流处理计算模型能否成为业界规范?

{imageTitle}

胡文美教授:X86有一点好处,就是它的时间比较久,所以它的函数库比较全。CUDA因为它还比较年轻,时间还比较短,所以有一些函数库还不够完全。这就是为什么伊利诺伊大学跟NVIDIA在合作,还有很多其他的学校也都在跟NVIDIA合作,就是要把CUDA的这个函数库做好。现在大部分的函数库都已经换成用C语言,函数库的完备所需的时间可以大大缩短。

David博士:X86架构不能有效地利用晶体管,因此其效率很低,而软硬件兼容性永远是昂贵的。至于软件开发方面,目前几乎99.9%的软件都不是基于X86来开发的,只是软件的编译器是基于X86架构开发的,而不是软件本身。所以NVIDIA才花很大的精力打造CUDA开发平台,而不是自行开发软件,CUDA是一个新的更高效的架构,并且得到了越来越多开发者的认可,未来基于CUDA而开发的软件将会非常丰富。<

0人已赞

关注我们

泡泡网

手机扫码关注