云栖TechDay第36期,阿里云高级产品专家霁荣带来“阿里云异构计算平台——加速AI深度学习创新”的演讲。本文主要从深度学习催生强大计算力需求开始谈起,包括GPU的适用场景,进而引出了弹性GPU服务——EGS(Elastic GPU Service),重点讲解了EGS的优势、EGS监控以及EGS产品家族,最后对EGS支撑AI智能创新进行了总结。以下是精彩内容整理:
基于大数据的深度学习催生强大计算力需求
怎样加速AI深度学习支撑,帮助大家搭建模型,支撑大家业务运营等等。
如图,深度学习出来之后,过去很多人做机器学习是用小数据做,到了大数据时代,我们有了更多的数据样本,再加上我们的计算力,使得深度学习成为可能。所以说计算能力是深度学习应用的基础,深度神经网络模型复杂,神经元可达百万级别,每层具有亿级参数空间,且训练数据多,需要的计算量巨大,周期也是非常长的。计算能力对于深度学习的支撑与推动作用是不可替代的,计算能力越强,同样时间内积累的经验就越多、模型训练迭代速度也越快。
GPU具有更好的并行计算能力
提到计算力,过去大家都在用CPU,深度学习最开始也是用CPU,但是CPU是面向控制流的,尤其是X86,是复杂指令机,它更多的片上神经元里面是一些控制逻辑和一些缓存,这样会更好适合日常桌面等IT办公,面向产品的,所以它是典型的SISD就是单指令流、单数据流,主要是串行,并行程度也不高,在过去几十年是OK的,但是真正到了超算,到了深度学习,我们就会发觉,CPU的计算力越来越是瓶颈。而GPU从一开始设定的时候,目标非常单一,它当时是做图形渲染,在设计的时候就把很多控制逻辑包括缓存等等都去掉,因为很多数据进来是大规模并行的,它是SIMD单指令流、多数据流,这时候它是完全并行来计算的,所以它可以达到几千个处理核,而传统的CPU现在可能最多几十个处理核,所以GPU在深度学习时代就很受欢迎了。
GPU适用的领域及业务场景
GPU 的特点:实时高速、并行计算、浮点计算能力强.
GPU可以做3D渲染,视频电解码,这是GPU的老本行,计算效率非常高,现在仍然在大量的使用。继而就是GPU尤其以CUDA为代表,并行计算框架大大降低了编程模型和门槛之后迅速普及起来,它在高性能计算包括AI的深度学习上,得到了非常广泛的应用。但是在使用GPU的时候,因为GPU价格比较贵,而CPU已经非常普及,所以GPU使用起来,使用关心的问题有很多,比如:
首先会看一下是做渲染的任务还是做深度学习的任务,是做可视化计算还是深度学习,另外会考虑到底怎么来建设它,这会涉及到一些性价比对比等问题,哪有可用的GPU资源?我们会从这些角度考虑来设计我们的产品和场景。
当你真正用起来的时候,你会发现GPU还挺好用,对业务加速确实有效果,但是业务量上来了,就需要扩容,这时候又涉及到底怎么扩,做业务可能会有数据存放,比如大家在做深度学习的时候有非常海量的数据,可能几百个T,甚至已经达到了PB级别,怎么存储呢?可能有多个节点之间的交互,有的节点需要做视频抽帧,有的节点专门来做GPU计算,那么就会涉及到网络之间的交互,节点和节点之间会有网络交互,包括节点和存储之间都有网络交互,这时候该怎么办呢?
再进而你的业务发展壮大了,原来可能就在上海提供服务,现在要在美国提供服务,要在东南亚提供服务,如何多地域线上服务?最后还有GPU的工作怎么样,因为GPU现在功耗比较大,发热也是比较高的,所以经常会出现工作不正常,这个时候 GPU监控是非常必要的。
弹性GPU服务(Elastic GPU Service–EGS)
在线下使用GPU的时候会有那么多考量的因素,所以我们在云上提供服务的时候,也不是简单的把它搬上来,里面还有很多工作要做。阿里云现在推出了弹性GPU的服务,它是和阿里云所有其他服务是打通的,包括我们的云盘、负载额均衡等等,完全是天然一体化的,所以在使用的时候和使用别的ECS云主机并没有太大的使用差异。面对的场景就是我们现在客户比较关注的,EGS是基于GPU应用的计算服务,适用于深度学习、视频解码、图形渲染、科学计算等应用场景,具有实时高速,并行计算跟浮点计算能力强等特点。
EGS优势
EGS具有系列化规格族,可以根据AI深度学习计算力的要求,按需选择合适的规格,分钟级即可完成实例的创建;根据运算力需求进行GPU实例的Scale-out水平扩容或Scale-up垂直变配。
我们并不是简单的把GPU从线下搬到线上。搬上来之后,我们有很多的优势:
第一个优势是弹性。大家在使用GPU的时候,以深度学习为例,当你累计到一段时间或者说你的模型升级,训练数据增加很多的时候,你会发现计算量的需求会突增。在云上很容易注意,然后当你用完可以选择释放。这是弹性和线下最大的好处,我们应对临时的需求增加爆增是非常有好处的,。
在线更加是这样,当你的模型训练好,把它放在线上提供服务给大家,包括图象识别服务或者语音服务等等,或者说你现在不是提供这种服务,可能提供的是一个图象的APP,里面使用了深度学习来完成这里面一些业务逻辑,随着访问量爆增的时候,在线的服务能力也需要动态伸缩。
使用线上的弹性云EGS服务,规格比较多。客户在使用单卡、两卡、四卡、八卡的都有这样需求,入门级客户可能使用单卡就够了,对于一些业务量比较大或者是研发能力比较强的,需要多卡,这个时候我们可以根据你的规格来选择,并且整个创建过程也是非常快的,分钟级就可以完成。水平扩容线下也可以买,但是我们可以随时变配,这都是在线下使用过程中,随着业务的增长要具备的一种弹性能力。
第二个优势是极致性能与安全。实现GPUDirect支持,GPU卡之间点对点通信,可以让GPU之间在无需CPU干预下,直接通过PCIe的总线进行高带宽低时延的互联通信,极大地提升了AI深度学习训练中模型参数交换效率;弹性GPU多租户安全隔离 ,通过Hypervsior的授权和管理,在隔离的安全性和允许多块GPU灵活配置互相高速通信。
第三个优势是与阿里云生态深度整合。企业用户除了GPU之外,阿里云有OSS对象存储,它有着非常低的价格,具备非常海量的存储能力,我们还有NAS文件存储,可以把要训练的样本照片,或者文本资料传到这两个上面来。当你的容量需求量没有那么大的时候,放在我们云盘上面也OK的,当你需要几百T或者更大,而且成本要求更低,完全可以放在NAS或者OSS上面,这样可以天然打通你的训练数据存储和我们之间的问题。我们还提供EMR,因为现在都是大数据,海量的数据在训练之前都要做一些预处理,这些预处理可以定一些EMR的任务来帮你完成,然后把数据先处理最后传到这边来处理。处理之后模型就好好的训练出来,达到业务的要求,接下来就会考虑业务上线,上线之后会有一些前端等跟EGS相配合,另外会和我们弹性伸缩、负载均衡等相配合,以及我们刚才提到的监控等等。不管你是一个小规模业务还是大规模,你可以利用阿里云上众多的服务组件和能力来完成一个以深度学习为核心或者以差异化竞争为核心点的关键技术,包装支撑了整个业务的服务平台,我们也支持容器的方式来交付,使得整个方式更加便捷。
第四个优势是成本节约。 EGS实例支持灵活的使用方式:
• 用户可以按年支付以获得最高的使用折扣;
• 按月付费降低用户的计算资源使用一次性投入成本,并且具有相对较低的单位小时使用价格;
• 按小时的付费使用户以最低的单次使用成本来应对临时性的短期使用需求。
弹性GPU服务监控
我们还会对GPU做一个监控,会知道整个GPU的使用率、内存、温度等等,而且温度可以使用告警,你可以预先做一些保护性措施,从你的业务层面联动起来,基本就是免运维直接使用。
总结下来看,使用这种GPU云服务器自建,因为很多客户都在考虑自建,我们可以分级创建,而且我们可以变配,就是实例里面可以改变你的配置;在性能方面我们用的是专业级的GPU卡。而且我们会有一些多卡的支持,包括安全防护以及部署,部署对企业用户来讲是非常重要的。很多的客户现在整个业务都是布在阿里云上,所以他在布GPU的时候,首先会首先考虑部署在阿里云上。
EGS产品家族
上面就是作为异购计算平台来讲,因为整个深度学习也好,科学计算也好,它实际上是分层的,有些人是做业务,有些人是做算法,还需要有一些人出来做平台加速的,而我现在说的产品就是定位在最底层做平台加速的,我们目标是提供一个高性价比、非常好用的GPU云组机给大家,让大家把自己的算法及业务部署在云组机里面,更好的支撑业务的发展。
那么,当前我们提供什么样的能力呢?具体来讲,整个阿里云EGS弹性GPU服务现在包含两大类,从我们的业务场景出发,一类是可视化计算,另外一类是通用性计算。
可视化计算有共享型和独享型。通用计算已经上线了GN4和 GN5。
GA1–可视化计算型
对于可视化计算,我们对它的定位或者我们看到客户在线上使用它的时候主要在做一些图形渲染,就是跟图形交互的可视化相关的一些事情,在我们规格组上,我们会看到,我们过去没有这个规格,就是说我们可以做到0.5个GPU卡,现在做了一个共享GPU实例。很多厂商在云上面提供GPU的时候是提供了以GPU为单位做分割,但对于在训练场景下,因为你是计算密集型的,计算能力是越高越好,你不会把它进行分割,但是你在进行可视化尤其是远程桌面场景下,它其实计算能力是足够的,大家关心的是成本,是性价比,所以我们就做了这个共享GPU实例,我们可以把一个物理GPU卡变成多个,通过虚拟化技术,我们可以保证性能损失可以忽略不计,而且我们基于硬件的辅助虚拟化,底层的隔离线也非常好。
所以,最小的规格我们可以从0.5个卡,从技术来说我们可以做到更小的力度,但是你会发现更小力度之后,别的能力可能会很弱,可能在使用起来实际意义不大,所以我们把当前规格定在此,到现在最大我们是4个卡的支持,我们会配一些本地的SSD,保证整个端到端的性能取得最佳。
GN4 – Nvidia Tesla M40通用计算加速型
GN4实例规格族是企业级异构计算ECS,提供了高性价比深度学习和视频处理能力。M40因为整个能力不突出但是也够用,很多场景底下,包括我们实际售卖中,发现很多客户也在用它做训练,更多的是拿它来做一些推理,我们不否认很多客户在线下用消费级的卡来做训练,但是在线上提供服务的时候,就必须要考虑选择一个云平台。很多客户跟我们反馈说,我现在是GPU密集型的,我的CPU做的事情非常少,高CPU是用不完的。用不完就是一种浪费,因此,我们用自己平台的能力把它进一步的切小,也就是说当你在一块卡的时候,给你三种CPU memory的选择,使得多种选择之后就极大降低你的使用成本。我们两卡的机型也是一样的,过去我们只有固定一种,现在我们通过技术实现把它整个CPU memory降下来,使得你的整体拥有成本更低,更灵活。
GN5 –Nvidia Tesla P100通用计算加速型
GN5实例例规格族是企业级异构计算ECS,提供了超高性能深度学习和视频处理能力。
重点跟大家推荐当前使用的Tesla P100,也是国内共有云厂商里第一家推出P100的商家。P100现在市面上可以买到最好的卡,我们可以最大支持8卡。在我们云上可以用到单机8卡,而且可以以一种按量的方式。如果线下会受限于你的环境,买8卡的服务器还是比较贵的,但是在线上你可以按量买。它的整个计算能力是非常高的, GN5这一代的实力相比基于GN4能力,单精度浮点能力提升了5倍。
弹性GPU服务支撑AI智能创新
介绍完产品本身的规格能力之后,最后回到这张图上来。GN4 M40两卡和GN5 P100的8卡的能力都是够用的,最重要取决于本身计算力的需求。在多媒体条件里面,用的比较多的是视频编解码和渲染,根据大家业务的要求都可以选择。EGS会负责完成底下从硬件到虚拟化到操作系统实例这一层,然后在这之上阿里云会提供容器的服务,再往上我们会做一些扩展深度学习的框架能力,这些可以开源直接部署在我们容器里面的服务,阿里云也在做一些相应的框架,包括人脸识别等等。
阿里云的整个模型训练和线上的推理都是在弹性GPU之上,那么当你从训练的时候来看,过去是CPU后来用自建的GPU,主要遇到问题还是弹性、资源问题等等,现在都是放在我们共有云的GPU服务之上,包括对外提供服务。因为对外提供服务一定是在共有云之上,他们开发模型训练包括整理线上的服务都在这个上面,这是深度学习场景;第二个场景就是阿里云还有自己的视频编解码服务,这里面也用到了弹性GPU。
我们作为异购计算重要组成部分,我们可以使得业务使用方更加关注本身的模型和算法,还有你提供业务本身逻辑之上,而底下的东西完全由我们来完成。我们提供这样的服务之中还会有别的考量,包括现在基于GPU做一些性能方面的优化,包括可靠性、网络能力的提升。
本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。