在任何数据中心,无论是否用于人工智能,节点间快速的网络通信与节点自身的速度同等重要。在进行人工智能工作时,开发者通常被引导使用特定供应商的网络库,例如英伟达(Nvidia)的NCCL或AMD的RCCL。如今,在一篇新论文中,一组韩国科学家提出了一种名为HetCCL的新库,这是一种供应商无关的方法,允许由两家供应商的GPU组成的集群作为一个整体运行。

虽然它可以简单地用于单个设置中多个GPU之间的通信,但数据中心中的集体通信通常最终会使用经典的远程直接内存访问(RDMA),让应用程序将数据传递到网络中其他地方的GPU。可以想象成将网络数据包直接发送到设备的内存中(此处指GPU的VRAM),而不是经过驱动程序、TCP/IP协议栈、操作系统网络层,并在此过程中消耗大量CPU周期。
论文作者声称,HetCCL是世界上首个可直接替代供应商特定CCL的库,它通过实现跨平台通信和负载平衡,一举完成了多项壮举。HetCCL最大的成就是它可以使多供应商部署变得可行,让开发者能够利用英伟达(Nvidia)和AMD服务器机架的综合计算能力来完成特定任务。
其次,HetCCL声称是一个直接的库替代品,显然只需要开发者将其应用程序链接到HetCCL代码,而不是其供应商的CCL。这里最好的类比是更换游戏中的DLL文件来注入花哨的后处理滤镜。这样一来,从应用程序一直到驱动程序,任何地方都不需要进行源代码更改,这是HetCCL团队自豪地指出的事实。
第三,它隐式地增加了对未来任何新GPU供应商的支持,因为一旦链接到HetCCL,应用程序代码就不必担心其数据传输调用(例如对NCCL的调用)是否最终会到达英伟达(Nvidia)的GPU。最后但同样重要的是,HetCCL以最小的开销实现了所有这些,有时甚至由于更好的默认调优参数而优于原始的CCL。
为了说明这一点,科学家们在一个四节点集群上进行了测试,该集群包含2x4个英伟达(Nvidia)GPU和2x4个AMD GPU。请注意,这些结果并非旨在进行跨供应商基准测试,而是用有限的测试资源说明HetCCL的潜力。毕竟,英伟达(Nvidia)系统使用的是PCIe 3.0 GPU,而AMD系统使用的是PCIe 4.0单元;这些现在都已是旧硬件。
在许多情况下,通过简单地叠加英伟达(Nvidia)和AMD的计算能力,结果达到了理论最大值,这是一个令人印象深刻的成就,尽管这自然会因设置和工作负载的不同而有很大差异。在合适的条件下,HetCCL可以降低模型训练的成本,因为同时高效地使用英伟达(Nvidia)和AMD的GPU意味着任务不再需要在集群之间拆分并最终相互等待。管理这些任务也可能节省人力工时。
需要考虑的主要缺点可能是,很难想象跨供应商的人工智能数据中心部署,因为选择GPU供应商也意味着选择一个软件生态系统,而目前英伟达(Nvidia)的产品是标准。此外,系统管理员天生保守,倾向于坚持使用一个供应商以方便维护和支持。
另一个需要注意的是,抽象网络层只是第一步。模型训练和大多数数据中心级别的人工智能相关任务都包含大量特定于GPU的代码和设置优化。无论网络层的跨平台性多么完美,这种限制仍然存在。
尽管如此,HetCCL的全部意义在于表明,消除采用异构设置的一个主要障碍是可能的,其他人可能会追随它的脚步。



