服务器 频道

GPU应用程序及系统演变—基准测试

  【IT168 专稿】GPU可以说是高性能计算中最热门的趋势之一,它能在大大提高性能的同时减少系统的功耗。然而,由于GPU计算领域仍在应用开发和工具集创建这两个方向演变,因此GPU系统需要尽可能灵活。

  本文展示了相关配置的一些基准测试。在某些情况下这些基准测试和Supermicro系统(第一代GPU 计算服务器,1U机架中包含了2个GPU)进行了对比。而且在某些情况下,基准测试讨论了只有Dell GPU配置能够实现的特定应用程序的灵活性。

  先说重要的—带宽测试

  当你第一次开发或购买一个新的GPU计算解决方案,你将要进行的第一个可能的基准测试就是主机和GPU之间(反之亦然)的一个简单的带宽测试。你应该知道主机节点和GPU如何连接,这样你就有最大化带宽的想法了。

  举例来说,对于2x16 连接的一代PCIe 单方向的理论带宽为8GB/s (http://en.wikipedia.org/wiki/PCI_Express,这正是我们在以下的带宽测试中测试的) 。下图1是Dell的Mark Fernandez博士2010年Nvidia GTC会议演讲的一张柱状图。该图依据配置了Intel处理器的Dell C6100的线路数量,到单个HIC的单个连接以及Dell C410x中的单个GPU显示了带宽大小。

GPU应用程序及系统演变—基准测试
▲图1—Host-GPU 和GPU-Host带宽测试

  图1中,“H”是指主机,“D”是指设备或GPU。C6100和C410x组合峰值达到了大约5.6 GB/s。这大概是16条线路(x16) 70%的效率,和在机架内安装了GPU的其他系统(所谓的“直连”)相比好不逊色。由于PCIe交换机配置在Dell C410x内部,结果稍微有些不对称。

  基准测试

  Dell已经基于GPU配置进行了大量的基准测试,但是在这儿只展示了一小部分。请阅读Mark Fernandez博士2010年Nvidia GTC会议演讲,了解更多相关的基准测试。也可以关注Dell 高性能计算博客(www.HPCatDell.com )了解最新的GPU测试结果。

  博客中展示的第一个基准测试是NAMD (http://www.ks.uiuc.edu/Research/namd/)。这是GPU较高级的分子动力学(MD)应用程序之一。在这份特别的基准测试中,使用了STMV数据集。NAMD运行在连接了Dell C410x的Dell C6100之上,Dell C410x有两块Nvidia M2050s卡共享一个x16连接,和Supermicro带有2个GPU(M2050s),每个GPU通过x16插槽连接的1U机架进行了对比。对比的详细信息在Mark Fernandez博士的演讲中进行了说明,而且两个单元之间的CPU,内存的类型及数量以及软件完全相同。

GPU应用程序及系统演变—基准测试
▲图2—NAMD,STMV基准测试

  从这份特别的基准测试,你可以看到当每个GPU有一个专用的PCIe x16插槽而不是共享单个PCIe x16插槽时,NVMD性能更好。

  然而,这个简单的基准测试不够全面。下图3是相同的测试但是我们将Dell C6100/C410x的组合中将PCIe底盘(C410x)和主机节点(C6100)之间的单个x16连接的GPU的数量从1个更改为4个。C410x的优势之一是灵活性,允许你按需更改CPU数量,同样可以通过脚本更改,不用做出任何物理改变。而对于机架内有固定数量GPU的节点你不能这么做。

  图3 比较了Dell配置和Supermicro 配置(2GPU),以及在节点上只使用CPU(12个核心)的steps/s性能。

GPU应用程序及系统演变—基准测试
▲图3—各种数量GPU的NAMD, STMV基准测试

  关键要注意的是虽然由于Supermicro机架有专用的x16插槽,Supermicro配置比Dell的2个GPU组合要快,但是你可以通过在C6100/C410x组合中增加两个GPU获得更好的性能—这一点Supermicro配置做不到。在Dell的配置中增加两个GPU(总计4个GPU)几乎能够获得80%的性能。只需要在C410x中再安装两个GPU,然后把他们分配各主机节点(通过软件,通常是通过管理网络完成)并重启C6100主机节点就可以做到。而对于Supermicro配置,为配置4GPU你不得不购买第二个单元,成本更高,而且你仍旧不能在节点间共享GPU。灵活性是GPU计算的关键,这是一个很好的例子。

  在某些情况下,图2举例说明了为达到可能的非常好的性能,应用程序需要专用的x16插槽。但是有些应用程序并不一定如此。图4通过一系列的查询长度描述了CUDASW++应用程序(http://sourceforge.net/projects/cudasw/)的性能。正如在NAMD中,应用程序运行在Dell C6100主机节点上,Dell C6100有单独的x16 PCIe连接到配置了2块Nvida M2050s的C410x上。在最坏的情况下当两个GPU在同时通信并使用所有带宽时,能够有效地为每个GPU提供8条PCIe线路;和具有相同的CPU,相同类型和数量的内存,相同软件但是每个GPU有专有的x16插槽(一共2个GPU)的Supermicro单元进行了对比。

GPU应用程序及系统演变—基准测试
▲图4—根据查询长度进行CUDASW++基准测试

  需要注意的是两种配置的性能几乎相同,但是对于较多的查询长度,实际上C6100/C410x组合更快。即使2个GPU共享到主机节点的单个x16连接,而Supermicro GPU有专用的x16插槽也是这样。这表明了专用的x16插槽不一定是性能所需要的——完全取决于应用程序。

  此外,这个测试表明了GPU配置灵活性的重要性。和共享单个x16插槽的2个GPU相比,使用专用x16插槽的CUDASW++不能提供更好的性能。使用灵活性配置比如C6100/C410x,你可以轻松调整主机节点的GPU数量,不必购买额外的主机节点或专用配置。

  总结

  这两个基准测试表明性能取决于特定的应用程序。在NAMD测试中当每个GPU有一个专用的x16插槽时,你可以获得好一点的性能。然而,在CUDASW++测试中每个GPU没有必要有一个特定的x16插槽而且当两个GPU共享一个x16插槽时,你仍然可以获得较好的性能。

  然而,正如在NAMD测试中表明的那样,Dell的C6100 和C410x组合允许你通过C410x接口给主机节点分配GPU,然后重启该节点在主机节点上增加更多的GPU。在NAMD测试中,当给节点增加两个GPU后(总共4个GPU)大约80%的额外的性能被NAMD使用。如果你正使用内置GPU的节点,增加GPU的唯一方法是再买一个节点。这不允许节点共享GPU,严重限制了解决方案的可扩展性。

  基准测试表明了Dell GPU配置的灵活性,能够很容易的为系统增加GPU,完全不必购买新节点。随着GPU应用程序被创建,逐步演进,数量激增,非常需要GPU配置的灵活性。一些应用程序可能需要1个或2个GPU并配置尽可能多的PCIe带宽,其他更成熟的应用可能仅需要更多的GPU。具有相同的硬件集合,能够灵活的满足上述两种需求的GPU计算配置提供了最多的投资回报率而且能够最大化的使用你的资源。

0
相关文章