阿里公开自研AI集群细节:64个GPU,百万分类训练速度提升4倍

简介: 从节点架构到网络架构,再到通信算法,阿里巴巴把自研的高性能AI集群技术细节写成了论文,并对外公布。

乾明 发自 凹非寺
量子位 报道 | 公众号 QbitAI

从节点架构到网络架构,再到通信算法,阿里巴巴把自研的高性能AI集群技术细节写成了论文,并对外公布。

论文名为EFLOPS: Algorithm and System Co-design for a High Performance Distributed Training Platform,被计算机体系结构顶级会议HPCA 2020收录。阿里是国内唯一有论文收录的企业,论文作者之一、阿里资深技术专家蒋晓维在会议现场分享了论文内容。

image.png

除了展示AI集群技术细节,他还介绍了其如何为阿里巴巴内部业务和算法带来价值。这一集群已应用于阿里巴巴计算平台的人工智能训练平台(PAI),服务阿里巴巴的人工智能业务的模型训练:

能将拍立淘百万分类大模型的训练速度提升4倍,并首次支持千万分类模型的训练;在提升阿里巴巴翻译模型精度的同时,能将训练时间从100小时降低至12小时。

而且与世界顶级的AI计算系统相比,阿里的AI集群虽然使用了性能较低的硬件资源,但表现出了相当的性能。

这是阿里巴巴首次对外披露高性能AI集群的性能,具体情况如何?我们根据阿里研究团队提供的解读一一来看。

从业务出发,优化AI集群架构

由于深度神经网络的技术突破,围绕AI的技术研究,如AI算法模型、训练框架、以及底层的加速器设计等,引起越来越多的关注,而且应用越来广泛,已经落地到社会生活的各个方面。

“然而极少有人从集群架构角度探究过,AI业务的运行模式与传统大数据处理业务的差别,以及AI集群的架构设计应该如何优化,“阿里研究团队表示。

image.png

他们认为,虽然AI业务存在很强的数据并行度,但与大数据处理业务和高性能计算业务特征存在明显的不同。核心差别有两点:

第一,AI业务的子任务独立性很低,需要周期性地进行通信,实现梯度的同步;第二,AI业务的运行以加速部件为中心,加速部件之间直接通信的并发度显著高于传统服务器。

因此,在传统数据中心的服务器架构和网络架构上运行AI业务,会存在很多严重的问题。

具体来说,服务器架构问题,主要是资源配置不平衡导致的拥塞问题,以及PCIe链路的QoS问题。

一般情况下,传统服务器配备一张网卡用于节点间通信,为了支持AI业务会配置多个GPU。

但AI训练经常需要在GPU之间进行梯度的同步,多GPU并发访问网络,唯一的网卡就会成为系统的瓶颈。

此外,PCIe链路上的带宽分配与路径长度密切相关,长路径获得的带宽分配较低,而跨Socket通信的问题更加严重。

image.png

网络架构问题,主要在于AI训练中同步通信导致的短板效应。网络拥塞本是一个非常普遍的问题,相关研究已经持续了几十年。

但拥塞控制算法的最终目的,在于对两个碰撞的流进行限速,使其尽快达到均分物理带宽的目的,并不能解决AI训练集群的通信效率问题。

由于AI业务通信的同步性,每个通信事务的最终性能决定于最慢的连接。均分带宽意味着事务完成时间的成倍提升,会严重影响AI通信的性能。

基于此,阿里巴巴决定为AI业务自研高性能AI集群。

阿里AI集群的关键技术

阿里巴巴自研的高性能AI集群名为EFlops,关键技术一共有三个:网络化异构计算服务器架构、高扩展性网络架构、与系统架构协同的高性能通信库。

为了避免网卡上的数据拥塞,他们为每个GPU提供专用的网卡,来负责与其他GPU的通信。

此外,基于Top-of-Server的设计思想,将节点内加速器之间的通信导出到节点外,并利用成熟的以太网QoS机制来保证拥塞流量之间的公平性。

