发展越迅速,越容易产生隐藏的弊病,这是我们都知道的道理。而这个道理同样适用于概括NVIDIA在高性能计算方面的发展现状。
首先,软件的编程仍然是一个不可回避的问题。虽然NVIDIA在教育上投入了很多资源,但一款软件要想适应动辄数百个CUDA核心 (NVIDIA GPGPU中的计算核心)仍然需要大规模的中心编译和软件架构更新。在某些情况下,这个工程所带来的工作量甚至比重写软件更多、更大。而这也是目前多线程软件编程所普遍面临的问题,而且核心和线程越多,问题就越复杂。另外,由于很多软件之前是在X86架构CPU上运行的,而现在去需要这些软件去尽量调用GPGPU的计算资源,而且要尽量的提高效率和做到并行化,因此,问题并不仅仅是调用几个API这么简单。
GPGPU作为脱胎于消费领域的产品,其在设计上很难摆脱固有的局限性。由于NVIDIA以及竞争对手的GPU产品都来自于同样核心的消费级产品,所以产品在设计上为大规模并联以及高性能计算所作的优化十分有限,尤其是在消费级市场仍是公司的最主要盈利手段的情况下。因此,以NVIDIA为代表的GPGPU在大规模部署时的效率问题始终是阻碍其发展的一大瓶颈。
根据NVIDIA前段时间公布的2011财年第三季度财报显示,公司第三季度营收为10.662亿美元,利润为1.783亿美元,毛利率52.2%(美国通用会计准则)。在这之中,消费级GPU销售收入和嵌入式处理器的收入占据绝大部分;而其净利润110%的增长也大多由此而来。所以,对于NVIDIA来说,继续保持自身在消费级产品市场上的优势并大力发展嵌入式处理器业务才是最积极最稳妥的发展策略。虽然高性能计算以及企业级应用能够为企业带来更高的毛利率,但从目前的情况下,高性能计算和相关的企业级市场规模并不很大,投入适当的资源并保持宣传力度,将该领域划入潜在的可发展市场无疑是一个理性的选择。以目前的情况,NVIDIA的实际动作与这一策略不谋而合。
而GPGPU作为一款脱胎于消费级市场的产品,其更新速度也必然非常快。根据多年来的产品发布管理,NVIDIA会在每年第一或第二季度发布全新的旗舰级产品,并进行全面的推广。而新的旗舰级产品也必然会衍生出新一代的企业级、高性能计算产品以及相对应的CUDA软件编译器。虽然每年更新换代对于消费级市场来说是可以接受的,但对于企业和高性能计算领域来说,这个速度显然太快了。在高性能计算领域来中,半年甚至一年实施和调试周期是非常常见的。太快的产品更新速率使得高性能计算企业很难得到太多来自于NVIDIA的直接帮助,因为当企业需要帮助的时候,他们使用的产品往往已经“过时”了。
另一方面,竞争同样是NVIDIA在高性能计算领域所不得不面对的问题。众所周知,由于英特尔和AMD等厂商的“围追堵截”,NVIDIA在主板芯片组方面的业务全面萎缩,这大大影响了NVIDIA的发展,而NVIDIA将进军CPU行业的传闻也最终没有了下文。所以最后,NVIDIA不得不另寻出路,并有了今天的GPGPU和嵌入式处理器等产品线。但英特尔最为NVIDIA的另类对手,总是会在NVIDIA的前进道路上出现。移动显示领域如此、嵌入式 CPU领域如此,现在英特尔也将凭借自身的众核技术进入高性能计算领域,与NVIDIA正面竞争。而英特尔广泛的合作联盟、充足技术储备以及10倍于自身的市值都是NVIDIA不得不面对的困难。
而且,英特尔的众核技术相对于NVIDIA的GPGPU技术也有自身的优势。前文我们已经提到,不同硬件架构之上的软件编程是NVIDIA目前面对的一大难题;而英特尔的众核技术的优势则在于则可以有效的避免这一问题。根据英特尔官方的宣传,软件编程人员可以在无需改变编程工具的情况下,通过采用并行度较高的指令、数据、任务、适量、线程等就可以实现在英特尔众核硬件环境中的软件编程工作。这就大大降低了高性能计算软件的开发难度和成本,而这正是高性能计算用户所乐于见到的。因为相对于性能来说,资金和技术往往更会限制超算项目的实施和发展。
目前,NVIDIA在高性能计算领域内的境地可以用一个微妙的十字路口来形容。一方面,高性能计算目前并不是NVIDIA的主营业务和利润来源,相对于眼前的市场来说,高性能计算顶多只能算是NVIDIA的副业;这一点没人可以否认。另一方面,潜在的激烈竞争也是NVIDIA大举进入这一市场所必需要考虑的一大问题。因为在资金、技术和联盟如此强大的英特尔面前,以小博大的成功几率可想而知。但无论如何,NVIDIA的GPGPU还是为高性能计算领域的发展带来了一股技术的新风,为超算提升性能、降低能耗提供了一种新的路径。而至于这一技术将如何发展,则是多方面因素所决定的。对此,我们应该密切关注。