服务器 频道

GPU不是一切!不适合使用GPU的十大场景

  5.如果NVIDIA走开将会怎么样?

  高性能计算的历史到处是许多超级计算公司尝试实现并行计算飞跃而失败的尸体。名单包括Thinking Machines,Maspar,KSR,Mitrion以及很多其他公司。应该承认这些英勇的努力和背后人们的想象力以及他们在创意失败中扮演的角色,随着时间的推移应该引起一个更大的共识,那就是什么起作用,什么不起作用。我们欠他们人情债。

  然而,NVIDIA不是一个超级计算公司。它是一个50亿美元的公司,大部分收入来自显卡和嵌入式处理器,这些卖给由狂热的PC游戏玩家构成的巨大的市场。它相对独立于高性能计算有一个优势:如果所有的高性能计算使用没有NVIDIA的GPU计算将仍然有一个很好的和有利可图的生意,只要有咖啡因成瘾的青少年乐意玩虚拟战争游戏,NVIDIA就将陪伴周围。事实是NVIDIA在市场上的持久力比长期的高性能计算公司Cray更大而且更加安全。

  更进一步说,NVIDIA已经公开公布了大概6年的技术发展的愿景和发展蓝图。字里行间透露出极进取的野心将GPU从靠加速卡为生的辅助性角色转移到在计算基础架构中更加核心的作用。一路上它们已经计划了一些强有力的计算引擎。

  6. GPU板没有为我的问题提供足够的主存

  GPU板内存现在M2090 和M2070上被限制为6G。对于要求超过6GB大量内存的算法可能特别麻烦。通过访问单个节点上的多块卡稍微缓和了这个问题。

  举例来说,Dell C410x PCIe扩展插槽可能包含多达16块NVIDIA板,总共96GB内存。在16个单独的GPU上域分解你的问题可能是一个非常有效的横跨内存限制的方法,而且对于影响本地物理问题,它工作的相当好。

  最麻烦的是算法本质上需要随机访问大型阵列,举例来说,大型哈希表或者其他需要随机阵列查找的问题。在这种情况下,当前阶段的GPU板不是有效的解决方案。然而,内存正在变得相对便宜而且密度在不断改进,可以期待将来的GPU板提供足够的内存。

  7.我将等待更多的CPU核心/ Knights Corner

  更多的核心将为计算密集型应用提供帮助,然而需要考虑随着CPU增加更多的核心,GPU也将增加更多的核心。对比过去两代技术的路线图, CPU和GPU之间在计算和带宽方面显示了持久的差距。差距有时增加有时变小但是始终存在,预计这一差距将继续存在。对于带宽密集型问题,情况更加糟糕。因为增加核心比增加带宽似乎更容易。

  Intel的Knights Corner计划大概一年多以前就宣布了,认识到需要x86数据并行和GPU竞争。关于Knights Corner的全部细节仍然未知,然而使用Knights Ferry原型系统的说明书作为一个基准,我们可能期待50个或更多个1.2GHz的核心,每个核心具有512位向量处理单元,最多支持4个线程,使其成为一个可怕的高性能计算竞争者。然而对Intel关于开发模型,价格,发布时间以及其他关键信息的计划目前知之甚少。

  Knights Corner要成功必须符合商品市场的论点,允许x86架构支配高性能计算。必须找到一个高性能计算科学家与世隔绝的世界之外的无限市场。Commodity graphic是更广泛市场的一个逻辑选项,但是已经被NVIDIA和AMD很好的解决了。

  8.我不喜欢专有语言

  专有语言在这是指被一个组织所支持的语言,该语言可能朝一个未知或者不需要的方向发展或者完全放弃支持。CUDA被划入这一分类。使用CUDA的优势是非常明显的:1)能够实现NVIDIA硬件指定的优化;2)没有委员会做出发展蓝图决定;以及3)更快支持新的NVIDIA硬件特性。

  然而,如果专有语言在你的组织中受阻,那么对于非专有语言开发,OpenCL是一个较好选择。OpenCL被Apple,NVIDIA,AMD,Intel以及许多其他可在多个硬件平台提供功能可移植性的公司所支持。我强调功能可移植性,这和性能可移植性相比仍然落后。OpenCL内核和CUDA内核非常相似,更多的差异发现在基于主机的设置和启动代码。

  9.我正在等待神奇的CPU到GPU的代码转换器

  既有好消息也有坏消息。好消息是已经存在CPU到GPU的代码转换器。坏消息是它不大可能产生像专家写的本机端口那样高性能的代码。没有经验使用这些工具以及隶属关系的公司使用本地CUDA做重大的技术代码端口。笔者认为这些方法数据的可靠性的来源欠缺公正,然而看起来来自PGI或CAPS HMPP 工作台(这类编译器的两个供应商)的PGI Workstation试用license足够容易获得,而且可以进行测试。当这些编译器指令并入OpenMP,以后我们可能期待它们的标准化。

  10. 我有N段代码但是没有IT预算

  更通俗的说,这可能被称为“不做大就回家”的困境。为在IT预算固定的大多数组织的基础实施中增加启用GPU的节点需要在更少更强大的异构GPU节点和更多不强大的传统CPU节点之间做出选择。从规模经济的角度,对一些组织来说100%的GPU节点或没有GPU节点是有道理的。基于边缘的业务在集群24*7*365处理数据、竞争激烈的市场上工作时尤为正确。分离IT基础设施使调度和要求变得复杂,更糟的情况下,要面对两个版本的所有问题:集群管理脚本,调度,编译器,测试和验证,应用程序代码等等。

  大型商业组织技术的应用必须关注投资回报。“不做大就回家”的论点表明了焦虑。精明、深思的组织尝试量化技术转变的已知成本并推断未知的成本解决这个棘手的问题。最后1点以及前面的9点,以某种方式涉及了投资(代码开发,大众技能,新硬件,再训练)或回报(性能,可扩展性,功率)。

  每个公司必须小心谨慎的算出自己的投资回报率公式,面对他们将面临的障碍,尊重保守的利润。使用传统的财务分析资本投资应产生与本组织的资本加权成本相称的回报给股东,必须和公司在其专长领域的其他投资机会相比。

  总之,在过去的4年中,GPU计算已经牢牢占据了高性能计算市场而且收益显著。上文提出的10点反对意见是个人和组织最常见的声音,我们已经尝试解决它们。正如文章开始指出的那样,GPGPU不是所有高性能计算问题的解决方案,但是组织由于错误的原因忽视该技术可能正在错过重要的性能收益和成本节省。

  最后,组织不应该以以下想法开始GPU计算:它是今年的解决方案而不是经过深思熟虑的战略的结果。深思熟虑的战略决定了GPU计算是既符合目前的成本效益也是基于架构,编程模型以及带我们到亿亿次运算电源参数,向前发展的非常好的解决方案。

0
相关文章