正如Jack Dongarra教授所言,“在可预见的未来,异构(众核)计算将为成为主流”。硬件有三个玩家,会走三条完全不同的路,而软件也会面临三大挑战。
自从2006 年AMD 收购ATI 之后,CPU 市场的Intel对AMD,GPU市场的nVIDIA对ATI的2对2格局就被打破了,形成了现时异构计算的“三国演义”:Intel对AMD对nVIDIA。
AMD 是这三家中惟一同时拥有成熟CPU 和GPU产品线的厂商。在“Future is Fusion”的战略下推出了集成显卡的CPU,未来仍将向集成X86 CPU +GPU 的APU 芯片继续进化。
nVIDIA在2004至2006年之间,趁多核CPU性能青黄不接之际,提出了通用GPU的概念,并进军计算市场。五、六年之间就将TOP500中排名靠前的3 台超级计算机纳入麾下,占领了HPC的制高点。最近由于面向个人消费级的独立显卡Geforce市场受到冲击,发展停滞不前,从而无法继续摊薄Tesla计算卡的生产成本。不过就算如此,未来GPU的产品形态最大可能还是单卡。当然如果“丹佛”芯片研发顺利的话,也不排除ARM CPU +GPU 的芯片问世。
Intel前几年针对GPU对计算市场的奇袭,仓促应战的Larrabee出师未捷。痛定思痛之后,一边“围魏救赵”,推出集成显卡的Sandy Bridge,逆袭Geforce的大本营个人显卡市场;另一边放弃原有的GPU 思路,改用全新架构MIC(Many Integrated Cores),明年年中推出的Knight Corner颇有几分值得期待之处。虽然明年的新MIC仍会以PCIE卡的形态发布,但从成本及编程等综合考虑,PCIE卡应该并非Intel的最佳选择。因此如果MIC投石问路成功,Intel很有可能将其集成到主板中,以解决目前PCIE卡在计算时遇到的主板-插卡之间数据传输瓶颈的通病。
由于异构众核的硬件更新换代频率惊人,甚至超越了CPU的摩尔定律,因此软件研发将不可避免地会在编程策略、目的和工具上遇到各自的挑战。
Revolution V.S. Evolution:
关于编程策略,到底是采用推倒重来的革命(Revolution)方式还是逐步改良的进化(Evolution)方式,一直都存在很大的分歧。某些学者认为,从编程思路来说,异构众核不仅完全不同于串行CPU,甚至不同于多核CPU。因此如果过于执着于原先的串行CPU,可能会束缚在原有的思路中,导致无法写出优秀的异构众核程序。应当采用全部推倒,重新开发的方法。不过我个人对此有不同的看法:先改良成多核CPU 版本作为过渡,这样可以熟悉代码,又可以深入挖掘算法的内在并行性,然后再改良成异构众核版本。逐步改良所需花费的时间和精力不会很大,但能有效利用现有代码,保护用户先前投资,同时更容易掌控进度,规避风险,因为无法实现多核CPU 的算法,通常无法设计高效的异构众核版本。然而目前,针对逐步改良所必须的SDK 和工具集还很不完善。
Performance V.S. Performance Portability:
伯克利大学的David Patterson教授曾提到,性能(performance)一直以来都是并行编程的惟一目的。然而进行异构多核时代之后,性能可移植性(performance portability)将有望逐渐成为第一要义。如果某算法在指不同厂商的产品,或相同厂商的不同代产品之间,都有比较稳定的性能加速比,则称该程序有良好的性能可移植性,例如在异构平台A/B/C上,加速比分别为10、8、7的算法,就要远好于20、2、3。之前无论是串行程序还是并行程序都是运行在CPU 之上,其本质的计算模型是一致的。但异构多核就不同了,MIC 架构与GPU架构完全不同,nVIDIA 的GPU 与AMD 的GPU 区别很大,即使是同一公司不同代的GPU之间,硬件参数和性能也有不小的差别。因此性能可移植性所带来的挑战会越来越严峻,没有良好的性能可移植性,大家就只能紧随厂商的步伐,频繁地更新程序。然而到目前为止,还没有一个成熟到可用的解决方案。
Explicit V.S. Implicit:
异构众核计算目前所采用的工具,无论是nVIDIA主推的C U D A 还是A M D 主推的O p e n C L,都属于显式(explicit)并行工具,即需要程序员手动处理并行性,分配内存和协调线程间同步等,这与集群上的MPI性质相同。而隐式(implicit)并行工具则提供了相应的工具和编译器,能部分解决这些问题。鉴于难学难用的显式并行MPI只在HPC社区内流行,而异构众核计算又志不在此,因此虽然性能上会打着折扣,但易学易用的隐式并行最终大有可能成为主流。
然而目前虽有一些可用的隐式并行产品如法国CAPS的HMPP,但处理实际复杂算例的能力还有待进一步完善和提高。
在可预见的未来,从智能手机到超级计算机,都将出现异构众核计算的身影。目前三大硬件厂商基于各自商业利益和技术优势的考虑,分别选择了三条完全不同的产品路线,最终将带来一场异常惨烈的搏杀。谁能先“软硬通吃”,形成类似PC 时代的Wintel联盟,抢先一步提供针对上述三大挑战的解决方案,就能为胜利天平自己的一边添加一个重量级的砝码。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。