软硬结合,GPU/FPGA云服务器为什么我们做的更好

举报
皮皮 发表于 2018/07/17 15:53:30 2018/07/17
【摘要】 随着对计算能力越来越高的需求,单纯的CPU计算已经远远不能满足人类的渴望,于是出现了各种各样的计算辅助类的设备,甚至这些设备在计算业务中已经超过CPU而占据了主要的位置。比如当下最流行的AI,GPU和AI芯片已经逐步取代了CPU的位置;还有FPGA,在基因测序、视频转码等领域都发挥出越来越重要的作用。近几年的一大趋势,就是把原本在CPU上执行的业务,移到更专业的计算设备上去,从而极大...

    随着对计算能力越来越高的需求,单纯的CPU计算已经远远不能满足人类的渴望,于是出现了各种各样的计算辅助类的设备,甚至这些设备在计算业务中已经超过CPU而占据了主要的位置。比如当下最流行的AI,GPU和AI芯片已经逐步取代了CPU的位置;还有FPGA,在基因测序、视频转码等领域都发挥出越来越重要的作用。近几年的一大趋势,就是把原本在CPU上执行的业务,移到更专业的计算设备上去,从而极大地提升业务性能。在公有云上,也出现了很多硬件卸载技术,由硬件实现虚拟化的功能,从而极大地提升虚拟机的运行性能。


    于是,“软硬结合”这个词又火了起来。“顾名思义”,软硬结合就是要软件和硬件协同工作,共同完成计算任务。说起来容易,做出来难。“软硬结合”实际上对厂商提出了极高的要求。要有硬件的强大设计能力,也要有软件的强大设计能力,还要懂上层业务,软硬件团队协同工作,“珠联璧合”才能发挥出最大的能力。那真正能从硬件、OS、虚拟化、软件到上层业务来进行研发的厂商又有几家。


    从16年起,我主要负责了华为云异构计算实例的设计开发与商用上线。我来从我的视角带大家看看,我们是怎么样做到更好的。


不仅仅有GPU

    这个要说说我负责的P系列实例了,就以P系列为例吧。P实例当前有三款,P1(P100)、P2(V100)、Pi1(P4)括弧中是使用的GPU型号,P1/P2主要用于AI训练和HPC,Pi1专门为AI推理打造。先打个广告:)对这些业务感兴趣的同学,欢迎使用哦。


    经常有人问我,反正各家公有云用的GPU都是一样的,能力上肯定没什么差别呀,华为云的GPU实例又有什么竞争力呢?这么想就错了,虽然叫GPU实例,但对于我来讲,要给客户提供一台完美的GPU虚拟机,GPU的重要性只占4分之1。与之搭配的物理服务器、虚拟化环境以及资源调度同样重要。任何一方面没有做到极致,都会影响最终的业务性能。


    先不说技术,咱们先来看看好与不好的两个效果。我在网上找了一下基于GPU direct技术的真实业务数据。如下图,是Amber在4张P100环境中运行时,GPU direct(P2P)技术对于性能的影响,可以看到GPU direct技术使Amber的性能提升了1.5倍多。GPU direct是NVIDIA推出的技术,简单讲就是不需要CPU参与,多个GPU之间能够直接交换数据。CPU由于其工作职责的原因,在整个系统中多多少少会成为瓶颈,尤其在重载型的IO或计算系统中。GPU direct技术消除了这个瓶颈。对于有类似场景的业务,比如AI训练,都会对性能有非常明显的提升。(以上这些主要是想讲讲GPU direct技术的重要性)

image.png

    以上讲的的确都是GPU自身的能力,貌似和云没有几毛钱关系啊。大家别急,再来看看下面这张图,看出什么来了么?下图显示了我实测的三组数据,是三种情况下的GPU之间的数据传输带宽。第一个深蓝色的框框,是GPU direct关闭时的传输带宽;第二个浅蓝色的框框是某商在GPU direct生效时的传输带宽;第三个红框框是华为云的GPU direct传输带宽。从这开始,就有差别了。对照上面的图一起来看,能不能在云上把这个场景的业务能力全部发挥出来,这就一目了然了。

image.png

    为什么会有这么大的差别呢?公有云的核心技术之一就是虚拟化。搞过虚拟化或被虚拟化搞过的人都明白(原谅我皮一下),硬件经过虚拟化以后,多多少少都会有一些性能损失,越高端的硬件虚拟化后的性能损失越严重。比如我手上能跑到70万IOPS的NVME SSD,在qemu前后端最高只能跑到25万,而且需要占用十几个后端CPU超线程,这个就太痛苦了。那我们是怎么样做到的呢,原谅我先卖个关子,这篇blog主要讲效果,原理部分我以后再说。


出乎意料的好

    再讲个真实的客户案例,我们有一个客户,他们自己是用GeForce GTX 1080的GPU,随着业务大量增长,他们自己的计算规模已经远远不能满足业务的计算量需求。当时选择我们的P1实例进行POC测试。客户自己分析过他们自己的环境与华为云的P1实例,客户的业务主要是做单精度运算,软件都是自己开发的,所以客户根据1080与P100的单精度能力做了心理预期:华为云的P1实例与他们的自建集群性能持平。如下图,直观上看,1080的单精度能力的确是与P100几乎持平的。

image.png

    但我对于最终的测试结果却非常看好。在华为云上的最终性能提升了两倍,实际上在某些场景下性能能够提升三倍。客户在拿到测试数据以后,第一个说的单词是“amazing”。不可否认,P100虽然和1080是同时代的GPU,P100自身的架构还是优于1080的。但在这个场景下,不是仅仅GPU的能力发挥了效果。再次原谅我先卖个关子,这篇blog主要讲效果,原理部分我以后再说。


    这篇文章主要从两个小例子讲一下我们和别家不一样的效果。对原理感兴趣的同学,请关注我后面的文章。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。