理性解析主流协处理器:百倍效能从何处来?
- +1 你赞过了
2013年5月,我国研制成功世界上首台5亿亿次(50PFlops)超级计算机——“天河二号”。这是国家863计划在“十二五”高效能计算机重大项目的阶段性成果。天河二号的双精度浮点运算峰值速度已达到了每秒5.49亿亿次,至于Linpack(国际上流行的用于测试高性能计算机浮点计算性能的软件)测试性能则已达到每秒3.39亿亿次。
Intel协处理器助力天河二号
与天河二号一起被关注的,还有协处理器领域的新成员:Intel XEON Phi。在整个天河二号中,XEON Phi对整体运算性能提升起到了推动作用。同时也确立了协处理器市场Intel、NVIDIA和AMD三足鼎立的局面。
此前在超算领域AMD、NVIDIA轮流坐庄,从去年开始NVIDIA专门针对高性能计算推出的TESLA在超算领域占据了绝对优势,并且成功帮助多款超级计算机挺进top500甚至是top10,同时NVIDIA官方也在大力推广这种Many Cores架构的协处理器产品。
协处理器产品另一种称谓叫做Many Cores,顾名思义,传统的CPU内部架构相对复杂,因此造成了运算性能有限,而优化的余地又不大,不论是CPU换代的架构变化还是性能提升幅度都越来越小,因此也就出现了协处理器的概念,即由CPU进行调度,在内部大量堆砌数学运算单元(ALU)以增强运算性能,通过这种方式实现系统整体运算性能提升。
真的以一敌百了吗
在Intel XEON Phi推出之前,TESLA牢牢统治榜单桂冠,在top500中可以看到不少排名靠前的高性能产品中都有NVIDIA TESLA的身影。尽管这样组成的超算是异构甚至三重异构,受制于目前软件开发水平,理论性能与实际能够发挥出来的性能之间存在巨大差异。但是在Linpack测试成绩中,理想情况下的成绩非常高。并且NVIDIA TESLA对于超级计算机的运算性能提升做出了极大贡献,这是毫无疑问的。
不过有一个非常有意思的现象,就是XEON Phi和TESLA对于性能的描述。关于这个现象,我们此前有一篇文章《运算能力并非绝对优势 Intel XEON Phi解析》中略有提及。根据Intel官方的资料介绍,与纯CPU运算相比,XEON Phi在不同应用领域的性能提升在2到2.5倍之间。但是NVIDIA对于性能的表述则完全不同,比如在上面的PPT文档中,NVIDIA强调Fermi在双精度浮点上的性能是CPU的13倍;而更有媒体宣称Tesla的运算性能与CPU相比是达到百倍提升的。
结合今年5月天河二号问鼎top500,这就带来了一个比较复杂的问题:为什么号称能“以一敌百”的TESLA方案最终会将桂冠拱手让人?top500所使用的测试工具是linpack,是目前最能够发挥多线程、多核心异构平台的测试工具,测试成绩最接近理论数值,甚至已经被批评测试成绩过于“理想化”。即便如此,TESLA加速方案依然落败,让人不禁要问“说好的100倍哪去了”?
统计方法不同造成结论不同
如果想要做出解答,首先要从最近微博上流行的一组图片下手。“您最喜欢什么野生动物?”“野生动物啊,我喜欢打网球”。如果处理器上出现了这个现象,那么可以得出结论就是处理器对当前指令没有正确识别。指令要通过编译器编译成处理器可识别的形态,才能被正确的理解和执行。对于协处理器,无论是XEON Phi还是TESLA,也是如此。对于协处理器这种堆积了大量ALU的架构,编译器变得尤为重要。比如Intel推荐使用Intel C或者fortan搭配Intel MKL运算库进行编译,还可以获得额外的性能提升。
那么通过编译器,如果我们将一段合适的代码编译成可以多线程运行的状态,它理论上的运行速度能提升多少呢?根据Intel的一个测试报告显示,一组在Intel XEON平台上运行需要花费67.097秒的代码,编译成针对多线程并行优化之后,运算耗时就已经变成了只有0.46秒,速度提升了145倍。
接下来如果用XEON Phi运行这段程序,会发现实际运行时间是0.197秒,与优化后的理论数值相比有了2.3倍的性能提升。而这2.3倍的性能提升,刚好在Intel官方介绍的性能提升范围之内。
而对于NVIDIA宣称的自家TESLA协处理器相对于CPU有100倍性能提升,著名评测网站Anandtech早已指出,测试结果是多线程情况下与关闭了SIMD的单核心处理器相对比的结果,也就是说NVIDIA所列出的速度增幅是编译器优化与协处理器运算性能相叠加的效果。
既然NVIDIA能够通过如此的叠加方法描述协处理器有多快,自然Intel也可以。前面已经得到了两个数字,首先是编译器令代码处理效率提升了145倍,接下来Xeon Phi又让代码的运行速度提升了2.3倍,只要简单做一下乘法就知道了,Intel也完全可以强调自家协处理器的效率比CPU提升了340倍。
厂商关于新产品的描述,总是喜欢选择有利于自己的描述方式,让用户认为自己比竞争对手领先很多。本文中提到的就是一个例子,在对于Intel XEON Phi性能描述上,随着计量方法不同,出现了性能提升2.3倍和性能提升340倍两种完全不同的结论。Intel认为编译器的功劳不归协处理器所有,所以选择了前面一种保守的表述方法;而作为竞争对手的NVIDIA则倾向于采用更有利于自己的另一套表述方法。这就造成了表面看似TESLA更加强大,在统一成相同的计量方法之后却完全变成了另一番景象。
本文只是揭开几篇关于协处理器产品技术讲解系列文章的序幕,在随后的文章中我们还将继续介绍协处理器的优缺点以及应用情况。欢迎对于这类产品以及高性能计算感兴趣的读者继续关注服务器频道。
最新资讯
新品评测
+1 你赞过了