软硬结合,GPU/FPGA云服务器为什么我们做的更好(二)
请容我感慨一下
这篇文章写到一半,我突然感慨万千,所以在文章开头插入了这段话。现在回想起来,我还是很幸运的,有幸能够在这样一个优秀的团队里工作。我们华为云有强大的硬件后援团,还有牛X满满的顶级虚拟化、OS专家。我们在一起协同工作,共同挑战一个个巅峰。我要感谢晓MM、玉MM、丽MM、松哥、浩哥、国哥、宝哥、杰哥、宪哥、正哥、强哥、达哥、毅哥、旭哥等等等等。好了,收一下,他们的事迹容我以后述说。
正片开始
首先大家看下面这个图,这是我们异构云服务器的一个非常简单的架构图,可能都称不上架构图,算个示意图吧。我在每一层讲一个小例子,看看我们是怎么结合业务的需求做到的。
可编排的拓扑结构
立项初期,我看到这个能力,是非常兴奋的。在我眼中,硬件一般都是非常死板的,是什么就是什么,没想到还可以这么灵活。看下面这个图,我们的Atlas服务器的PCI拓扑结构是可以按需调整的。那这个能力对用户来讲有什么好处呢。大家回忆一下自己的业务,是不是不同的业务对于设备的拓扑结构要求不同呢。或者请看我上篇文章里面的那个Amber性能的描述,在需要卡之间大量传输数据的场景下,下图左边这个拓扑显然效率更高。如果需要和cpu频繁交互,那么下图右边这个拓扑更合适一些。实际情况也是这样的,我们的一些AI训练客户选择了左边的拓扑,分子动力学的客户选择了右边的拓扑。当然也不是绝对这样,还是要看业务的需求。
同一套服务器应对不同的业务,还有一个隐形的优势,就是性价比,或者说成本。像上面这种不同的硬件结构,还有一种思路就是出不同的物理服务器。那么,设计、开发、生产、运维等等环节都要重复花钱,这些花出去的钱必然要从客户的身上再赚回来。所以帮客户省钱,也是我们的一个小优点吧。
一点点个人理解
要搞好IaaS的设计,不懂业务是不行的。我的意思是要懂,还要有方向地懂。要多理解“城乡结合部”的、容易被忽略的一些点。这个“城乡结合部”应该怎么理解呢。比如说AI吧,我的目标并不是搞定各种各样的算法,而是给我们的客户提供适合的云服务器。所以我要做的应该是分析业务对硬件的需求,提供没有木桶效应的云服务器。“软硬结合”中的这个结合部分就是要重点关注的,就是刚说的“城乡结合部”:)客户只需要聚焦于自己的业务,至于在云上怎么样用的更好就交给我们吧。
若干年前,我参与过一个大数据的性能攻关,对外表现是存储的带宽压力上不去。在这个场景普遍的理解:数据都是大块顺序IO,应该很容易把磁盘的带宽压满。但实际上,软件负责落盘的模块是个多线程的,落盘的大小是1MB,而且线程之间没有关联关系,这本质上是典型的随机IO。1MB的随机IO实际上很难把传统的HDD压满。类似这样对下层系统隐含的需求,就是我说的“城乡结合部”,把这些隐含的需求挖掘出来是非常重要的。
高密度PCI服务器
上面讲了那么多和服务器没用的东西,我是想说,我们每一个设计都是从客户业务需求出发的,并不是为了牛X而做牛X。我上篇文章提到,客户的软件在我们的环境上跑出了两倍的性能。那除了单精度计算能力,还能有啥呢。在设计GPU云服务器之前,我阅读了一些HPC相关的论文,发现在仿真的过程中,一些算法会生成大量的临时数据。那这个量有多大呢,我们这个客户在业务运行的过程中,单个GPU运算时的磁盘持续写带宽达到了1.6GB/s,注意是GB不是Gb,这个带宽基本上就是整个NVME SSD的能力了。而一台ECS最大可以配备4张GPU,可以算算业务起来以后,整个系统的持续存储带宽能达到多少。所以我们针对这个场景,我们给ECS的每个GPU配备了一张NVME SSD。这种1比1的配置在我们上线时,只有华为云能够提供。
一台服务器上同时插多张P100与NVME SSD,一张P100的满载功率是300瓦,一张NVME SSD的满载功率是22瓦,这对服务器的散热设计就提出了很高的要求。总不能跑着跑着因为过热而降频或者宕机吧,那不是会影响我们客户的业务么。再加上上面提到的拓扑编排,可想我们的硬件设计还是很复杂的。
我的理念
不堆硬件,提供无短板的异构计算服务。
我们的GPU/FPGA云服务器在公测期间的种种表现也支撑了我这个观点的正确性,异构计算领域不是单单提供一块GPU/FPGA这么简单,提供“没有短板效应的系统”的重要性远比“提供最高端的GPU/FPGA”要高。客户需要的是一个均衡的、综合性能好的系统,而不是某些噱头。
综上,就解释了,我们虽然和友商用了同样的GPU或FPGA芯片,但在一些领域的性能表现却能遥遥领先。
下集预告:硬件级隔离
- 点赞
- 收藏
- 关注作者
评论(0)