研究团队认为,随着加速器芯片计算能力的快速提升,对通信性能提出越来越高的需求,这种多网卡的网络化异构计算服务器架构将很快成为主流。

在网络架构层面,EFlops设计了BiGraph网络拓扑,在两层网络之间提供了丰富的链路资源,提供了跨层路由的可控性。

image.png

配合多网卡服务器结构,他们在EFlops项目中提出了BiGraph网络拓扑,其与传统的Fat-tree拓扑有相似之处,也存在根本的区别。

与Fat-tree拓扑类似的地方在于,他们将网络中的分为两部分(Upper和Lower),各部分之间通过Clos架构进行互连,形如两层Fat-tree拓扑的Spine和Leaf交换机。

image.png

与Fat-tree不同的是,他们在两部分交换机上都可以直接接入计算服务器;即每一个交换机都扮演了Fat-tree拓扑中的Spine和Leaf两个角色,最大跳步数为3。

也给BiGraph拓扑带来了两个重要的特性:

一方面,在两层交换机之间提供了丰富的物理链路资源。在N个计算服务器的系统中,两层交换机之间至少存在着N/2个物理链路可供使用。另一方面,接入不同层次的任意两个计算服务器之间的最短路径具有唯一性。

因此,他们可以充分利用这一特性,在通信库甚至更高层次进行服务器间通信模式的管理。比如,在建立连接的时候,选择合适源和目的服务器,来控制网络上的路径选择。

想要说清楚这一点,需要引入一个新的概念:Allreduce——数据并行训练场景下的最主要集合通信操作。

其中常用的通信算法有Ring-based(Ring)、Tree-based(Tree)和Halving-Doubling(HD)等。

在阿里巴巴的这篇论文中,主要关注的是Ring和HD,前者是应用范围最广的算法之一,后者是他们在这一研究中的优化对象。

image.png

Ring和HD算法在数据传输量上没有区别,都是2S;其中S是Message的大小。从通信次数角度看,Ring算法需要N-1个Step的通信,而HD算法只需要log2N个Step;其中N是参与节点个数。

而Ring算法只需要N个连接,而HD算法需要N*log2N个连接。需要特别指出的是,HD算法的每个Step只需要N/2个连接。

结合BiGraph拓扑的特性进行分析,可以看到:BiGraph拓扑两层交换机之间存在N/2个物理链路,而HD算法每个step需要N/2个连接。

BiGraph拓扑两层交换机之间最短路径的确定性,提供了一种可能性:将HD算法的连接和BiGraph拓扑的物理链路进行一一映射,避免它们之间的链路争用,以彻底解决网络拥塞问题。

基于此,他们也进一步提出了Rank映射算法,将HD算法的通信连接一一映射至BiGraph网络的物理链路,避免了网络的拥塞,该算法Halving-Doubling with Rank-Mapping(HDRM)已经在阿里定制的集合式通信库ACCL实现。具体步骤如下:

image.png

如此集群,性能如何?

为了评估EFlops系统的性能,他们部署了16个节点,共计64个GPU的训练集群。其中每个节点配置了4个Tesla V100-32G的GPU,以及4个ConnectX-5 100Gbps网卡。

网络环境按照BiGraph拓扑进行设计,其中8个物理交换机划分为16个虚拟交换机,分别部署于BiGraph的两层。

研究团队用MLPerf的ResNet50模型评估了集群性能,具体方式是在达到指定准确率之后,计算单位时间图片处理数量。

下图呈现了EFlops系统和单网卡系统的性能对比,包括全系统吞吐量和单GPU平均吞吐量。

image.png

可以看到,EFlops系统的性能基本达到了线性扩展,而单网卡系统的单位吞吐量明显随着规模逐步下降。

与世界顶级的AI计算系统相比,EFlops虽然使用了性能较低的硬件资源(V100-PCIe性能低于V100-SXM2约10%)也表现出了相当的性能。

