关注老石谈芯,一起探究芯片本质
6月13日,阿里云召开了阿里云峰会,其中最值得关注的一点,就是阿里云公布了名叫CIPU的自研芯片。
CIPU的全名,叫云基础设施处理器 – Cloud Infrastructure Processing Unit。
这个名字可能乍听起来非常的抽象,但是它的核心思想其实是整个行业一直在讨论和布局的方向,那就是对云计算的基础设施进行专门的处理和加速。除了阿里云之外,很多巨头芯片公司都在布局这个领域,比如英特尔的IPU,英伟达的DPU,还有再早一些的智能网卡。
不管叫什么名字,如果我们透过现象看到本质,就会看到它们出现并兴起的原因和CPU、GPU一样,都是为了满足一个重要行业的需求,只不过这个需求来自于云计算和数据中心领域。
云计算和数据中心是未来几十年的大蓝海,它会是人工智能之后的下一个技术爆发的大周期和大趋势。事实上,我们早就开始享受云计算带给我们的福利了,我们用手机点外卖,在线看视频和直播,用手机直接购物下单,其实背后都是靠云计算来支撑的。有太多普通人和商家都通过云计算的进步找到了自己的机会。
为了理解这个新的CIPU是怎么来的,我们就得从云计算技术的发展开始说起。
源起:云计算
云计算就是把计算放在云上,云指的就是通过互联网连起来的各种复杂的硬件和软件。如果你觉得这个概念有点抽象,我们来举几个例子,说说这个云是怎么出来的。
个人电脑刚刚出现的时候就是一台机器,上面可以安装一些软件,但只能自己一个人用。网络出现之后,很多人的电脑可以连接起来,大家就可以互相传输数据、相互通信了。但这个时候处理数据和通信的还是每个人自己的电脑。
后来CPU处理能力越来越强,就出现了比个人电脑更强大的计算机、也就是服务器。网络技术也在不断发展,数据传输的速度变得越来越快了,这样人们就可以用服务器来处理数据和通信这些任务,然后直接把结果通过网络返回来就好了。
随着数据和应用不断增加,需要的服务器数量也在不断增加,这样就出现了一个个的数据中心。其实每个数据中心就像一个大机房,里都有成百上千甚至上万台服务器,他们通过网络连在一起,这就形成了一个小云。而很多在全国甚至全球不同地方的数据中心也通过高速网络连在一起,就成了一朵大云。
这样我们不管是用手机下单外卖,还是看视频直播,都需要通过这一朵朵云来进行数据的处理,并且把下单结果、外卖的位置、或者视频和直播的画面,通过网络传输给我们。
云计算和我们要说的CIPU这个新芯片有什么关系呢?别忘了我们前面说的最本质的逻辑,那就是需求。当需求发生变化的时候,就会出现新的技术。
在过去十多年里,云计算的发展经历了两个主要的阶段。
第一个阶段的重点,就是分布式技术。它和集中式技术相对应,把原本在一个服务器或者一个机房里的计算任务,打散、并且分布到多个服务器和多个数据中心里完成。这样做有很多好处,最直观的就是提升了稳定性。
它相当于把鸡蛋放在多个篮子里,就算一个服务器或者数据中心突然挂了,也不会影响整个分布式系统的正常运行。它的另外一个好处就是提高了性能,因为可以把一个大的任务分解成很多可以同时运行的小任务,让多个计算机去并行处理。
但人们发现,分布式系统还不够优化。因为一个节点往往要处理计算网络存储等等多种任务,如果来回切换的话非常麻烦,对性能影响也很大。所以云计算发展的第二个阶段,就是出现了资源池化技术。
这也是一个非常抽象的概念,但其实很好理解。就像一个一个池塘,这个池塘的水是专门用来浇庄稼的,另外一个池塘的水是专门用来养鱼的。只不过在云计算里,资源池化就是在分布式计算的基础上,构建了很多用来做计算、存储的池塘,也叫做资源池。每个资源池其实就是一大堆服务器,只不过这些服务器是专门用来做计算或者存储的。
通过这种计算存储分离的架构,可以高效的对整个云端的资源做统一的调度安排,而不用再一个服务器一个服务器的控制了,这就进一步提高了云计算的可靠性和灵活性。
这两个阶段有着共同的特点,那就是它们都通过软件定义的方法,把计算能力(也叫做算力)变成一种公共的计算资源。
很多人都认为,算力会像电力一样,成为未来必不可少的资源。我们国家最近在建设的东数西算,和之前的南水北调、西电东送一样,就是把算力提升到了资源的战略高度。
那么现在,需求的变化就来了。在大数据时代,我们每次点单、每次看视频都会产生茫茫多的数据。这种数据密集型的计算越来越多,就对云计算的基础设施造成了巨大压力。归根到底,是因为现在的云基础设施都是以CPU为核心的,而现代CPU已经很难满足这个需求了。
困局:当CPU不再是王
首先要明确一点,并不是说CPU不行了,弱爆了。CPU的性能很高,而且仍然是所有芯片中最重要的那个,或许没有之一,所以传统的计算机、包括服务器和数据中心,它们的软硬件架构都是以CPU为中心来设计的。
但是,面对前面提到的大数据和云计算变革所产生的新的需求的时候,这种以CPU为中心的架构就有点力不从心了。这里面有三个主要的原因:
第一,CPU擅长的领域是指令集处理,并不擅长并行计算和网络控制。这也是为什么和AI相关的计算,需要用GPU、和网络传输相关的应用需要网卡芯片的原因。
第二,大数据势必伴随着大量的数据搬运和迁移,带来的是高带宽的需求,而CPU没办法提供高带宽。
第三,现在的云计算的规模都太大了,动辄几十万上百万台服务器的规模,这就给整个系统的管理增加了极高的复杂度。而CPU作为一种通用芯片,很难兼顾复杂度、低延时和高性能。
事实上,很多芯片公司都意识到了这个问题,并且给出了他们的解决方案。比如英特尔就提出了IPU、也就是基础设施处理器,而英伟达也推出了DPU、也就是数据处理器。这两种芯片的主要意义,都是为了更好的满足现在云计算的新需求,提升数据处理的吞吐量、降低延时,并且从硬件上直接实现对虚拟化和云化的支持。这些都是CPU或者GPU做不到的。
不管是IPU、DPU,他们的本质都是类似的,都是对以CPU为核心的云计算架构的补充和扩展。它们能把CPU不擅长的工作接下来,转移到自己身上更高效的完成,这样就减轻了CPU的压力。
不过,这些芯片仍然没有改变前面说的根本性问题。只要仍然以CPU为核心,那些复杂度、带宽、低效的问题就依然存在。
所以,需要改变看待问题的视角。
前面的这些方案都是从芯片和硬件的视角去看问题的,但是云计算的变革,其实是由软件定义驱动的。之前我们也说过,没有软件,芯片就是昂贵的沙子。前不久芯片大厂博通刚刚花610亿美元收购了虚拟化软件公司VMware,也很好的证明了软件对于芯片和云计算领域的重要性。
或许解决前面这些问题的根本方法,是从软件入手,重新思考未来云数据中心的体系架构。
诞生:CIPU
从芯片本身的功能来看,阿里云的云基础设施处理器CIPU可能和DPU或者IPU没有本质的区别,也就是对网络、计算、存储三大资源的卸载、加速和隔离。但它最大的特点,就是它采用了一种完全不同的数据中心体系结构。它把原本在C位的CPU拿到旁边,而把CIPU放在中间,并且直接连接了其他所有的计算存储和网络资源。所以即便是类似的功能,在不同的架构里,发挥的作用和带来的影响就完全不同了。
在这种结构里,CPU就和GPU一样,成了一个普通的计算资源。它不用再去承担那些生命不能承受之轻,也不用去处理那些它自己不擅长的事情,就让CPU的算力没有额外的损耗。所有计算资源的分配,都通过CIPU进行控制和调度,也可以快速接入更多不同类型的神龙服务器,比如GPU甚至是包含其他芯片类型的异构服务器。这样就极大丰富了整个计算资源的种类,同时提升了性能。
根据阿里云的数据,使用CIPU之后,单容器虚拟化消耗减少50%,虚拟化容器启动速度快3.5倍。不管是主流的通用计算场景,还是大数据和AI场景,都有很高的性能提升。
对于存储资源来说,一方面把存储和计算进行了存算分离,能在芯片层面直接支持存储设备的硬件虚拟化。不需要CPU的介入,存储设备的性能也能大幅提升。CIPU还支持多个节点之间通过NVMe协议共享云盘块存储,更好的实现存储资源的池化。
对于同样重要的网络资源,CIPU可以实现硬件虚拟化、网络转发加速,把基础带宽提升到200Gbps,VPC的每秒数据包转发性能提升到4000万,网络延时也从22us降低到16us。
除了芯片硬件本身之外,软件定义的能力或许是更重要的。为了应对这么多复杂的功能和场景,势必需要更加复杂的软件和灵活的编程方法。对于CIPU来说,它就是为了阿里云的飞天云操作系统而设计的专用处理器。正是因为有飞天云操作系统这个灵魂,以及相应的分布式平台,才能实现云资源的灵活管理、调度和编排。
展望:第三颗大芯片
CIPU是否是CPU和GPU之后的第三颗大芯片?这个时候下结论还为时过早。但几乎可以100%确定的,是第三颗大芯片一定会出现在云计算领域。CIPU的出现其实并不是偶然,因为大数据和云计算的技术变革势必会推动新的芯片形态产生。
但是,要做好这类芯片也并没有那么容易。除了芯片本身的设计能力之外,更重要的是对云数据中心和云计算业务的深刻理解,同时拥有大规模的云基础设施,以及拥有自己云操作系统的玩家,才有可能把硬件、软件、操作系统、以及业务落地这几个同样重要、且缺一不可的环节结合在一起,最终做出一个芯片。
(注:本文仅代表作者个人观点,与任职单位无关。)
更多芯片技术解读和资料分享,并与老石一对一交流,欢迎加入知识星球:“老石谈芯-进阶版”,一个关乎技术与观点的互动社区。
继续阅读
阅读原文