浮点加速器:IT最终能获得免费的午餐?

1. 超级计算机

世界最快的超级计算机的浮点加速器有了巨大的高端性能提升。

超级计算机代表了计算机领域的最前沿,它们在促进技术成熟方面扮演者至关重要的角色,而且还能帮助新的解决方案进入到一般的数据中心甚至主流的计算解决方案。最新的世界最快的超级计算机Top500排行榜也显示高端性能的又一巨大进步,这越来越依赖于浮点加速器,现在还包括了英特尔的第一个竞争产品,至强Phi。英特尔表示浮点加速器的编程会变得容易一些了。

要想进入2012年11月的Top500排行榜的超级计算机,它必须提供至少76.4 TFlops的持续性能。五年前,这个数字足够进入前十,而在八年前足以问鼎。目前最快的超级计算机,橡树岭国家实验室的泰坦,有17.6 PFlops,而全球前22部超级计算机可以提供至少1 Pflop。

比计算能力的提升更令人惊叹的是效率的提升。例如,泰坦提供的性能是五年前最快的超级计算机利弗莫尔国家实验室的BlueGene/L (478.2 TFlops)的36倍,但功耗只是其3.5倍(8209千瓦对2329千瓦)。这种效率的提升的主要原因,无可厚非是来自于更强的CPU,但超级计算机越来越多地利用浮点加速器,如Nvidia的Tesla系列或AMD的FirePro系列之类的通用GPU(GPGPU),还有英特尔刚刚发布的至强Phi协处理器。

泰坦集成了18,688颗的Nvidia Tesla K20X处理器,带有总数为46,645,248的CUDA处理单元。AMD在阿卜杜拉国王科技城的SANAM超级计算机上部署了420块FirePro S10000显卡,共有1,505,280个流处理器,田纳西大学计算科学国家研究所的超级计算机Beacon,使用了数量不明的Phi 5110P,每块带有60个处理器。这三部超级计算机被评为当今世界性能最强的超级计算机。

现状

加速器已经被用于各种用途很多年了,包括Clearspeed加速器这种比较奇葩的方案。然而GPGPU已经成为一种颇为引人注目的解决方案,而且规格也相当令人惊叹。比如,Nvidia的旗舰Tesla K20X宣称提供3.95 Tflops的单精度运算和1.31 TFlops的双精度运算,功率为235瓦,售价3200美元。 AMD的Firepro S10000甚至号称有5.91 TFlops的单精度运算和5.91 TFlops的双精度运算,功率为375瓦,售价3600美元。两者的封装工艺都是奇迹,Nvidia封装了2496个处理器,AMD封装了3584个处理器,两者均有6GB的GDDr5内存,频率分别为5.2和5 GHz,更佩服的是二者封装的晶体管的数量,Nvidia为71亿,AMD为86.2亿。

Nvidia已经以大众支持和大学教育的活动将其GPGPU和CUDA编程模型推向市场。公司早期的重点放在了促进CUDA教学的课程,并与大学中的科学家建立深厚的关系,来创建一个支持其技术的知识层。通过这种方式,已经让公司在过去五年中售出了超过4亿个支持CUDA的GPU,而且现在有8000个组织加入了CUDA群体。Nvidia声称,商用的Tesla K20系列在推出后的第一个月内能达到大约30 PFlops的性能。当然,大多数这种性能建在了泰坦里,但Nvidia显然也能向其他客户卖出几千块这种卡。

虽然成功,但Tesla并不是没有问题,而且性能潜力很大程度上是理论上的;那个1.31 TFlops不可能被一个程序完全利用。开发者的主要抱怨依然是需要非常专业的知识才能充分发挥GPU的潜能。在很高的层面上来讲,Nvidia的CUDA只不过是一套C++扩展,而且把现有的应用程序移植到GPU上运行似乎不是那么难。但有不愿意透露姓名的开发者告诉我们,只需C++知识就能利用GPGPU能力的这种论调“过于简单化”,只有详细的GPU和内存架构知识才能达到硬件制造商承诺的那种性能水平。这方面的知识在如今的市场仍然十分罕见。

2. 英特尔的机遇 – 浮点加速器和超级计算机

