AI集群旨在提供更高的集成算力,作为连接上层应用和底层硬件的桥梁,主要分为“承上”和“启下”两部分。“承上”指的是为AI应用提供高效的算力支持,这是运行大规模AI模型和处理海量数据的基础。“启下”则是指通过计算、网络和存储的平衡设计,最大化利用AI计算芯片的性能,避免诸如内存或网络瓶颈导致的效率下降。
AI集群的设计重点包括: 1. 单机优化:通过软硬件协同优化,提高AI加速器的利用率。 2. 多机优化:通过优化通信机制,减少多机数据交换带来的计算效率损失。我们将从单机加速和多机集群加速两个方面介绍相关技术和系统。
首先,我们将从计算和互联两个方面详细解释阿里云现有的技术栈。
在阿里云的神龙硬件平台上,虚拟化架构进行了升级,使计算虚拟化部分更加简洁高效,使得虚拟机接近物理机的性能。神龙服务器架构的主要特点包括:I/O链路从传统的软件实现转为硬件和直通设备实现,存储和网络虚拟化在MOC卡上完成,同时将管控系统和监控程序等下沉到MOC卡上。这使得神龙架构下的新一代虚拟化平台不仅轻便而且高效。
CPU执行AI计算通常无法达到最佳性价比,因此高性能并行计算芯片应运而生。其中最具代表性的是GPU、FPGA和AI专用芯片(ASIC)。GPU是当前最成熟且广泛应用的加速器,阿里云针对GPU进行了大量的编译优化工作。阿里云广泛部署了GPU,并且在云上AI算力销售中占据主导地位。我们已经能够同步发布最新一代GPU产品。在云上GPU的安全性、可维护性和用户体验方面,阿里云处于行业领先地位,尤其是在热升级能力和基于SRIOV的GPU热迁移技术方面,阿里云是业界首批发布此类技术的云服务商之一。
GPU的训练芯片一直在推动技术进步,除了基本的FP32算力增长外,通过改变精度大幅提高了算力。例如,TensorCore技术就是算力提升的一个重要方向。此外,由于多卡或多机通信的需求,GPU通信经历了PCIe点对点(P2P)技术、基于NVLink的高速通信技术以及RDMA网络的GPUDirect技术。在阿里云上,由于多租户需要共享算力,如何在不同通信模式下分割算力并隔离通信是一个重要的研究课题,包括最新的基于NVSwitch的NVLink全连接场景下的可编程拓扑分割技术等。
FPGA器件自诞生起就因其高度灵活的可编程性和接近ASIC的功能和能效比,广泛应用于通信、航空航天、医疗电子和汽车电子等领域。然而,与CPU和GPU相比,FPGA开发周期较长,开发和使用门槛较高,这限制了其开发人员数量和应用范围。尽管如此,阿里云通过FPGA实现了更高的定制化和自主研发能力。阿里云与AIS合作研发了业界首款单卡双芯片的Xilinx FPGA板卡,实现了技术创新。
阿里云FaaS平台在云端提供了统一的硬件平台和中间件,大幅降低了加速器的开发和部署成本。第三方加速器IP可以快速转化为服务提供给用户,消除了加速技术与最终用户的硬件壁垒。用户无需了解底层硬件即可直接使用加速服务。FaaS平台提供了两种开发套件:HDK和SDK,以支持加速器的高效开发和部署。
RDMA是当前最受推崇的高性能网络技术,能够显著减少数据传输时间和CPU开销,被认为是提升AI、科学计算和分布式存储性能的关键技术。阿里巴巴基于HAIL网络架构,结合自研交换机,构建了一个从主机网络、消息中间件、盘古分布式存储到网络运营的产品运营完整技术体系,实现了全球最大规模的RDMA网络部署。这张“高速网”极大地突破了传输速度瓶颈,支撑了阿里云的多项创新产品。
EXSPARCL集合通讯库提供了通用的集合通讯功能,同时兼容NVIDIA的NCCL。EXSPARCL特别优化了大规模AI集群的高速互联架构和多网卡特性,充分利用设备间的互联带宽,确保通信和业务功能的线性扩展。通过感知集群/主机物理互联的拓扑结构和选择最优的网络路由,实现了创新的无拥塞算法,确保节点内部和节点之间的高速通信。例如,针对SCC训练集群架构,实现了Rank重映射算法,保障集合通讯过程中的无拥塞现象。
飞天AI加速工具通过统一框架支持TensorFlow、PyTorch、MXNet和Caffe等主流AI计算框架的分布式功能加速,并针对VPC和RDMA网络进行了深入优化,提升了1至10倍的训练性能。AIACC与各AI计算框架解耦,支持社区版本的向前迭代,用户无需修改模型或算法代码即可获得性能提升。
阿里云与AIS合作研发了业界首款单卡双芯片的FPGA板卡,两块FPGA之间的Serdes带宽可达600G。阿里云FaaS平台提供了强大的互联拓扑结构,支持用户搭建FPGA集群,实现高速互联,并通过FaaS平台的Shell提供高速DMA的软硬件支持。可以支持单卡2芯片互联、双卡4芯片互联和8卡16芯片互联,互联通道可通过软件灵活配置。
高性计算集群采用低延迟高带宽的计算节点,通过并行计算实现浮点密集型科学和工程模型的求解,包括AI深度模型。神龙裸金属服务器通过RoCE网卡实现节点间高速MPI通信,通过神龙MOC卡实现与VPC、IO和网络的互联。这使得集群在提供超级算力的同时保持云原生的弹性和一致性运维。
针对AI大规模训练的算力需求,阿里巴巴从硬件到算法进行了一体化设计。集群设计的核心之一是通过提升加速器间数据交互的能力,降低非计算开支占比,从而实现算力的规模线性扩展。通过软硬件协同优化,实现了AI训练的线性加速,相关成果已在顶级学术会议上发布。
阿里云的GPU虚拟化技术是AI计算上云的基础。阿里云在现有开源GPU虚拟化技术的基础上进行了二次开发,使其更适合公有云对安全性、高可靠性和可监控性的需求。在公有云GPU服务器的安全隔离方面,阿里云实现了从驱动层面的安全过滤、宿主机虚拟化层对GPU特权指令的过滤阻拦以及宿主机PCIe协议的容错处理,确保客户实例不受攻击。
阿里云的GPU虚拟化技术支持直通虚拟化、SRIOV和vGPU分片虚拟化等技术。在通用计算时代,虚拟化主要用于提高CPU利用率,但在GPU资源利用率提升和计算资源碎片整理方面,GPU虚拟化同样扮演着重要角色。
阿里云GPU团队推出的昊天cGPU方案,无需重新编译CUDA静态库或动态库,即可实现算力调度与显存隔离。昊天cGPU方案与容器服务结合,提供了低成本、高可靠、用户友好的GPU调度和隔离方案。
EAIS通过软件池化的方式将CPU核心数和后端异构加速设备解耦,前端的纯CPUECS可以动态挂载或卸载后端异构加速设备,通过加密的gRPC协议进行通信。后端加速设备可以包括GPU、FPGA、NPU等异构加速器,并通过软件池化的方式进行统一调度和管理。
HARP的主要目的是提高机群资源利用率。通过在用户程序和驱动之间增加中间层,实现加速资源的虚拟化,动态分配本地或远程的加速资源。HARP可以支持物理机、容器和虚拟机等多种环境,提供本地和远程加速资源的支持,并通过控制API实现显存和计算资源的控制。
硬件层池化作为软件池化的升级版,通过自研或第三方硬件插卡,利用高速总线互联技术,对通用计算和多种加速器进行解耦,实现中等规模的加速器池化和灵活组合。同时,通过可靠的运维和硬件缺陷处理,提供更好的服务。
最后,基于在“核高基”领域的技术研发,阿里云IaaS及PaaS服务具备以下特点: 1. 产品多样性:提供性价比极致的硬件算力基础设施。 2. 软硬协同:以软硬协同为主的技术研发和规划形成差异化竞争力。 3. 弹性算力:从单加速器分片算力共享到大规模集群算力的弹性算力交付能力。 4. 高可靠性:SLA服务能力具有差异性和高可靠性。