服务器 频道

提高HPC GPU的灵活性 且看戴尔之道

  【IT168 专稿】图形处理单元(GPU)大概是HPC领域最热门的潮流之一。它们可以大幅提升系统的性能,同时降低功耗。不过,由于对于应用程序开发和工具集而言,GPU计算的技术仍在发展当中,GPU系统就需要尽可能地灵活。

  本文主要介绍戴尔在怎样提高GPU计算的灵活性,以及戴尔为建立GPU系统而开发的基本产品。

  戴尔的总体方案

  我认为,灵活性是戴尔针对GPU计算解决方案采取的总体方案的核心。目的在于,开发灵活的硬件配置,以便各组件可以混合搭配,以满足应用程序和用户的要求,那样需求出现变化时,没必要使用叉车铲掉(换掉)硬件(我们通常称之为“叉车式升级”)。

  戴尔在创建灵活GPU计算解决方案时寻求的一种主要方案就是,把GPU与主机服务器分开来。由于出现了性能优良的PCI-Express(PCIe)网络、PCIe交换芯片(PLX公司是个典例)以及交换产品的低延迟,使用PCIe网络时给性能带来的影响即便有,也是非常小。最近这些业界进展让我们得以使用PCIe交换芯片,把GPU与主机节点分开来,而交换芯片负责两者之间的通信。这种分离立即可以大幅提升灵活性和适应性。

  比如说,你不必改变GPU,立即就可以升级或改动计算节点。比如说,如果英特尔推出了一款新的CPU,要求你升级计算节点,就不必扔掉GPU或者从现有节点取出GPU,试法塞入新的GPU。你还可以购买更多的计算节点,共享计算节点之间的GPU资源(后面介绍了这一步怎么做)。

  你还可以反过来做——如果技术变化了,可以升级、改动或添加GPU,这一切不必改动计算节点。

  也许最重要的好处是,你可以在需要时,添加或改动与每个计算节点相连的GPU的数量。别忘了:GPU应用程序和工具在发展当中,更成熟的应用程序常常每路PCIe x16连接使用不止一个GPU。把GPU与主机节点分开来,意味着应用程序首次编写后,可以为某些计算节点提供每条PCIe x16插槽一个GPU,因为主机和GPU之间的数据传输其实可能会给PCIe总线带来压力。一旦应用程序减小了对PCIe总线的依赖,之后就可以为计算节点提供两个GPU,在该节点上运行两套应用程序(每个CPU上各运行一套)。最后,一旦应用程序在多个GPU上运行,就可以为计算节点提供4个或更多GPU。

  如果采用CPU/GPU相结合的配置(比如内置GPU采用的那种配置),应用程序不断发展时,几乎不可能做到为计算节点添加GPU。如果采用这种配置,GPU数量是固定的;要改变GPU的数量,唯一的办法是购买更多GPU,打开机箱后塞进去(前提是机箱里面有空间,又能满足这些GPU的电源和冷却要求)。但是采用固定的配置,它所能处理的GPU数量也是固定的,就是这样。但如果把主机节点与GPU分开来,我们就能调整分配给特定计算节点的GPU的数量,从而在应用程序运行时,提供最合理的硬件配置。

  主机节点与GPU分开来的另一个优点体现在电力和冷却上。技术团队在设计节点时,大量时间用在了如何设计才能获得非常好的的气流和温度分布。这也意味着,电源系统是针对典型的用电模式而设计的;这几乎总是意味着节点处于负载状态下(拥有闲置的HPC节点其实不再是HPC)。但是如果你要设计里面到底有没有GPU不一定的节点,这意味着你的耗电量、热负载和气流可能具有的值广泛得多。这通常意味着,从电力和冷却的角度来看,节点不够高效。如果把CPU与GPU分开来,可以为主机节点(CPU)和GPU设计出经过优化的电力和冷却系统。

  CPU与GPU分开来具有的最后一个优点是,能够为主机节点和GPU提供冗余电源。GPU有强大的计算能力,但也需要大量电力——通常是每块卡225W。功率最大的实际电源系统约1400W(市面上有一些1600W电源系统,但比较新颖。)典型的2插座主机节点可以使用200W-600W(甚至更高)的电源,那样只留下约800W供GPU使用。这意味着,在不超出单个电源系统最大功耗的情况下,充其量在一个主机节点里面可以使用四个GPU。一旦超过这个值,就没有任何电源冗余性可言。为了重新获得冗余性,就要添加更多个电源系统,这意味着电源方面可能不是最优化,另外需要为电源系统留出更多的空间和更畅通的气流,因而限制了机箱的大小、增加了成本。

  把所有这些硬件塞入到一个节点很困难;你会发现许多制造商在使用内置GPU的主机系统里面没有冗余电源系统,正是由于里面没有空间,或者没有气流。把昂贵的GPU和主机节点组合到一个机箱中,又不使用冗余电源系统,这会严重阻碍性能方面的潜力,那是由于系统可能会出现停机。

  所以,把GPU与主机节点分开来让主机节点得以保留企业级主机节点中很常见的冗余电源系统,又为GPU提供了冗余电源。

  如果你喜欢,可以将GPU与主机节点分开来的优点看作是保护投资。你不想购买这样的系统:当应用程序或工具发展时,要求换掉现有硬件。此外,如果CPU或GPU技术发生变化——总是在变化,你再次面临“叉车式”升级。把GPU与主机节点分开来,可以适应不断变化的应用程序,并保护硬件投入,避免成本非常高昂的叉车式升级。

  那么,戴尔如何做到GPU与CPU分开来?戴尔又有哪些系统让我可以保护GPU方面的投入?

0
相关文章