英特尔是带着明显的劣势来到这个市场的。公司原本打算在2010年以x86 GPU Larrabee进入加速器市场,但在2008年改变了策略,先冲击GPU消费者市场,而此后不久便搁置了整个计划。

据说英特尔根本不能赢过市场中现有GPU的性能,而且无法说服开发者为这样一个不起眼的产品开发程序。Larrabee还有其他一些问题,比如,尽管英特尔不承认,但事实是它不是一个像x86处理器那样易在上面开发的产品。Larrabee还依赖于自己的微型操作系统。

英特尔表示,Phi就不一样了,它不需要大量工作就能实现显著的加速效益。问题是开发者接触到Phi的程度离“免费午餐”有多近?代码能否简单地移植到Phi,加速器带来的所有好处能否兑现?

英特尔高性能计算营销总监John Hengeveld表示,这不会是免费午餐,但很接近:“我想称它为好的午餐。”与Larrabee相比,Phi不使用专有的编程模型,并兼容普通的至强处理器。而且他说核心和缓存的知识不碍事,程序员完全可以利用他们近十年的多核心编程知识来用于Phi上的开发。在英特尔看来,Phi可以和目前的GPU一样提供同样的加速性能,而所需的移植工作则大大减少。Hengeveld还强调,因为Phi是“协处理器”不是“加速器”,它可以运行GPU运行不了的完整的程序和代码。

英特尔表示旗舰Phi模型提供高达1.011 TFlops的双精度计算,自定义配置高达1.073 TFlops。共有大约50亿个晶体管的60个处理核心,频率为1.053 GHz,8GB内存。该卡最大工号225瓦,将于2013年一月上市,售价2649美元。

3. 浮点加速器对照 – GPU

一点也不意外,Nvidia不同意英特尔的评价。高级产品经理Roy Kim指出,Tesla GPU比Phi还容易来编程,因为,“最终,所有加速器都会以同样的方式编程”。

Kim说,Phi的库关于卸载模式的函数非常少,英特尔至少用了一些专用于Phi的指令,而且英特尔使用了汇编式的编程扩展(这和Nvidia的CUDA旗鼓相当)。

Kim说,“GPU编程没那么难”,为运行于GPU而移植代码所需的时间在减少。Kim还质疑了英特尔所声称的“Phi的浮点性能比基于Sandy Bridge的至强提升了两倍”只相当于一个GPU。他说Nvidia实际发现提升4到7倍。

开发者观点

只要英特尔Phi没发布,任何性能的论调都是纸上谈兵,容易受到竞争对手的攻击。然而,我们有机会与一名在Phi上开发有一段时间的开发者聊天。因为Phi还没有正式发布,他一直不愿意提供细节,但他提到Phi肯定不会提供免费的午餐。他说,“在Phi上编程一点也不比在GPU上容易。”

他的主要的抱怨是,英特尔尚未提供任何关于编译器的信息,而且软件环境有些“混乱”。他说英特尔仍有时间来解决一些问题。“目前的情形和Nvidia的CUDA推出的五个月前类似。英特尔应该得到公平的机会,让他们准备好发布Phi。”

最初的经验似乎是,之前能在英特尔至强上运行良好的程序也会在Phi上编译。然而,程序越复杂,越难以发挥Phi的浮点运算能力。依赖像库调用或者循环内分支的这种功能的超级计算机应用程序对于Phi下的开发者来说是个挑战。

4. IT的底线 – 浮点加速器

至强Phi的能力显然比Larrabee强大的多。IT部门的含义十分明白,加速器市场会有越来越多的竞争,有机会让数据中心更加有效率。

判断GPU还是Phi更适合与数据中心还为时尚早,在大多数情况下,带来的好处很大程度上取决于现有的需要加速应用程序,以及应用程序的性质和编程人才。

英特尔的挑战在于它到这个市场的时间晚了。Nvidia显然有“心理份额”的优势,还有一个比英特尔的x86更具竞争力的已部署的硬件基础。即使英特尔提供像Intel Parallel Studio XE 和 Intel Cluster Studio XE这样的综合开发套件,它仍要全力开展教育计划,教会程序员如何利用Phi进行开发。