本文来自微信公众号:歪睿老哥(ID:verilog-2001),作者:歪睿老哥,原文标题:《云端芯片之战-小乌云还是大风暴》,题图来自:unsplash
1900年,伦敦阿尔伯马尔街皇家研究所,德高望重的开尔文勋爵在这里进行了一场演讲。这篇演讲名为《在热和光动力理论上空的19世纪的乌云》。开尔文勋爵概括说“十九世纪已将物理学大厦全部建成,今后物理学家的任务只是修饰和完善这座大厦”,但是,开尔文勋爵指出“虽然大厦已经建成,但是晴朗的天空还存在两朵小小的乌云”,这就是开尔文所预言的“两朵乌云”。
但他没想到的是,就是晴朗天空上两朵小小的乌云,不断升级演化成巨大的风暴。正是这两朵乌云,打破了经典物理的大厦,建立了近代物理学的两大支柱:量子力学和相对论。
当前,构建在x86基础上的云计算帝国,基石稳固,四海升平。但是天空也有两朵小乌云。而这两朵“小乌云”是对云计算的未来架构的疾风骤雨的改变,还是波澜不惊的小插曲,谁也不能确定。但确定的是,对于想要在x86的云计算帝国领域图谋一席之地的芯片行业从业者来说,这两朵乌云可能是难得的机会。
一、云计算的梦想
2006年8月 San Jose,Search Engine Strategies(SES)搜索引擎大会在这里举行,昂贵的门票并没有阻挡参会者的热情,一场又一场的演讲展示着这些行业大神们的智慧和对未来方向的思索,其中谷歌的创始人施密特做了主题演讲,就在这场演讲中,他提出了云计算(Cloud Computing)的概念,云计算提出,让人们像使用水、电、气一样来使用计算的服务。
现在人们可能已经习以为常地使用云计算的服务,但在当时,这个概念一经提出,就引起了业界的轩然大波。不少人都认为在是一种馊主意。还有很多人认为,这是一种“旧瓶装新酒”想法,这不过是IBM的大型机的新应用而已。信息社会已经从大型机到PC(个人电脑)时代,再从PC到云计算时代,让人有一种技术轮回的错觉。如果当时有自媒体,估计会这样写:《云计算,是架构的扭曲还是技术的沦丧》。
如果把云计算看作一座大厦,那么这个大厦建筑在什么样的计算架构之下,不同厂家肯定看法各异。但在当时,RISC的服务器特别是IBM的POWER和SUN的SPARC,都野心勃勃,想要在云计算的时代大显身手。2006年召开的“ISSCC”国际固态电路会议上,IBM宣读关于Power6的论文,实现5GHz的超高频率,即使今天来看,这个指标也是领先整个时代的。
同样是在2006年,Sun在发布UltraSPARC的前两款产品是Sunfire T1000与SunfireT2000,这些产品的问世,对于刚刚开始构建的云计算大厦来说,预示着一个光明的前景和坚实的基础。而Intel也在同一年进入65纳米制造工艺,并推出了新一代至强处理器。云计算带来了新的一轮基础架构建设热潮,对对战的双方x86和RISC,都预示着巨大的市场机遇。
二、权力的游戏
对于传统银行、电信、保险等行业,他们要构建自己的数据中心(企业云),作为服务器需求方,要支撑一个对服务器架构、操作系统、数据库有丰富开发经验的团队,来部署自己的业务,这个有点不太现实。因此,这些行业用户都是菜单式接收服务器提供商(如IBM等)的硬件及软件服务,服务器厂商提供这些硬件及软件服务,并以此来收费,这个逻辑是非常清晰的。
但是作为新一代的规则定义者:谷歌,亚马逊,以及后起之秀阿里巴巴等,他们对开放的架构、成本、可维护性有着自己的执着。云服务提供厂商本身就是一个技术导向型的团队,这个公有云厂商对应用需求、体系架构、软件技术三种武功能力,都修炼精纯。云服务商既是服务器的需求者,又是技术提供者,是双层身份。他们需要根据自身需求选择最适合的软件和硬件设施,需要根据业务需求对数据进行迁移,封闭式的架构天生对他们来说,难以接受。
举例来说:原来的服务器厂商好比一个餐厅,这种餐厅,只能提供菜单点餐,而以前银行(企业云)这种有钱顾客根据他们提供的菜单点餐就可以了。现在有一家外卖公司(公有云计算提供商),可以为那些预算不是很充足的客户提供就餐服务,而外卖公司(公有云计算提供商)不仅对菜单上的菜品不是很满意,这种餐厅(服务器厂商的软硬件)定制“红烧排骨”,不一定满足外卖客户的要求,云厂商更希望更细粒度的“排骨盖饭”,如果服务器厂商(餐厅)没有办法定制,那么这些外卖公司(云厂商)还具备自己炒菜的能力(想象一下,外卖小哥去炒菜的场景),需要根据客户的需求,来打包不同的菜品组合,而不是仅仅是一个外卖员,还是一个厨师,后面还进化成“自研猪肉”养殖者。
公有云厂的主导权要放在自己手上,这个就把封闭架构的服务器排除了,这导致了许多曾经RISC的忠实用户,在考虑云计算时,开始考虑x86,而不是传统的如IBM POWER这样的RISC架构处理器。X86服务器更加廉价、更开放、更加标准化、更简单易用,x86所具备的这些优点让非关键业务用户更加乐于接受。而随着x86处理器在架构、制程工艺、核心数量等方面不断的提升,x86性能直追RISC服务器。
2013年5月17日,阿里集团最后一台IBM小机在支付宝下线,揭示云厂“去IOE”的迫切需求。去“IOE”,就是去IBM、Oracle、EMC为代表的小型机、集中式数据库和高端存储所组成的传统IT基础架构,转而以商业化的x86服务器、开源数据库和分布式存储组成基础设施架构。这种基础架构,更加灵活、易于扩展、成本更有优势。而x86是这场去IOE行动中最大的赢家。
时来天地皆同力,当前的云计算的大厦,90%的以上的服务器都是Intel的x86,可以说今天的云计算的大厦是构建整个Intel的x86的基石上的。一方面,对于x86服务器厂商来说,云厂的要求更加严格,但是由于其数量的优势,采购成本也分摊得很低。另一方面,x86的CPU实际上占据了硬性支出很大的一部分成本。以至于说江湖上抱怨说,整个x86服务器行业,都是在给Intel打工。
x86在云计算帝国一统天下,成为了这个帝国的王,几个妄图颠覆的诸侯(power,ARM)也偏安一隅,更多的RISC的架构早已湮没在历史中了。IBM的power处理器只是在传统的电信、金融、证券、保险、电力方面,才有一席之地。而ARM的服务器还不成气候,几家在做ARM版本服务的公司,不是业务被砍(高通),就是勉力维持(marvel)。x86环顾四周,志得意满,x86有这样底气,那些运行在x86上的一代又一代的云计算的开源云操作系统软件、数据库、存储,成为了x86云计算帝国的护城河。
就在x86在云计算帝国封王,地位看似牢不可摧的时候,云计算的天空也有着两朵“小乌云”,这两朵乌云就是AI芯片和DPU,这两朵小乌云是否能对云计算的x86的地位发起挑战,是后云计算时代的一大看点。
三、AI的盛宴
人工智能算法的兴起,让人们认识到,CPU这种架构,对于处理AI特定应用,完全没有优势。CPU的计算取值,译码,执行,访存,写回操作,不论如何开发指令级并行,在AI的这种应用上,大部分都花费在存储器访问上(IO),真正用于计算的部分,效率不足20%。
如果仅仅是计算的卸载(offloading),CPU已经司空见惯,对x86CPU来说,不过是细分市场的有益补充,是异构计算的另一种叫法,例如用FPGA做的各种加速,微软的bing上用于搜索加速的FPGA就是这种模式。但是都没有形成一种潮流,也不值得CPU如此担心,“廉颇老矣,尚能饭否”。
如果说以前还是 power、sparc、mpis、ARM、x86,这些都是CPU之间的内战,现在发现对于AI这种应用来说,所有这些CPU的处理结构已经不适用了,在AI算法这个对手面前,CPU架构几近“团灭”。
但是AI却不同,其一诞生,其就有一种不同凡响的气质影响着整个IT领域,所有玩家都为之着迷。一种架构的流行,后面必然有一类应用的流行,ARM成功,背后是整个移动计算领域的兴起,各种移动终端如手机以及IoT的蓬勃发展。x86在云计算的成功,是开源软件、开放架构的成功。在AI的时代,因为不能适应这种计算框架,可能有被边缘化的可能。
而如果假设AI的应用是未来云端的主流应用之一,万物可AI设想成立,那么CPU错过这个巨大的应用的代价是什么?结果就是云端CPU的地位的下降。对于机器学习等场景,CPU(中央处理器)从核心应用降低到一个普通计算节点。从云计算的帝国的国王被降级到一个领主。
作为人工智能AI的计算卸载、训练、推理所需要的计算资源,远超CPU所能达到的能力。在通用计算节点之外,另一类的计算节点诞生了,即AI的计算节点,这类计算节点在云端的业务取决于整个业务量的多少。AI云、智慧云,这种概念不断推出,如果这些落地成真,那么x86在这些云的内部,其作用就并不突出。
而AI的趋势如此之强,GPU就是一个例子,GPU默认需要支持AI加速(SM流处理器内部也要有tensor core)。而GPU不久前还只是图像处理器而已。除此之外,还有各种XPU的,其核心的应用也是AI的卸载。与云计算开始时,RISC和x86的对决一样,又是一个各种架构对决的江湖,只不过这次CPU会甘心作为观众来参加这些AI芯片架构(XPU)的对决吗?而x86并不甘心,也在通过AVX指令集来补强这方面的应用,但是和专用AI芯片或者GPU相比,这些能力是否能在AI的时代展示王者的底蕴,还有待市场的检验。
四、DPU的风暴
如果说AI计算的卸载是一个无主领域的拓荒,那么IO的卸载就更像另一个版本的王子复仇记。
在十年前,网络处理器(NP)是一类非常重要的处理器,主要用于包处理、协议处理加速,用于各种网关、防火墙、UTM等设备上,多采用多核NOC架构,一开始是MIPS,后面转向ARM。一些公司类似cavium,tilera等等都是其中佼佼者。因为Intel的x86架构处理网络数据包的低效,给了这些网络处理器很多的机会,得到了蓬勃的发展。
但是,后来Intel提出了DPDK技术,DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包一种技术,由于绕过了Linux内核协议栈对数据包处理过程,因此极大提升了包转发的速率。原来需要专用的网络处理器NP来实现的网关类设备,现在x86就满足性能要求了,顺理成章地占领了这个领域,将网络处理器这类产品扫入了历史。而原来的网络处理器公司也被收购。(tilera被EZchip收购,cavium被marvel收购。)
本来到了这里,故事就结束了,但是在云计算领域,x86服务器,虚拟机之间网络交换,类似OVS等应用,对于处理器的开销非常大,占据了CPU很大部分的负载,通过智能网卡来offload OVS,实现网络功能的卸载就成了一种顺利成章的应用,这样可以降低x86服务器的负载,减少x86的数量,降低TCO(总拥有成本)。
而目前智能网卡,集成了众核的ARM核或者其他risc核,用于offload的x86的功能,这个就是网络处理器NP借尸还魂,换了一种方式融合进了网卡。NP老兵不死,只是慢慢融合。
只是网络功能的offload也就罢了,数据中心应用的一种新模式DPU出横空出世了,下图中DPU的网络中,DPU俨然成了整个数据中心的核心,通过DPU网络实现 X86的计算节点,GPU/ML的AI的计算节点,以及存储节点,实现了整个云计算中心的业务。
DPU内部融合了RDMA、网络功能、存储功能、安全功能、虚拟化功能等,成为了构建未来云中心的核心部件。这个理想很丰满,现实很骨感,DPU能不能像预期的一样,超出传统智能网卡offload的范畴,成为数据中心的构建的支柱。这个想法和脑洞,令人赞叹,并且又非常有道理,不论是架构还是思想上。但是DPU是不是云计算数据中心下一个诸侯,是不由DPU厂家说了算的,而是云计算厂家说了算的。
那么云计算厂家是怎么来规划的,阿里云的裸金属云的建设中,提出了一种裸金属HM-hive,直接把bm-hypervisor放在了一个网卡形态的设备上,在这种形态下,所有的计算资源都是计算板的一部分,这个可以是x86的E5、core I7、AMD,甚至可以是ARM。也就是说,在这种结构下,x86的地位只是一个计算节点之一。
bm hypervisor通过DPDK的vswitch和SPDK的云存储,替代了所有的计算板所有的IO需求,BMHive支持VGA设备,供用户连接到bm guest的控制台,BM-Hive的架构不仅允许它无缝地集成到现有的云基础设施中,而且使计算板的设计高度灵活,唯一的硬要求是它支持virtio接口。
DPU和bm hypervisor的思想不同,解决问题也不同,前者是卸载,后者是裸金属云的管理。但是其核心思想是将计算节点抽象出来,更专用,更灵活的参与到整个云计算的服务中,这一点是共通的。只不过,未来是不是以DPU还是智能网卡的形式,或者其他的形式bm hypervisor,或者更加融合的形态来呈现这一趋势,这个就不得而知了。
五、列王的纷争
如果Nvidia来描述未来云计算中心,那么肯定是以GPU为节点,以DPU为传输通道,直接GPU direct,所有的其他节点都是为这个服务的,CPU只不过是一个控制节点而已,用AMD或者ARM,也没有太大的区别,否则为什么Nvidia动了收购ARM的心思?
如果Intel来定义未来的数据中心,那么所有节点,都是x86为核心,其他AI专用芯片,不过是ASSP,通过AVX的扩展指令,也可以支持AI的一些应用,以后AI的加速作为Intel QAT特性,集成在CPU中也未为可知,这就是CPU的天下共主,其他不过小喽啰而已。
如果云厂商来定义未来数据中心,那么不论Intel的CPU,Nvidia的GPU,或者其他XPU,都是一个计算节点而已。只不过有的负责通用计算,有的负责图形图像处理以及机器学习算法,这些不过是一个开放、可替换、可伸缩、弹性的的计算节点,只需要按需来使用的资源罢了。什么“王”,什么“诸侯”,都不过是云计算的工具人罢了。
云厂不乐意给Intel打工,也不乐意被Nvidia绑架,他们技术雄厚,需求强烈,市场份额强大到任何一个芯片厂家都不能忽视,未来如果这些公有云厂商占据了这个星球有一席之地的算力,他们就可能定义自己的CPU、GPU、DPU、XPU,甚至融合的SOC,只要符合云厂的需求。云厂可能是下一个计算体系的定义者和实践者。
除此之外,还有一大批芯片厂家,希望参与到了这下一代云计算帝国的“列王的纷争”中来,寄希望这个云计算帝国来分一杯羹,这两朵乌云中,是否孕育着新的机会,涌现出更多的玩家,值得期待。
参考文献:
1. The Fungible DPU™:A New Category of Microprocessor for theData-Centric Era
2. High-density Multi-tenant Bare-metalCloud
3. NVIDIA A100 GPU:PERFORMANCE & INNOVATIONFOR GPU COMPUTING
本文来自微信公众号:歪睿老哥(ID:verilog-2001),作者:歪睿老哥