此外,他们还分析了阿里巴巴内部应用的性能收益。以拍立淘百万分类模型为例,EFlops系统可以提升通信性能5.57倍,端到端性能34.8%。

因为通信量占比不高,HDRM算法提升通信性能43.5%,整体性能4.3%。对BERT模型而言,通信量明显高于拍立淘百万分类模型,仅HDRM算法就可以提升通信性能36%,端到端性能15.8%。

image.png

研究团队表示,可以预见,随着系统规模进一步增长,EFlops的性能收益将显著提升。基于64节点集群的收益,他们进一步搭建了512 GPUs的高性能AI训练集群。

初步的评测结果显示,基于ImageNet训练集,在Resnet50模型上,EFlops集群仍然能保持接近线性的扩展性。

阿里巴巴基础设施团队打造

EFlops集群一共有17名阿里的技术专家参与打造,大多来自阿里巴巴基础设施团队,平头哥团队提供支持。

image.png

论文的第一作者是董建波,毕业于中科院计算所,现在是阿里巴巴高级技术专家。论文的通讯作者是谢源——阿里巴巴达摩院高级研究员、平头哥首席科学家。

谢源是计算体系结构、芯片设计领域大牛级别的存在,研究方向是计算机体系结构、集成电路设计、电子设计自动化、和嵌入式系统设计,已发表过300多篇顶级期刊和会议论文。

在获得IEEE、AAAS、ACM Fellow称号之后,他在2月28日再次获得国际学术荣誉——IEEE CS 2020年度技术成就奖。

本文来源:量子位微信公众号
点击查看原文

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
1月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
118 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
22天前
|
人工智能 运维 Serverless
Serverless GPU:助力 AI 推理加速
近年来,AI 技术发展迅猛,企业纷纷寻求将 AI 能力转化为商业价值,然而,在部署 AI 模型推理服务时,却遭遇成本高昂、弹性不足及运维复杂等挑战。本文将探讨云原生 Serverless GPU 如何从根本上解决这些问题,以实现 AI 技术的高效落地。
|
15天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多种配置选项,包括CPU+GPU、CPU+FPGA等组合,支持高性能计算需求。本文汇总了阿里云GPU服务器的价格信息,涵盖NVIDIA A10、V100、T4、P4、P100等多款GPU卡,适用于人工智能、机器学习和深度学习等场景。详细价格表和实例规格见文内图表。
|
1月前
|
人工智能 调度 开发工具
xGPU来啦!免费GPU资源开发花样AI应用!
为了降低AI应用服务和推广的门槛,解决开发者面临的实际痛点,ModelScope社区推出 xGPU 服务,让大家能够免费使用高性能 GPU 资源,托管自己的AI应用服务。
|
2月前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
2月前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记二十二:基于 LeNet5 的手写数字识别及训练
本文介绍了使用PyTorch复现LeNet5模型并检测手写数字的过程。通过搭建PyTorch环境、安装相关库和下载MNIST数据集,实现了模型训练与测试。训练过程涉及创建虚拟环境、安装PyTorch及依赖库、准备数据集,并编写训练代码。最终模型在测试集上的准确率达到0.986,满足预期要求。此项目为后续在RK3568平台上部署模型奠定了基础。
|
2月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
2月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
2月前
|
机器学习/深度学习 人工智能 计算机视觉
AI计算机视觉笔记二十三:PP-Humanseg训练及onnxruntime部署
本文介绍了如何训练并使用PaddleSeg的人像分割模型PP-HumanSeg,将其导出为ONNX格式,并使用onnxruntime进行部署。首先在AutoDL服务器上搭建环境并安装所需库,接着下载数据与模型,完成模型训练、评估和预测。最后,通过paddle2onnx工具将模型转换为ONNX格式,并编写预测脚本验证转换后的模型效果。此过程适用于希望在不同平台上部署人像分割应用的开发者。