NVIDIA:Tesla三面修炼 誓破百亿亿次大关

10月29日-31日,2012年全国高性能计算学术年会在湖南张家界召开。“百亿亿次级 (Exascale) 计算”作为高性能计算领域发展的一个目标,成为大会的一个热点话题。如何突破百亿亿次级计算所面临的能耗、通信、访存、可靠性、编程等问题,受到来自学术和产业界专家们的共同关注。

会上,来自NVIDIA公司Tesla事业部的CTO Steve Scott在他的主题演讲《GPU Computing and the road to Exascale》中介绍了GPU如何帮助高性能计算用户通向百亿亿次级计算,并分享了NVIDIA Tesla处理器的新进展和未来三大发展方向,以及NVIDA在推动GPU编程方面所作的一些工作。演讲后,Steve接受国内媒体采访,就相关问题进行解答。

【图1】NVIDIA公司Tesla事业部的CTO Steve Scott

Steve Scott去年8月份加入NVIDIA公司,也是NVIDIA 全新Kepler架构的总设计师,之前在克雷公司供职 19 年之久,在其中后六年里担任高级副总裁兼首席技术官,负责确立克雷公司的技术方向以及制定系统架构发展路线图。他持有 27 项美国专利,这些专利涵盖了互联网络、处理器微架构、高速缓存一致性、同步化机制以及可扩展并行架构等领域。

高性能计算架构未来走向混合

对于高性能计算中心来说,功耗是首当其冲需要考虑的因素。Steve谈到,虽然电路的每瓦特性能虽然仍在提升,但现在的提升速度是每年将近 20%,而过去每年近 70%。这意味着,随着每一代芯片的发展,CPU的加速和存储器速度的提升将使得能耗问题越来越严重。因此,从能耗的角度来看,要在21世纪二十年代末实现百亿亿次级 (Exascale) 计算,必须要在架构有所突破。

此外,从HPC软件和应用程序的发展来看,未来绝大多数的HPC软件和程序,都需要很好的单线程的计算能力、大容量的缓存,同时加上海量的并行计算能力。

Steve认为,无论是从能耗与性能发展的矛盾来看,还是从HPC软件发展的需求来看,未来的高性能计算必将走向混合计算的架构。NVIDIA的GPU+CPU混合架构、Intel的MIC+Xeon混合架构、AMD的Fusion等都是混合架构的典型代表。

【图2】NVIDIA GPU+CPU混合计算架构

Steve介绍道,在NVIDIA的混合架构中,充分利用了GPU在能耗、并行计算方面的优势。为了改善应用的每瓦特性能,NVIDIA将大部分工作转到了专为吞吐量而优化的核心上来,仅使用快速 (但效率较低) 的 CPU 核心来处理常驻的串行工作。因为一个核心无法做到既针对节能而优化又针对快速的单线程性能而优化,所以混合型架构让我们能够把精力集中在使 GPU 核心越来越节能上来,同时依赖 CPU 核心实现极高的串行性能。

Tesla三面修炼 誓破百亿亿次大关

作为NVIDIA在高性能计算领域的主打产品,Tesla从2007年6月开始推出至今,五年多的时间,Tesla的定位也从个人高性能计算领域不断转向企业高性能计算领域。Steve在采访中重点强调,Tesla未来将在优化能效(Power Efficiency)、简化编程和提升程序可移植性(Ease of Programming and portability)、应用领域覆盖(Application Space Coverage)等三个方面不断加强,最终突破百亿亿次级计算的大关。

在能效方面,GPU+CPU的架构当然具有得天独厚的优势。Steve介绍道,为了改善应用的每瓦特性能,NVIDIA将大部分工作转到了专为吞吐量而优化的核心上来,仅使用快速 (但效率较低) 的 CPU 核心来处理常驻的串行工作。因为一个核心无法做到既针对节能而优化又针对快速的单线程性能而优化,所以混合型架构让我们能够把精力集中在使 GPU 核心越来越节能上来,同时依赖 CPU 核心实现极高的串行性能。同时,GPU本身的每瓦性能比也在不断提升,Kepler GPU的每瓦性能比,相比Fermi提供了2倍左右,而将于2014年发布的Maxwell相对Fermi更是提高了6倍。

【图2】Tesla未来的三大目标

谈到混合架构,编程是一个不可避免的问题。架构再好,如果应用程序说无法充分利用架构的优势,那一切都只是空谈,基于混合架构的编程也是当前混合架构发展所面临的最大的难点之一。

Tesla的第二个目标就是简化编程并提升程序的可移植性。对于NVIDIA而言,如何帮助用户实现更加简单地在GPU+CPU架构上进行编程,这是需要重点考虑的。

Steve在采访中介绍道,NVIDIA提供了CUDA框架和对OpenACC并行运算的程序标准,让全球的开发人员享受利用GPU运算所带来的好处。Steve还强调,CUDA和OpenACC各有所长,分别适用于不同的编程场景,NVIDIA未来将同时支持CUDA和OpenACC。

CUDA(Compute Unified Device Architecture)比较适合从零开始去写一个程序,用户可以基于CUDA使用任何语言编写应用程序。最新的CUDA 5也在10月份正式发布,NVIDIA在官方新闻稿中表示,CUDA 5可以让开发人员充分发挥NVIDIA GPU的加速性能,提供了对最新“开普勒”家族的完整支持。

而OpenACC则比较适合已经做完的程序。对于现有的程序,如果需要利用到GPU加速能力,可以无需重新编程,通过标记的方式就可以利用到GPU的性能,但性能提升可能不如使用CUDA提升得那么明显。

此外,Steve对记者表示,NVIDIA在全球有很多OpenACC的合作伙伴,提供OpenACC的编译器。事实上,OpenACC的程序不只是支持GPU,像X86多核架构也都是支持的,未来这些OpenACC的第三方的编译器也将会支持英特尔MIC架构、AMD的解决方案等等,这些厂商也将会支持这种标记型的语言。

Tesla的第三个发展目标就是应用领域的覆盖,从图形计算领域走向通用计算领域也是GPU始终追求的目标。

总之,NVIDIA希望通过Tesla来帮助用户真正突破百亿亿次计算的大关。值得一提的是,可能在本月(11月)的SC12大会上公布的超级计算机TOP500中夺冠的泰坦(Titan)超级计算机,就是使用NVIDIA Tesla K20 Kepler加速器与AMD的皓龙处理器相结合,达到了20 PetaFLOPS的计算能力。Titan由2009年最快的超级计算机Jaguar升级而来。Titan的处理器核数仅高出Jaguar 30%,但借助图形处理器的帮助,能在相同的200个机柜空间内提升十倍的指令周期,耗电量从原本的7 megawat增长至9 megawat,电源效率为原本的5倍,预计一年电费为一千万美元。

“NVIDIA(英伟达)的GPU加速技术并不仅仅是提供一个产品而已,而是一个正确的解决方案,同时也是一个商业的模式,给合作伙伴非常好的支持。这是一个可持续的商业模式。”Steve表示。

通往百亿亿次的道路不是一帆风顺的,异构计算的出现为百亿亿次级计算提供了新的思路,而GPU+CPU的模式在能耗、并行性能方面具有天然的优势,它究竟能否帮助用户最先攻破抵达百亿亿次级计算的大关,并享受到百亿亿次级计算的超强计算能力?这就要看NVIDIA和整个生态系统的修炼成果了。