阿里公开自研AI集群细节:64块GPU,百万分类训练提速4倍从节点架构到网络架构,再到通信算法,阿里写出了自研高性能AI集群的技术细节写成论文并公开。题为EFLOPS:AlgorithmandSystemCo-designforaHighPerformanceDistributedTrainingPlatform的论文被计算机架构顶级会议HPCA2020收录。阿里是中国唯一一家收录论文的公司。论文作者之一、阿里巴巴高级技术专家蒋晓伟在大会上分享了论文内容。除了展示AI集群的技术细节,他还介绍了它如何为阿里巴巴内部业务和算法带来价值。该集群已应用于阿里巴巴计算平台人工智能训练平台(PAI),服务于阿里巴巴人工智能业务的模型训练:可将派力淘百万级分类模型训练速度提升4倍,并首次时间支持千万级别的分类模型训练;在提高阿里巴巴翻译模型准确率的同时,可将训练时间从100小时缩短至12小时。而且,与世界顶级的AI计算系统相比,阿里的AI集群虽然使用了性能较低的硬件资源,但也表现出了可观的性能。这是阿里巴巴首次公开高性能AI集群的性能。具体情况如何?下面我们根据阿里研究团队提供的解读,一一来看。从业务出发,优化AI集群架构由于深度神经网络的技术突破,围绕AI的技术研究,如AI算法模型、训练框架、底层加速器设计等,吸引了更多和得到更多的关注和广泛的应用,已经登陆到社会生活的方方面面。“但是,很少有人从集群架构的角度去探索AI业务与传统大数据处理业务的运行模式的区别,以及如何优化AI集群的架构设计,”阿里巴巴研究团队表示。他们认为,虽然AI业务具有很强的数据并行度,但与大数据处理业务、高性能计算业务的特点有明显区别。有两个核心区别:第一,AI业务的子任务非常独立,需要周期性通信,实现梯度同步;第二,AI业务的运行以加速组件为中心,加速组件直接通信,并发量明显高于传统服务器。因此,在传统数据中心的服务器架构和网络架构上运行AI服务会存在很多严重的问题。具体来说,服务器架构问题主要是资源分配不均衡导致的拥塞问题和PCIe链路的QoS问题。传统服务器一般配备网卡进行节点间通信,配置多个GPU来支持AI服务。然而,AI训练通常需要GPU之间的梯度同步。如果多个GPU并发访问网络,那么唯一的网卡就会成为系统的瓶颈。另外,PCIe链路上的带宽分配与路径长度密切相关,长路径获得的带宽分配较低,跨Socket通信问题较为严重。网络架构问题主要在于AI训练中同步通信带来的短板效应。网络拥塞是一个非常普遍的问题,相关研究已经进行了几十年。但拥塞控制算法的最终目的是限制两个碰撞流的速度,使物理带宽尽快均分,无法解决AI训练集群的通信效率问题。由于AI业务通信的同步特性,每个通信事务的最终性能由最慢的连接决定。平均共享带宽意味着交易完成时间将翻倍,这将严重影响AI通信的性能。基于此,阿里巴巴决定为AI业务开发自己的高性能AI集群。阿里巴巴AI集群关键技术阿里巴巴自主研发的高性能AI集群EFlops。关键技术有3项:联网的异构计算服务器架构、高度可扩展的网络架构、与系统架构相协调的高性能通信库。为了避免网卡上的数据拥塞,他们为每个GPU提供了专用的网卡,负责与其他GPU的通信。此外,基于Top-of-Server的设计思想,将节点内加速器之间的通信输出到节点外,利用成熟的以太网QoS机制保证拥塞流量间的公平性。研究团队认为,随着加速器芯片计算能力的快速提升,对通信性能的需求越来越大,这种多网卡的网络化异构计算服务器架构将很快成为主流。在网络架构层面,EFlops设计了BiGraph网络拓扑结构,为两层网络之间提供了丰富的链接资源,并提供了跨层路由的可控性。配合多网卡服务器结构,他们在EFlops项目中提出了BiGraph网络拓扑结构,与传统的fat-tree拓扑结构有相似之处,但也有根本区别。类似于Fat-tree拓扑,它们将网络分为两部分(Upper和Lower),每个部分通过Clos架构互连,就像两层Fat-tree拓扑中的Spine和Leaf交换机。与Fat-tree不同的是,它们可以直接连接到两台交换机上的计算服务器;即每台交换机在Fat-tree拓扑中扮演spine和leaf的角色,最大跳数为3。它还为BiGraph拓扑带来了两个重要的特性:一方面,它在两层交换机之间提供了丰富的物理链路资源。在一个有N台计算服务器的系统中,两层交换机之间至少有N/2条物理链路可用。另一方面,任意两台不同层次连接的计算服务器之间的最短路径是唯一的。因此,他们可以充分利用此功能并在通信库甚至更高级别管理服务器间通信模式。例如,在建立连接时,选择合适的源服务器和目的服务器来控制网络上的路径选择。为了阐明这一点,需要引入一个新的概念:Allreduce——数据并行训练场景中最重要的集体通信操作。常用的通信算法有基于环(Ring)、基于树(Tree)和Halving-Doubling(HD)。在阿里巴巴的这篇论文中,主要关注的是Ring和HD,前者是应用最广泛的算法之一,后者是他们在本次研究中的优化对象。Ring和HD算法在数据传输量上没有区别,都是2S;其中S是消息的大小。从通信次数来看,Ring算法需要通信N-1Steps,而HD算法只需要log2NSteps;其中N是参与节点的数量。Ring算法只需要N个连接,而HD算法需要N*log2N个连接。需要指出的是,HD算法的每一步只需要N/2个连接。基于对BiGraph拓扑特性的分析,可以看出BiGraph拓扑的两层交换机之间有N/2条物理链路,HD算法的每一步都需要N/2条连接。BiGraph拓扑的两层交换机之间的最短路径确定性提供了一种可能:将HD算法的连接与BiGraph拓扑的物理链路一一映射,避免它们之间的链路争用,彻底解决问题。网络拥塞问题。基于此,他们还进一步提出了Rank映射算法,将HD算法的通信连接一一映射到BiGraph网络的物理链路上,避免了网络拥塞。Halving-DoublingwithRank-Mapping(HDRM)算法已经在阿里实现了一个自定义的集体通信库ACCL实现。具体步骤如下:这样的集群性能如何?为了评估EFlops系统的性能,他们部署了一个由16个节点组成的训练集群,总共有64个GPU。每个节点配置4个TeslaV100-32GGPU和4个ConnectX-5100Gbps网卡。网络环境按照BiGraph拓扑结构设计,其中8台物理交换机分为16台虚拟交换机,分别部署在BiGraph的两层。研究团队使用MLPerf的ResNet50模型,通过计算达到指定准确率后单位时间内处理的图像数量来评估集群性能。下图给出了EFlops系统和单网卡系统的性能对比,包括系统整体吞吐量和单GPU的平均吞吐量。可以看出,EFlops系统的性能基本达到了线性扩展,而单网卡系统的单位吞吐量随着规模的增长明显逐渐下降。EFlops在使用较低性能的硬件资源(V100-PCIe的性能比V100-SXM2低10%左右)的情况下,与世界顶级AI计算系统相比,表现出了不相上下的性能。此外,他们还分析了阿里巴巴内部应用的性能提升。以拍立淘百万分类模型为例,EFlops系统可以提升通信性能5.57倍,端到端性能提升34.8%。由于流量占比不高,HDRM算法提升了43.5%的通信性能,整体性能提升了4.3%。对于BERT模型,通信量明显高于排淘百万分类模型。仅HDRM算法就可以将通信性能提升36%,端到端性能提升15.8%。研究团队认为,可以预见,随着系统规模的进一步增大,EFlops的性能增益将大幅提升。基于64节点集群的优势,他们进一步构建了一个拥有512个GPU的高性能AI训练集群。初步评估结果表明,基于ImageNet训练集,EFlops集群在Resnet50模型上仍能保持近线性的可扩展性。阿里巴巴基础设施团队共有17位阿里巴巴技术专家参与了EFlops集群的建设,其中大部分来自阿里巴巴基础设施团队,平头哥团队提供支持。论文第一作者董建波,毕业于中科院计算所,现为阿里巴巴高级技术专家。论文通讯作者为阿里巴巴达摩院高级研究员、平头阁首席科学家谢元。谢园是计算架构和芯片设计领域的大师级存在。研究方向为计算机体系结构、集成电路设计、电子设计自动化、嵌入式系统设计。他发表了300多篇顶级期刊和会议论文。继获得IEEE、AAAS、ACMFellow称号后,2月28日再次获得国际学术荣誉——IEEECS2020技术成就奖。
