简介:硬件算力能够说在人工智能三要素中处于发动机的角色,特别是深度学习在最近 10 年之因此得到日新月异的发展,很大程度得益于硬件算力在摩尔定律的驱动下得到持续的增加,如 GPU 在最近 10 年的理论算力得到了近几十倍的性能提高。因此,硬件算力也是阿里在人工智能技术领域的重中之重,并进行了重点布局和持续的技术研发投入,咱们的技术核心战略是“经过建设核高基领域的研发能力,提供极致性价比的算力供给,奠基阿里云在 IaaS/PaaS 层具有产品易用性、多样性和差别化服务的能力”。html
AI 集群旨在得到更高的 AI 集成算力,扮演着“承上启下“的角色,“承上”是指向 AI 应用提供的有效集成算力,高集成算力是支撑 AI 大模型和海量数据量的使能能力。而“启下”是指经过集群的计算、网络、存储平衡设计来充分发挥 AI 计算芯片能力,例如访存或网络瓶颈都会致使较低的 AI 芯片效率。AI 集群设计的关键在于:前端
首先,咱们将从计算和互联两个技术点对阿里现有的技术栈进行全面的阐述。算法
在阿里云神龙硬件平台下,虚拟化架构也作了相应的升级,使计算虚拟化部分的架构更加清晰简洁,让虚拟机能提供接近物理机的性能。如图所示,神龙服务器架构的主要特色是:I/O 链路从传统的软件实现转变为硬件和直通设备来实现,存储虚拟化、网络虚拟化都在 MOC 卡上来实现;同时将管控系统、监控程序等都下沉到 MOC 卡上。在提供计算服务的物理机上,只运行阿里云本身裁剪的 Linux 操做系统和轻量化的虚拟机监控器。总的来讲,神龙硬件平台的底座,加上轻量化的宿主机 OS,再加上轻量化的虚拟机监控器,就组成了神龙架构下的轻薄且高效的新一代虚拟化平台。数据库
CPU 执行 AI 计算每每并不能达到最优的性价比,所以,具备海量并行计算能力、可以加速 AI 计算的 AI 芯片应运而生。当前最具表明的是 GPU、FPGA 和 AI ASIC 芯片。GPU 仍然是当前最成熟也是最普遍使用的加速器,阿里巴巴上层框架针对 GPU 作了大量的编译优化工做。GPU 在阿里巴巴获得了普遍的部署,也是云上 AI 算力售卖的主力,咱们已经能作到基于 GPU 的云产品与最新一代 GPU 同步发布。在云上 GPU 的安全性,可运维性,用户体验上咱们都走在业界的前列。在于通用计算可运维性在 GPU 虚拟化场景下的热升级能力,居于业界第一;是业界首个发布基于 SRIOV 的 GPU 热迁移技术预研的云厂商。在业界首个实现基于 GRID 的 vGPU 技术在云上输出,引导了 vGPU 云化的技术趋势,而且为 5G 时代的云游戏铺垫了 GPU 计算基础设施。编程
GPU 的训练芯片一直引领着 GPU 技术发展的趋势,除了基础 FP32 算力的高速增加以外,经过精度的变化大幅度提升算力,好比 Tensorcore 是另一个算力提高趋势;另外,因为多卡,多机的通讯的需求,GPU 的通讯经历了 PCIE P2P 技术,基于 NVLink 的高速通讯技术,以及经过 RDMA 网络的 GPUDirect RDMA 技术。而在阿里云上,因为多租户之间须要进行算力共享,在不一样的通讯模式下,如何进行算力分割和通讯的隔离,是一个阿里云一直研究的技术,包括最新的基于 NVSwitch 的 NVLink 全链接场景下的可编程拓扑分割技术等。后端
FPGA 器件自诞生之初,就以高度灵活的可编程性提供类 ASIC 的性能和能效比而普遍应用于有线和无线通讯、航空航天、医疗电子和汽车电子等领域。可是,相比 CPU 和 GPU,FPGA 的开发周期较长(尽管只有 ASIC 开发周期的一半乃至三分之一)、开发和使用门槛较高,使得 FPGA 的开发人员远远少于 CPU 和 GPU 的开发人员,同时应用范围和知名度也受到了很大的限制。在 FPGA 上,咱们具有了有更高的定制和自研能力,阿里云与 AIS 联合研发的业界第一款单卡双芯片的 Xilinx FPGA 板卡,在板卡和 HDK 层面实现了技术自主创新的能力。安全
云上的 FPGA 实例作了丰富的功能输出,阿里云 FaaS(FPGA as a Service)舜天平台在云端提供统一硬件平台与中间件,可大大下降加速器的开发与部署成本。第三方 ISV 加速器 IP 能够迅速造成服务提供给用户,消除加速技术与最终用户的硬件壁垒。用户则可以在无需了解底层硬件的状况下,直接按需使用加速服务。为了给加速器提供方和使用方提供更加高效、统一的开发及部署平台,FaaS 舜天平台提供两大开发套件:HDK 和 SDK。FaaS 的逻辑架构图以下图所示:性能优化
FaaS FPGA 逻辑架构图服务器
阿里云 FaaS 舜天平台支持最全面的 DMA 技术,包括:DMA、XDMA 和 QDMA;同一架构支持 RTL 和 HLS 开发、验证与测试;全球惟一的同一软件架构同时支持两大 FPGA 厂商 Xilinx 和 Intel 的云厂商。全面、过硬、兼容性好,而且可以利用 PR 技术进行动态热升级的Shell技术使得 FaaS 舜天平台成为阿里集团 FPGA 异构加速业务的基础设施,彻底适配了集团的全部已经引入的 FPGA 器件,已经成功服务手淘、优酷、蚂蚁和云安全几大业务板块。网络
阿里云 FaaS 平台架构图
与 GPU 环境下,单向的软件适配硬件不一样,FPGA 和阿里自研 NPU 给了咱们定义硬件的机会,能够根据业务特征进行深度的软硬件优化。AliDNN 是一款基于 FPGA 的指令集、加速器、SDK 和编译器全栈自研的深度学习加速引擎。指令集加编译器设计为 AliDNN 提供了充分的灵活性。深度学习框架 (TensorFlow,Caffe 等)能够直接调用 AliDNN 引擎,编译器(震旦)将深度学习模型编译成加速器指令进行计算。算法, runtime,编译器和加速器的全栈软硬件协调优化,使得 AliDNN 拥有极致的效率和性能。AliDNN 提供了高吞吐、低延迟的深度学习推理服务。
AliNPU(含光 800)更是分析阿里集团内部的人工智能应用场景需求,肯定了以 CNN 模型为主作了深度的优化,同时支持一些通用模型,好比 RNN 类模型等。这是针对特定深度学习算法领域作特别的优化,把相关应用的性价比提升到极致,正式如此,含光 800 性价比远超竞品,成为全球最强 AI 推理芯片。
RDMA 是目前业界最受欢迎的高性能网络技术,能大大节约数据传输时间及 CPU 开销,被公认为是提高人工智能、科学计算、分布式存储性能的关键技术。阿里巴巴基于全新的 HAIL 网络架构并结合自研交换机,打造了从主机网络、消息中间件、盘古分布式存储、网络运营到产品运营的完整技术体系,实现了数十个数据中心的全球最大规模 RDMA 网络部署,远超亚马逊、微软等主要云厂商。这张全球最大规模的数据中心“高速网”使得集群极大地突破了传输速度瓶颈,有效地支撑了云盘 ESSD、云超算 SCC、机器学习 PAI、 云原生数据库 POLARDB 这些广受欢迎的创新产品,并助力电商数据库从容应对双十一峰值流量考验。同时,能够跨 POD 的 lossy RDMA 技术已经在阿里巴巴进入实验测试阶段,届时将进一步扩大 RDMA 的适应范围。
自研的EXSPARCL(Extremely Scalable and high Performance Alibaba gRoup Communication Library)集合通讯库提供通用的集合通讯功能,同时兼容 NVIDIA 的 NCCL。ExSparcl 专门优化支持大规模 AI 集群的高速互联架构和多网卡特性, 充分利用设备之间的互联带宽,保证通讯和业务性能的线性扩展。经过对集群/主机物理互联的拓扑感知,和网络路由的最优选择,实现创新的无拥塞算法,确保节点内和节点间的高速通讯。例如针对 SCC 训练集群架构,实现的Rank重映射 Havling-Doubling 算法,能够保障集合通讯过程当中没有由于路径冲突而产生的拥塞排队,在大规模环境中对比 NVDIA 公司的 NCCL 通讯库,实现集合通讯性能 (AllReduce/AllGather) 的数倍提高,对业务性能的提高也很是明显。此外,拓扑感知的特性能够用于故障规避,大大加强网络的可用性,详见:https://www.qbitai.com/2020/03/11987.html。
ExSPARCL
飞天 AI 加速工具经过统一的框架同时支持了 Tensorflow,PyTorch,MXNET,Caffe 这 4 种主流的 AI 计算框架的分布式性能加速,而且针对 VPC 网络和 RDMA 网络都作了很深刻的性能优化,在不一样场景不一样训练规模下能够提高 1~10 倍的训练性能。同时, AIACC 和各 AI 计算框架是解耦的,一方面能够轻松支持各 AI 计算框架社区版本的向前迭代,另外一方面,用户使用各 AI 计算框架实现的模型、算法代码基本上不用修改,就能够很轻松的得到性能加速。
阿里云与 AIS 联合研发的业界第一款单卡双芯片的 FPGA 板卡,AliFPGAx2,两块 FPGA 之间的 Serdes 的带宽能够高达 600G,在一台服务器上的两块 AliFPGAx2 的板卡,还能够经过光缆互联与高速 Serdes 互联。于此同时 FaaS F3 提供给用户强大的互联拓扑结构,方便用户搭建 FPGA 集群,实现 FPGA 互联,而且经过 FaaS 舜天的 Shell 提供高速 DMA 的软硬件支持。能够支持单卡 2 芯片互联,双卡 4 芯片互联和 8 卡 16 芯片互联,而且互联的通道能够经过软件灵活配置硬件的隔离分割,在云用户不一样的拓扑需求之间进行互联和隔离。下图是典型的 2 卡 4 芯片互联拓扑结构。
在此基础上,阿里巴巴开发了适合不一样应用场景的异构超算集群。
高性能计算是采用低延迟高带宽的计算节点构成并行计算集群,经过并行计算(Parallel computing)实现对浮点密集型科学和工程模型包括AI深度模型的求解。做为计算节点的神龙裸金属服务器经过 RoCE 网卡实现节点间计算的高速 MPI 通讯,经过神龙 MOC 卡实现和 VPC,IO 和网络,云盘的互联。从而在输出超算水平的超级算力的同时,保持全部节点的“云原生”的弹性和统一运维。咱们还开发了弹性高性能计算 E-HPC PaaS 平台,做为高性能计算软件栈建立和管理 SCC 集群,同时对有能力自建 HPC 平台的客户直接输出 SCC 集群。
针对 AI 大规模训练的算力需求,阿里巴巴开展了从硬件到算法的一体化设计。从性能角度,集群设计的核心之一就是经过提高加速器间数据交互的能力,下降非计算开销占比,进而实现算力的规模线性扩展。所以,异构集群系统以优化通讯为突破口,对服务器和整机网络架构进行从新定义,先从硬件上解除通讯瓶颈,再经过软硬件协同,将加强的通讯能力发挥出来,该部分的工做内部代号 EFlops,实现了 AI 训练的线性加速,相关成果在顶级学术会议 HPCA2020 上发布点击查看,目前建设的系统单集群 AI 算力可达 500 PFlops(FP16 性能)。
此外,液冷是推进AI集群架构演进的另外一股力量。因为功耗限制,当前一个机柜仅能容纳两台或四台 8 卡服务器,计算密度难以提高,而液冷则能够打破这个限制,一个 Tank 便可容纳 100 多块 GPU 卡,省电省地省光纤,提高稳定性。相应地,集群架构根据浸没式液冷 Tank 的尺寸和出线特色进行了从新设计,这一工做已进入实验阶段。
再次,在得到极致性能的同时,咱们也兼顾在计算成本方面的优化,以及通用与异构算力解耦以后的灵活性。
阿里 IaaS 的 GPU 虚拟化技术是 AI 计算力上云的基础。阿里 IaaS 在对现有开源 GPU 虚拟化技术之上进行了二次开发,使得现有 GPU 虚拟化方案能够适合公有云对安全性,高可靠性与可监控等关键功能的提高。
在公有云 GPU 服务器的安全隔离方面,阿里云异构 IaaS 层完成了从实例内部的驱动的初步安全过滤,宿主机虚拟化层对 GPU 特权指令的过滤拦截,宿主机 PCIe 协议成的容错处理等三层立体防御体系,确保客户实例不受攻击,也没有可能攻击其余客户。
当前主流异构虚拟化仍是以设备直通的方式存在,并在基础之上逐渐演化出 SRIOV, vGPU 分片虚拟化等最新技术。阿里 IaaS 依托现有 GPU 虚拟化技术完成了 AI 集群 (GPU/FPGA) 的云上规模化和产品输出。GPU 虚拟化走过了漫长的发展路程;经历了直通虚拟化,SRIOV 与 vGPU 的分片虚拟化,Intel 的 GVT-G 技术等等。
在通用计算时代,虚拟化的引入主要是为了提升 CPU 利用率,可是随着热升级,热迁移技术的引入,把计算资源的安全性,可靠性推到新的高度。在 GPU 资源利用率提高,计算资源碎片整理上,GPU 虚拟化技术也扮演着重要的角色。
在公有云 GPU 服务器的监控方面,阿里云异构 IaaS 层作了 GPU 相关的云监控方案,能够实时取得当前 GPU 的运行状态与温度,显存用量等信息,并能够自定义多种监控模式。GPU 自定义监控与 GPU 云监控插件。
在公有云 GPU 服务器的高可用性方面,阿里云异构 IaaS 层开发并部署了特有的 GPU 服务器热升级与热迁移功能。使得当实例所在宿主机须要系统软件更新/硬件维修等运维操做时,可让客户无感的完成升级更新,从而保障了客户业务的稳定性与连续性。基于 SRIOV 和 GRID vGPU 的热迁移能力上,阿里云都做为业界第一梯队领先竞对。
云原生已经成为业内云服务的一个趋势,如何可以在云原生上支持异构计算,同时在单个 GPU 上能够运行多个容器并进行隔离,对此业界也作了不少探索。Nvidia vGPU, Nvidia MPS, 友商的 vCUDA 方案,都为用户更小颗粒度的使用 GPU 提供了可能。
阿里云 GPU 团队推出了昊天 cGPU 方案,相比其余方案,这是一个颠覆性的创新。业内经常使用方案是经过替换 CUDA 库实现拦截,须要对静态连接的程序从新编译,同时 CUDA 升级时也须要适配新版本;而昊天 cGPU 在作到算力调度与显存隔离的同时,也作到了无需替换 CUDA 静态库,动态库,无需从新编译,CUDA,cuDNN 等版本随时升级无需适配。
cGPU 为自主研发的宿主机内核驱动。它的好处在于:
如今基于阿里云 GPU 团队的 cGPU 昊天方案和容器服务的 GPU 共享调度双剑合璧, 能够打造低成本,可靠,用户友好的规模化 GPU 调度和隔离方案。
EAIS 经过软件池化的方式将 CPU 核心数和后端异构加速设备解耦,前端的纯 CPU ECS能够动态挂载或者卸载后端异构加速设备,前端 ECS 和后端异构加速设备间经过加密的 gRPC 协议通讯。后端加速设备能够包括 GPU,FPGA,NPU 等异构加速器,而且经过软件池化的方式进行统一调度和管理。
作加速机群池化的主要目的,是想提升机群资源利用率。机群管理如 K8s 对加速资源管理手段很是有限,通常都是以直通(pass-through)的方式,以整卡的力度来分配。再者 CPU 和加速资源以整机形式,绑定资源分配,在实际应用中有很大资源浪费。而数据中心呈现去中心化发展趋势(disaggregation),从物理机到虚拟机,到虚拟网卡,到分布式存储,整机的各个部件逐渐以专用机柜的形式,以虚拟化,可配置(configurable)的方式经过网络组装。对比磁盘,加速资源跟通用计算之间联系更紧密,可是随着技术的进步,加速资源单独组机柜,经过网络或者其余互联(interconnect)的形式,对通用计算(CPU)加速,成为一个技术趋势。
Heterogenous accelerator resource pooling (HARP),目前以 GPU 为主要加速资源,未来会扩展到 NPU 和其余加速硬件。经过在用户程序和 driver 之间,加一个中间层(目前为软件,未来可扩展为硬件),来实现加速资源的虚拟化,动态地为用户分配本地或者远程的加速资源,从而更好的管理和利用加速资源。
HARP 实现方式的优点为:
HARP 资源池须要支持其余各类加速芯片,所以但愿能创建统一的接口。支持该接口的芯片只须要花少许的工做,就能接入资源池调度系统。所以咱们联合上海交大和清华大学,以及寒武纪等芯片厂商,创建中国异构资源池技术标准产业联盟。
做为软件池化技术的升级,利用自研或者三方的硬件插卡,经过机架或小规模跨机架的高速总线互联技术,对通用计算器与多种加速器进行配比解耦,达到中等规模加速器池化和任意的加速器的灵活组合。同时在可靠性,可运维性,加速卡硬件故障处理 SLA 上提供更好的服务。
远程资源 - 本地访问
最后,基于在“核高基”领域的技术研发,奠基了今天阿里云的 IaaS 及 PaaS 服务具有了如下特色: