>>返回主页
中国信通院郑立:可信云GPU云主机服务评估标准解读

2018-08-14 16:57

郑立.jpg

  大家下午好,首先非常欢迎大家参加高性能论坛,下面由我来给大家讲一下中国信通院关于GPU云主机服务评估标准的解读。

  首先给大家看四张图片,第一张是97年IBM的深蓝第一次在国际象棋上击败人类,当时深蓝相对来说还是比较简单的机器状态,只有32个微处理器,每秒可以计算2亿次的象棋步数。第二张AlphaGo相信大家印象比较深刻,在围棋上击败了人类,具体来说,击败樊辉的AlphaGo版本用了1202个CPU、176个GPU,那击败李世石的阿尔法狗的版本已经进化到了48个TPU,每天可以自我训练完成150万局博弈。这两个事情一般被认为是机器超越人类智力的里程碑。

  下面两张图打游戏的朋友可能会知道,左下这张是去年这个时候在OpenAI的机器人再国际邀请赛上和顶级dota2玩家DENDI影魔solo,这事机器人在传统项目上战胜人类之后第一次在电子竞技这个更为复杂的环境挑战人类。当时这个AI使用了6万个CPU,256块K80 GPU,每天训练相相当于人类300年游戏训练量,结局是DENDI被0:2无情碾压,没有任何悬念。

  最后一张图发生在十天之前,OPENAI在5V5的比赛中战胜了排名前99.5%的人类队伍,这个机器共用了128000个CPU和256个NVIDIA的P100 GPU进行训练,每天训练量相当于人类的900年游戏训练量。通过以上数据我们知道,当我们面对的问题越来越复杂,需要考虑的情况也越来越多,需要设计的算法也越来越复杂,这背后对算力的要求也越来越高,需要的算力成本也越来越大。

  海量的数据和复杂的算法也对算力提出了非常高的要求,促进了高性能计算的发展,现在是人工智能爆发的时代,人工智能在生活的各个方面都给我们带来了非常深刻的影响,数据和算法像两座大山一样促使着算力不断前进,成为人工智能背后的强力引擎。

  下面我们看一下CPU与GPU两者构造上的差异。CPU有少量的计算模块,有非常多的控制器,说明它比较擅长处理各种数据、逻辑判断、分支跳转、中断的逻辑操作。大块的缓存是为了保证CPU的性能,计算的时候直接从缓存里面拿出数据。而GPU有大量的计算模块,这个特点也说明了它处理数据的类型需要高度统一,能支持大规模、高并性的计算。不同的特点、不同的芯片特点决定了应用场景也不一样,所以CPU适应的场景更多在于逻辑控制、串行计算。而GPU更多的在计算密集型、高并行的算法里面发挥它的能力。从右图可以看到 CPU的性能已经遭遇了瓶颈,发展比较平缓,而GPU最近几年计算实力呈爆发式增长。将两者的特点结合组成一个异构计算,是支持当前复杂算法处理海量数据的必然趋势之一,这里加了一个“之一”,为什么是“之一”?因为当前CPU和GPU构成的异构计算是比较火热的,但是仍然有FPGA,TPU(ASIC)这样的异构方案。这三类方案有三分天下的趋势。另外GPU还有一个缺点,它的价格相对来说比较昂贵,个人想享受GPU的高性能计算花费的代价是很大的。

  基于以上原因,GPU云化发展的非常迅速,在中国信息通信研究院2018《云计算发展白皮书》里面,可以看到我国云计算的发展呈逐年递增的趋势,IDC发布的《中国AI基础设施市场规模和五年预测》这里面也提到GPU服务器在这两年发展也是非常的巨大。这样一个GPU+云计算的模式就会有下面三个特点:

  1、AI基础设施市场爆发,GPU市场需求量非常大。

  2、GPU云化可以大幅减少交付周期和使用成本,在云上购买GPU云主机的时候可以现买现用,直接登陆上可以使用,灵活的接入方式实现按需计费减少使用成本。

  3、降低了高性能计算的使用门槛。我们知道,在GPU上配置深度学习环境是一件非常痛苦的事情,如果是个新手以前没有接触过需要两三天甚至一周的时间搭配环境,但是现在云计算可以提供对应的镜像,预装了相应的架构驱动,大幅度降低了配置工作。在上半年举行的高性能云计算创新大赛里面,通过大赛里的数据得到GPU云主机能够帮助用户降低大概20%左右的支出。

  在云计算、大数据不断发展成熟,GPU云主机市场需求巨大的背景下,中国信通院主导的可信云体系新增了对GPU的评估,下面主要讲一下评估的方法和流程。

  GPU云服务评估的流程包含四个部分:1、材料审核、2、运维审查、3、基础测试、4、性能评估也是针对GPU做云主机性能的评估。前3个我的同事刚已经进行了详细的讲解,我主要讲解下性能评估这部分。

  评估的方法是选取了GPU云主机使用比较多的深度学习的场景,我们的算例是在不断更新的,更多的测试例也是可以通过高性能大赛公开征集,大家感兴趣的话可以参加下我们的大赛,提供你所认为能展示GPU云服务性能的测试例,比如科学计算、大型仿真、视频编解码方面等等的算例。

  具体的评估方法首先在测试的时候会统一配置搭建环境,统一配置包含GPU云主机的规格、GPU的型号数量CPU的型号数量、内存、大小、磁盘等,在GPU的配置上面也要求是一样的,比如GPU的系统、校验都要保持相同的状态,测试环境采取了当年流行的tensorflow的框架。在算法模型这一块主要选取了模型是AlexNet模型和ResNet-50模型,数据集采用的是cifar10和MNIST,指标是推理和训练的速度等。第三是测试流程,察看主机硬件信息,内存信息、CPU、GPU的相关信息,搭建测试环境准备模型和测试力,进行超过一百次的推理和训练来保证数据的可靠性可用性。然后使用AlexNet和ResNet进行训练,记录训练速度。最后做数据处理,测试数据求最大最小值、平均值、中位数、方差的处理,根据各项指标加权得到一个分数,会对GPU分为两个等级,基础级和增强级,这是根据加权之后的分数评定的。

  现在国内主流的大部分GPU云主机型号做了调研,通过调研发现,目前国内提供GPU服务器的厂商主流的型号主要是英伟达、特斯拉K、M、P、和V系列。K系列主要是K20、K40、K80是为数据计算提供了极强的性能。M系列包含M40、M60,主要是为了提升深度学习的训练速度,在训练速度的性能表现情况。P系列有P4、P40、P100三个系列,前两个用于深度学习的推理加速,P100它的计算能力比较强,也是现在比较主流的高端型号,它的适用领域有高性能计算、神经网络训练等等。V系列是去年英伟达推出的目前只有V100这样一款芯片,目前在国内上用的已经推出V100服务的厂商现在不是很多,通过我们测试发现这个V100性能确实非常强劲,可以说是当前最强显卡,计算能力非常非常强悍。

  下面是部分GPU主机性能测评结果的展示,通过这样一个结果展示讲一下对测试数据进行分析的规则。首先训练会进行两万步的迭代,每十步会取得一次他们的计算速度,对这两千个数据拿出最大最小、平均和中位数,最大、最小值可以描述GPU服务器性能的上下限,平均值可以表征服务器的平均性能,中位数更多的是描述了云主机的一般性能情况,方差描述云主机性能的稳定性。

  在测评中遇到了一些问题,包括环境问题、系统与稳定性、规格资源等,其中环境问题主要是下载源受限,系统问题遇到的内核编译问题,无程序运行时GPU满载的问题。规格资源上面比较有限。最后给一些实用的建议,能真正给使用者带来便利。系统编译问题一时很难解决,但是多提供支持主流机器学习环境的镜像还是比较简单的,提供配置好的镜像、提供配套的下载,这个是比较实用也能更好的服务使用者。

  目前我们通过GPU云主机增强级厂商共有如图八家厂商。后面的工作主要包括第十一批可信云的评估工作;FPGA服务器的标准撰写和研讨工作;第二届MAXP中国高性能云计算创新大赛等,欢迎感兴趣的朋友参与进来,谢谢大家!

0