阿里云异构计算云服务器产品可为用户提供了软件与硬件结合的完整服务体系,助力您在人工智能业务中实现资源的灵活分配、弹性扩展、算力的提升以及成本的控制。异构计算类云产品包括GPU云服务器、神龙AI加速引擎AIACC、AI分布式训练通信优化库AIACC-ACSpeed、AI训练计算优化编译器AIACC-AGSpeed、集群极速部署工具FastGPU、GPU容器共享技术cGPU、弹性加速计算实例EAIS和FPGA云服务器。
什么是异构计算
异构计算(Heterogeneous Computing)是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,目前主要包括GPU云服务器、FPGA云服务器和弹性加速计算实例EAIS等。异构计算能够让最适合的专用硬件去服务最适合的业务场景,在特定场景下,异构计算产品比普通的云服务器高出一个甚至更多数量级的性价比和效率。异构计算的显著优势在于实现了让性能、成本和功耗三者均衡的技术,通过让最合适的专用硬件去做最适合的事来调节功耗,从而达到性能和成本的最优化。
随着以深度学习为代表的人工智能技术的飞速发展,AI计算模型越来越复杂和精确,人们对于算力和性能的需求也大幅度增加,因此,越来越多的AI计算都采用异构计算来实现性能加速。阿里云异构计算云服务研发了云端AI加速器,通过统一的框架同时支持了TensorFlow、PyTorch、MXNet和Caffe四种主流AI计算框架的性能加速,并且针对以太网和异构加速器本身进行了深入的性能优化。
阿里云异构计算产品家族介绍
下文为您介绍阿里云异构计算产品家族:GPU云服务器、FPGA云服务器、神龙AI加速引擎AIACC、通信优化库AIACC-ACSpeed、计算优化编译器AIACC-AGSpeed、集群极速部署工具FastGPU、GPU容器共享技术cGPU以及弹性加速计算实例EAIS等异构产品。
一、GPU云服务器
1、什么是GPU云服务器
GPU云服务器是基于GPU应用的计算服务器。GPU在执行复杂的数学和几何计算方面有着独特的优势。特别是浮点运算、并行运算等方面,GPU可以提供上百倍于CPU的计算能力。作为阿里云弹性计算家族的一员,GPU云服务器结合了GPU计算力与CPU计算力,同时实现GPU计算资源的即开即用和弹性伸缩。满足您在人工智能、高性能计算、专业图形图像处理等场景中的需求。产品链接:GPU云服务器GPU云计算异构计算_弹性计算-阿里云
2、为什么选择GPU云服务器
阿里云GPU云服务器是基于GPU与CPU应用的计算服务器。GPU在执行复杂的数学和几何计算方面有着独特的优势,特别是在浮点运算、并行运算等方面,GPU可以提供上百倍于CPU的计算能力。GPU的功能特性如下:
- 拥有大量擅长处理大规模并发计算的算术逻辑单元(Arithmetic and Logic Unit,即ALU)。
- 能够支持多线程并行的高吞吐量运算。
- 逻辑控制单元相对简单。
3、GPU云服务器产品优势
高弹性
提供系列化的规格族,分钟级创建GPU实例,支持水平扩容和垂直变配。高性能高安全性
支持GPUDirect,GPU之间点对点通信。GPU可以直接通过NVLink总线互联通信,具备高带宽低时延的特点,无需CPU干预。多租户间弹性GPU安全隔离 ,并通过Hypervisor授权和管理。允许灵活配置多块GPU实现互相高速通信的同时,还具备隔离带来的安全性。易部署
和阿里云生态深度融合,您可以轻松搭配其他阿里云产品构建应用,例如搭配OSS、NAS等产品满足存储要求,搭配EMR进行深度学习数据预处理等。支持云原生(阿里云Kubernetes),交付更加便捷。易监控
提供全面的GPU监控数据,包括GPU、实例和分组维度,免去您的运维压力。
二、神龙AI加速引擎AIACC
1、什么是神龙AI加速引擎AIACC
神龙AI加速引擎AIACC是基于阿里云IaaS资源推出的AI加速引擎,用于优化基于AI主流计算框架搭建的模型,能显著提升深度学习场景下的训练和推理性能。配合集群极速部署工具FastGPU快速构建AI计算任务,全面提升研发效率和GPU利用率,缩短计算时间并降低AI的推理延迟。
2、神龙AI加速引擎AIACC产品优势
- 使用AIACC加速深度学习应用具有以下优势:
- 基于阿里云IaaS资源,资源易用性和稳定性有保障。
- 配合FastGPU一键构建任务,缩短创建和配置资源的时间并提高GPU资源利用率,大大降低成本。
- 支持多框架统一加速,显著提升训练和推理性能,而且适配工作量小。AI算法研发时验证周期更短,模型迭代速度更快,从而大大提升研发效率。
三、AI分布式训练通信优化库AIACC-ACSpeed
1、什么是AI分布式训练通信优化库AIACC-ACSpeed
AIACC-ACSpeed(AIACC 2.0-AIACC Communication Speeding)是阿里云推出的AI分布式训练通信优化库AIACC-Training 2.0版本。相比较于分布式训练AIACC-Training 1.5版本,AIACC-ACSpeed基于模块化的解耦优化设计方案,实现了分布式训练在兼容性、适用性和性能加速等方面的升级。其作为阿里云自研的AI训练加速器,具有显著的性能优势,在提高训练效率的同时能够降低使用成本,可以实现无感的分布式通信性能优化。
2、AIACC-ACSpeed介绍
AIACC-ACSpeed(本文简称ACSpeed)作为阿里云自研的AI训练加速器,具有其显著的性能优势,在提高训练效率的同时能够降低使用成本,可以实现无感的分布式通信性能优化。
ACSpeed在AI框架层、集合算法层和网络层上分别实现了与开源主流分布式框架的充分兼容,并实现了软硬件结合的全面优化。ACSpeed的组件架构图如下所示:
3、AIACC-ACSpeed优化原理
场景说明
使用单机多卡或多机多卡进行AI分布式训练时,分布式通信的线性度可作为单卡训练扩展到多卡的性能指标,线性度的计算方式如下:
- 单机内部扩展性:线性度=多卡性能/单卡性能/单机卡数
- 多机之间扩展性:线性度=多机性能/单机性能/集群数
线性度的取值范围为0~1,数值越接近于1,其性能指标越好。当线性度不高(例如小于0.8)并且排除了数据IO和CPU的本身因素影响后,可以判断此时分布式通信存在瓶颈。在该场景下使用ACSpeed进行分布式训练,可以加速分布式训练的整体性能,并且原始基线的线性度越差,ACSpeed的提升空间越大。
单机内优化
以PCIe-topo和NVLink-topo机型为例,展示通过ACSpeed优化原理和优化性能效果。具体说明如下:
PCIe-topo机型
-
问题分析
以没有P2P互联的8卡机型的GPU拓扑结构为例,GPU0~GPU7的各卡连接如下图所示。由于卡与卡之间没有P2P互联,且多卡共用PCIe带宽,在涉及多卡通信的分布式训练中,特别是通信数据量较大的场景,容易出现因物理带宽限制而造成的通信占比过高的现象。
上图中,GPU0GPU3或者GPU4GPU7的各卡之间相互通过PCIe Bridge连接(PIX),而GPU0到GPU4GPU7、GPU1到GPU4GPU7、GPU2到GPU4GPU7、GPU3到GPU4GPU7之间需要通过socket之间的QPI/UPI接口连接(SYS)。
优化方法
在原生NCCL通信库中,默认使用ncclAllReduce函数来进行集合通信。在PCIe-topo机型的带宽限制下,性能指标存在待提升的空间。ACSpeed通过降低集合通信过程的相对次数来达到性能提升的目的,实现CPU与GPU之间的异步流水线通信,从而提升通信性能,其主要特点是在CPU上完成数据的AllReduce操作,该优化也称为CPU-Reduce。优化效果
在PCIe-topo类型的单机下,遇到因通信占比较高而引起的低线性度加速时,可选择启用CPU-Reduce优化方法。该方法在4 MB及以上通信量上相对于原生NCCL具有20%左右的性能提升,进而将训练过程中的梯度同步时间整体降低,以获取端到端的性能提升。例如,在典型Resnet50和Transformer-based的模型训练场景中,通过该方法可实现10%以上的性能提升。
NVLink-topo机型
-
问题分析
以V100 8卡机型的GPU拓扑结构为例,不同的GPU之间连接的nvlink通道数是有区别的(例如NV1或NV2),如下图所示。NCCL经常使用的一种算法是binary-tree(即2-tree),在不同机型拓扑下并不能达到最优。
优化方法
基于上述问题,ACSpeed充分利用高带宽的nvilnk互联来实现AllReduce算法(例如GPU0与GPU3等),可以在单机通信出现瓶颈时,额外带来性能增益。针对上述V100实例的nvlink组合,ACSpeed实现一套n-trees算法,扩展单机内部不同tree的拓扑结构组合以及分布式多机多卡支持,从而实现拓扑调优。优化效果
通过针对性设计的n-trees组合,能够充分利用多个nvlink通道的收发能力,在数据通信量128 MB以上具有20%性能提升。
多机间优化
通过ACSpeed优化,可以实现多机之间通信的性能提升,主要体现在高效的AllReduce算法和多流通信优化方面。
1、高效AllReduce算法
问题分析
以V100实例为例,单机内部利用nvlink做P2P通信,带宽高达300 GB/s,而多机网络性能在100 Gbps以下,吞吐性能较差,采用传统的ring-allreduce算法因跨机问题性能受限制,从而导致整体性能下降。优化方法
相比较传统的ring-allreduce算法,ACSpeed设计的hybrid-allreduce算法实现了单机和多机的分层训练,充分利用单机内部高速带宽同时降低多机之间低速网络的通信量,并且针对阿里云不同机型的网卡和GPU距离的拓扑特点,实现多种不同算法组合(例如ps/tree/butterfly),充分发挥特定机型下的网络结构。优化效果
在V100 16 G或者32 G实例的多机上,性能提升明显。例如典型的VGG16两机具有20%以上的性能提升。
2、多流通信优化
问题分析
通常情况下,单流通信无法打满TCP网络带宽(使用iperf工具可以快速验证这一现象),导致上层allreduce集合通信算法的跨机性能无法达到最优。优化方法
ACSpeed设计实现了基于tcp/ip的多流功能,提升分布式训练中并发通信能力,充分利用网络带宽。优化效果
使用多流通信优化,对整体多机的性能大幅提升5%到20%不等。
3、多机CPU-Reduce优化
问题分析
针对PCIe-topo机型,在机器内部通信带宽受限的场景下,相比较原生NCCL,单机内CPU-Reduce的优化效果较明显。因此,基于PCIe-topo机型搭建的多机训练环境下,您可以将单机CPU-Reduce扩展到多机,充分释放单机的性能,同时解决以Socket连接为主的跨机通信的扩展性问题。优化方法
多机CPU-Reduce的实现继承了单机CPU-Reduce高效的异步流水线,将跨机通信过程也设计为流水线形态,同时避免存储在CPU侧的中间数据在CPU和GPU之间往返拷贝。为进一步提升跨机通信的性能,可使用闲置资源增加相应跨机流水线的个数。优化效果
在通信量较大的VGG16或Transformer-based模型的PCIe-topo多机训练场景下,可将端到端性能进一步提升20%以上。
四、AI训练计算优化编译器AIACC-AGSpeed
1、什么是计算优化编译器AIACC-AGSpeed
AIACC-AGSpeed(AIACC 2.0-AIACC Graph Speeding)是阿里云推出的一个基于PyTorch深度学习框架研发的计算优化编译器,用于优化PyTorch深度学习模型在阿里云GPU异构计算实例上的计算性能,相比原始的神龙AI加速引擎AIACC,AIACC-AGSpeed是AIACC 2.0产品的实现,是完全独立的产品形态,可以实现无感的计算优化功能。其作为阿里云自研的AI训练计算优化编译器,对PyTorch深度学习框架训练过程中的计算性能进行深度优化,具有显著的计算性能优势。
2、AIACC-AGSpeed介绍
AIACC-AGSpeed简称为AGSpeed,AGSpeed作为阿里云自研的AI训练计算优化编译器,对PyTorch深度学习框架训练过程中的计算性能进行深度优化,具有其显著的计算性能优势。
AGSpeed的组件架构图如下所示:
3、受限场景说明
在AGSpeed编译器前端,如果使用Dynamic Tensor Shape会触发Re-capture、Re-optimize、Re-compile动作,可能会导致AGSpeed的计算优化性能回退,建议您尽可能使用agspeed.optimize()接口优化模型的静态部分。具体原因和建议如下所示:
原因
- 在AGSpeed编译器前端,如果存在Dynamic Tensor Shape,可能会导致TorchDynamo重新抓取计算图并且重新执行convert frame,对优化性能产生较大影响。
- 在AGSpeed编译器后端,如果存在Dynamic Tensor Shape,会导致TorchScript重新specialize graph,并重新执行所有的优化Pass。另外,NvFuser后端也有可能会为新的Tensor Shape重新编译新的kernel,这些都会对性能产生较大影响。
建议
- 使用agspeed.optimize()接口优化模型的静态部分可以有效避免上述限制。例如,针对目标检测模型,仅使用agspeed.optimize()优化深度学习的- backbone,避免封装检测头,因为检测头部分计算的中间变量存在shape多变的现象。
五、集群极速部署工具FastGPU
1、什么是集群极速部署工具FastGPU
FastGPU是一套阿里云推出的人工智能计算极速部署工具。您可以通过其提供的便捷的接口和自动工具,实现分钟级内快速搭建GPU集群,并为深度学习训练创造快捷环境。
2、FastGPU介绍
FastGPU作为衔接您的线下人工智能算法和线上阿里云海量GPU计算资源的关键一环,方便您将人工智能计算任务构建在阿里云的IaaS资源上。使用FastGPU构建人工智能计算任务时,您无需关心IaaS层的计算、存储、网络等资源部署操作,即可达到简单适配、一键部署、随处运行的效果。
FastGPU提供以下两套组件:
- 运行时组件ncluster:提供便捷的接口将线下的人工智能训练和推理脚本快速部署在阿里云的IaaS资源上。
- 命令行组件ecluster:提供便捷的命令行工具,用于管理阿里云上人工智能计算任务的运行状态和集群的生命周期。
3、组成模块
FastGPU的组成模块如下图所示。
- 底层:调用阿里云的OpenAPI所实现的阿里云云上资源的交互层。
- 中间层:在人工智能任务运行时,对涉及的IaaS层资源所需的对象进行封装后形成的阿里云后端层。
- 上层:对人工智能任务与相应的阿里云实例资源进行映射,适配后形成的用户控制层。
您只需调用用户控制层,即可快速构建阿里云上的IaaS级人工智能计算任务。
4、典型流程
使用FastGPU完成AI计算任务的典型流程如下图所示。
例如,使用FastGPU完成一项训练任务:
在用户起始状态阶段:
将训练数据集上传到对象存储OSS中,并创建一台ECS实例(作为开发主机)存放训练代码。
在FastGPU即刻构建计算任务阶段:
在开发主机上通过FastGPU一键部署集群,创建出任务所需的资源,包括计算资源(CPU、GPU)、存储资源(云盘、NAS文件系统等)、交互式资源(Tmux、Tensorboard)等。
自动启动分布式训练任务,在训练过程中支持通过交互式资源实时查看训练情况。
分布式训练任务完成后自动释放资源。
在用户完成状态阶段:
将训练得到的模型和log文件存放在开发主机的云盘或对象存储OSS上,供您查看任务结果。
六、GPU容器共享技术cGPU
1、什么是GPU容器共享技术cGPU
cGPU是阿里云基于内核虚拟GPU隔离的容器共享技术,助力您在GPU中快速迅捷地部署容器,实现多个容器共享一张GPU卡,使业务安全隔离,提高GPU硬件资源的利用率并降低使用成本。
2、为什么选择cGPU
兼容性好
不仅适配标准的Docker和Containerd工作方式,而且还无缝兼容Kubernetes工作方式。操作简单
无需重编译AI应用,运行时无需替换CUDA库。资源灵活划分
物理GPU的资源任意划分。例如,GPU显存动态划分,支持M级划分、GPU利用率动态划分,算力支持最小2%粒度的划分。GPU实例规格无限制
适用于GPU裸金属实例,虚拟化实例,vGPU实例等各种GPU实例。应用场景丰富
支持在离线混部业务(即在线业务和离线业务)、支持CUDA AI和渲染应用场景。功能强大
具备高优先级的抢占功能和较高的可运维能力,支持热升级、支持多卡划分功能。
3、cGPU架构图
GPU容器共享技术cGPU的架构图如下所示:
为了提高GPU硬件资源的利用率,需要在单张显卡上运行多个容器,并在多个容器间隔离GPU应用。
cGPU通过自研的内核驱动为容器提供虚拟的GPU设备,在保证性能的前提下隔离显存和算力,为充分利用GPU硬件资源进行训练和推理提供有效保障。您可以通过命令方便地配置容器内的虚拟GPU设备。
七、弹性加速计算实例EAIS
1、什么是弹性加速计算实例EAIS
EAIS是一款阿里云提供的性能卓越、成本优化、弹性扩展的IaaS(Infrastructure as a Service)级别弹性计算服务。实现了异构计算资源的弹性挂载,即前端可以使用不带异构加速的ECS实例,后端可以动态挂载或卸载GPU实例,让普通的ECS具备异构计算加速的能力,使CPU资源与GPU资源成功解耦。EAIS让CPU与异构加速器的数量配比实现了灵活可配置,从而满足AI推理等场景对于CPU和异构加速器的数量配比的不同需求。同时,后端的GPU实例通过池化管理和调度,可以灵活选择最适合您工作负载的异构加速器,降低异构加速成本。
2、为什么选择EAIS
选择EAIS,您可以轻松构建具有以下优势的异构计算资源:
- 无需自建机房,无需采购以及配置硬件设施。
- 分钟级交付,快速部署,缩短应用上线周期。
- 快速接入部署在全球范围内的数据中心和BGP(Border Gateway Protocol,边界网关协议)机房。
- 成本透明,按需使用,支持根据业务波动随时扩展和释放资源。
- 提供任意ECS实例与GPU、NPU、FPGA等异构计算搭配的实例类型,满足您的多种需求。
- 支持通过内网访问其他阿里云服务,形成丰富的行业解决方案,降低公网流量成本。
- 提供虚拟防火墙、角色权限控制、内网隔离、防病毒攻击及流量监控等多重安全方案。
- 提供性能监控框架和主动运维体系。
- 提供行业通用标准API,提高易用性和适用性。
3、产品架构
EAIS主要包含以下功能组件:
- 云服务器ECS包含的所有功能组件。更多信息,请参见产品架构。
- 异构计算资源:一块或1/N块GPU或NPU。
以下为EAIS的产品组件架构图:
八、FPGA云服务器
1、什么是FPGA云服务器
FPGA云服务器是一类提供了现场可编程门阵列(FPGA)的实例规格。由于FPGA硬件的可重配特性,您可以快速擦写和重配已创建的FPGA硬件加速应用,同时拥有低时延硬件与资源弹性。
2、FaaS平台介绍
传统FPGA开发硬件周期长,开发难度大,硬件加速算法的发布和部署保护要求也非常高。FPGA云服务器平台FaaS(FPGA as a Service)在云端提供统一硬件平台与中间件,可大大降低加速器的开发与部署成本。您无需了解底层硬件即可快速开发和部署自己的定制加速器,也可以直接使用加速器提供商提供的加速服务。
FaaS包括三个组件:
- 硬件基础设施:FPGA云服务器、硬件加速开发和部署平台(Intel、Xilinx)。
- 云上配套开发环境:厂商配套软件(Quartus、Vivado)、第三方EDA软件(仿真、模拟)。
- FPGA IP开发生态:图片转码、基因计算、数据加密、视频压缩、硬件仿真设计、深度学习(预测/训练)等。
阿里云基于FaaS平台推出了FPGA云服务器,在提供FPGA加速能力的同时,保留了与普通ECS实例一致的使用体验。您在创建ECS实例时,选择企业级异构计算规格即可。
3、功能特性
统一性
兼容多种FPGA器件(Intel、Xilinx),支持Multi-boot的Shell烧写,更可靠,易移植开发。FPGA虚拟化
自主研发的FPGA软硬件虚拟化方案,实现上云安全隔离要求。支持热升级功能,在不中断业务的前提下,对部分用户逻辑进行在线重配置,以实现新的功能。联合仿真平台
支持Intel和Xilinx器件,您无须更改原有设计即可进行软硬件联合仿真,降低输出FPGA高性价比算力的复杂度。互联拓扑动态可配置
支持1片、2片、4片FPGA互联拓扑,可动态配置拓扑,实现最高性价比。同卡FPGA之间使用高速互联通道,应用实现两片FPGA之间实时、大批量数据搬运时,不存在带宽瓶颈。
4、工具套件
FaaS平台提供HDK和SDK套件,搭建更加高效、统一的开发及部署平台。
DK采用Shell+Role的组合方式,保证Shell的最轻量化和稳定性,同时兼顾便捷性和灵活性。
SDK包括两部分:
- HDK对应的主机端驱动(Drivers)与软件库(Libraries),和HDK的Shell、Role相对应,一起为您提供统一灵活的软件支持。
- FPGA管理工具faascmd套件,为您提供云上FPGA管理服务,包括BIT/DCP文件安全校验、FPGA镜像生成、下载及管理、FPGA加速卡状态查询反馈等功能。
FaaS的镜像相关操作依赖于阿里云OSS存储,因此使用FPGA云服务器时必须开通OSS服务。
5、产品计费
FPGA云服务器的计费相关功能和云服务器ECS一致,其中,计算资源(vCPU和内存)、镜像、块存储、公网带宽以及快照等资源涉及计费。
常见的计费方式如下所示:
- 包年包月:按一定时长购买资源,先付费后使用。
- 按量付费:按需开通和释放资源,先使用后付费。
- 抢占式实例:通过竞价模式抢占库存充足的计算资源,相对按量付费实例有一定的折扣,但是存在回收机制。
- 预留实例券:搭配按量付费实例使用的抵扣券,承诺使用指定配置的实例(包括实例规格、地域可用区等),以折扣价抵扣计算资源的账单。
- 节省计划:搭配按量付费实例使用的折扣权益计划,承诺使用稳定数量的资源(以元/小时为单位衡量),以折扣价抵扣计算资源、系统盘等资源的账单。
- 存储容量单位包:搭配按量付费存储产品使用的资源包,承诺使用指定容量的存储资源,以折扣价抵扣块存储、NAS、OSS等资源的账单。
附:阿里云最新活动
1、代金券活动:上云满减券5万减1万,上云满减券30万减5万,上云满2.5万减8千,上云满减券12万减3万。
2、云服务器活动:轻量应用服务器2核2G低至108元/年!新品u1云服务器限时低至97.43元/月!