6月13日,阿里云召開了阿里云峰會,其中最值得關(guān)注的一點(diǎn),就是阿里云公布了名叫CIPU的自研芯片。
CIPU的全名,叫云基礎(chǔ)設(shè)施處理器 – Cloud Infrastructure Processing Unit。
這個(gè)名字可能乍聽起來非常的抽象,但是它的核心思想其實(shí)是整個(gè)行業(yè)一直在討論和布局的方向,那就是對云計(jì)算的基礎(chǔ)設(shè)施進(jìn)行專門的處理和加速。除了阿里云之外,很多巨頭芯片公司都在布局這個(gè)領(lǐng)域,比如英特爾的IPU,英偉達(dá)的DPU,還有再早一些的智能網(wǎng)卡。
不管叫什么名字,如果我們透過現(xiàn)象看到本質(zhì),就會看到它們出現(xiàn)并興起的原因和CPU、GPU一樣,都是為了滿足一個(gè)重要行業(yè)的需求,只不過這個(gè)需求來自于云計(jì)算和數(shù)據(jù)中心領(lǐng)域。
云計(jì)算和數(shù)據(jù)中心是未來幾十年的大藍(lán)海,它會是人工智能之后的下一個(gè)技術(shù)爆發(fā)的大周期和大趨勢。事實(shí)上,我們早就開始享受云計(jì)算帶給我們的福利了,我們用手機(jī)點(diǎn)外賣,在線看視頻和直播,用手機(jī)直接購物下單,其實(shí)背后都是靠云計(jì)算來支撐的。有太多普通人和商家都通過云計(jì)算的進(jìn)步找到了自己的機(jī)會。
為了理解這個(gè)新的CIPU是怎么來的,我們就得從云計(jì)算技術(shù)的發(fā)展開始說起。
源起:云計(jì)算
云計(jì)算就是把計(jì)算放在云上,云指的就是通過互聯(lián)網(wǎng)連起來的各種復(fù)雜的硬件和軟件。如果你覺得這個(gè)概念有點(diǎn)抽象,我們來舉幾個(gè)例子,說說這個(gè)云是怎么出來的。
個(gè)人電腦剛剛出現(xiàn)的時(shí)候就是一臺機(jī)器,上面可以安裝一些軟件,但只能自己一個(gè)人用。網(wǎng)絡(luò)出現(xiàn)之后,很多人的電腦可以連接起來,大家就可以互相傳輸數(shù)據(jù)、相互通信了。但這個(gè)時(shí)候處理數(shù)據(jù)和通信的還是每個(gè)人自己的電腦。
后來CPU處理能力越來越強(qiáng),就出現(xiàn)了比個(gè)人電腦更強(qiáng)大的計(jì)算機(jī)、也就是服務(wù)器。網(wǎng)絡(luò)技術(shù)也在不斷發(fā)展,數(shù)據(jù)傳輸的速度變得越來越快了,這樣人們就可以用服務(wù)器來處理數(shù)據(jù)和通信這些任務(wù),然后直接把結(jié)果通過網(wǎng)絡(luò)返回來就好了。
隨著數(shù)據(jù)和應(yīng)用不斷增加,需要的服務(wù)器數(shù)量也在不斷增加,這樣就出現(xiàn)了一個(gè)個(gè)的數(shù)據(jù)中心。其實(shí)每個(gè)數(shù)據(jù)中心就像一個(gè)大機(jī)房,里都有成百上千甚至上萬臺服務(wù)器,他們通過網(wǎng)絡(luò)連在一起,這就形成了一個(gè)小云。而很多在全國甚至全球不同地方的數(shù)據(jù)中心也通過高速網(wǎng)絡(luò)連在一起,就成了一朵大云。
這樣我們不管是用手機(jī)下單外賣,還是看視頻直播,都需要通過這一朵朵云來進(jìn)行數(shù)據(jù)的處理,并且把下單結(jié)果、外賣的位置、或者視頻和直播的畫面,通過網(wǎng)絡(luò)傳輸給我們。
云計(jì)算和我們要說的CIPU這個(gè)新芯片有什么關(guān)系呢?別忘了我們前面說的最本質(zhì)的邏輯,那就是需求。當(dāng)需求發(fā)生變化的時(shí)候,就會出現(xiàn)新的技術(shù)。
在過去十多年里,云計(jì)算的發(fā)展經(jīng)歷了兩個(gè)主要的階段。
第一個(gè)階段的重點(diǎn),就是分布式技術(shù)。它和集中式技術(shù)相對應(yīng),把原本在一個(gè)服務(wù)器或者一個(gè)機(jī)房里的計(jì)算任務(wù),打散、并且分布到多個(gè)服務(wù)器和多個(gè)數(shù)據(jù)中心里完成。這樣做有很多好處,最直觀的就是提升了穩(wěn)定性。
它相當(dāng)于把雞蛋放在多個(gè)籃子里,就算一個(gè)服務(wù)器或者數(shù)據(jù)中心突然掛了,也不會影響整個(gè)分布式系統(tǒng)的正常運(yùn)行。它的另外一個(gè)好處就是提高了性能,因?yàn)榭梢园岩粋€(gè)大的任務(wù)分解成很多可以同時(shí)運(yùn)行的小任務(wù),讓多個(gè)計(jì)算機(jī)去并行處理。
但人們發(fā)現(xiàn),分布式系統(tǒng)還不夠優(yōu)化。因?yàn)橐粋€(gè)節(jié)點(diǎn)往往要處理計(jì)算網(wǎng)絡(luò)存儲等等多種任務(wù),如果來回切換的話非常麻煩,對性能影響也很大。所以云計(jì)算發(fā)展的第二個(gè)階段,就是出現(xiàn)了資源池化技術(shù)。
這也是一個(gè)非常抽象的概念,但其實(shí)很好理解。就像一個(gè)一個(gè)池塘,這個(gè)池塘的水是專門用來澆莊稼的,另外一個(gè)池塘的水是專門用來養(yǎng)魚的。只不過在云計(jì)算里,資源池化就是在分布式計(jì)算的基礎(chǔ)上,構(gòu)建了很多用來做計(jì)算、存儲的池塘,也叫做資源池。每個(gè)資源池其實(shí)就是一大堆服務(wù)器,只不過這些服務(wù)器是專門用來做計(jì)算或者存儲的。
通過這種計(jì)算存儲分離的架構(gòu),可以高效的對整個(gè)云端的資源做統(tǒng)一的調(diào)度安排,而不用再一個(gè)服務(wù)器一個(gè)服務(wù)器的控制了,這就進(jìn)一步提高了云計(jì)算的可靠性和靈活性。
這兩個(gè)階段有著共同的特點(diǎn),那就是它們都通過軟件定義的方法,把計(jì)算能力(也叫做算力)變成一種公共的計(jì)算資源。
很多人都認(rèn)為,算力會像電力一樣,成為未來必不可少的資源。我們國家最近在建設(shè)的東數(shù)西算,和之前的南水北調(diào)、西電東送一樣,就是把算力提升到了資源的戰(zhàn)略高度。
那么現(xiàn)在,需求的變化就來了。在大數(shù)據(jù)時(shí)代,我們每次點(diǎn)單、每次看視頻都會產(chǎn)生茫茫多的數(shù)據(jù)。這種數(shù)據(jù)密集型的計(jì)算越來越多,就對云計(jì)算的基礎(chǔ)設(shè)施造成了巨大壓力。歸根到底,是因?yàn)楝F(xiàn)在的云基礎(chǔ)設(shè)施都是以CPU為核心的,而現(xiàn)代CPU已經(jīng)很難滿足這個(gè)需求了。
困局:當(dāng)CPU不再是王
首先要明確一點(diǎn),并不是說CPU不行了,弱爆了。CPU的性能很高,而且仍然是所有芯片中最重要的那個(gè),或許沒有之一,所以傳統(tǒng)的計(jì)算機(jī)、包括服務(wù)器和數(shù)據(jù)中心,它們的軟硬件架構(gòu)都是以CPU為中心來設(shè)計(jì)的。
但是,面對前面提到的大數(shù)據(jù)和云計(jì)算變革所產(chǎn)生的新的需求的時(shí)候,這種以CPU為中心的架構(gòu)就有點(diǎn)力不從心了。這里面有三個(gè)主要的原因:
第一,CPU擅長的領(lǐng)域是指令集處理,并不擅長并行計(jì)算和網(wǎng)絡(luò)控制。這也是為什么和AI相關(guān)的計(jì)算,需要用GPU、和網(wǎng)絡(luò)傳輸相關(guān)的應(yīng)用需要網(wǎng)卡芯片的原因。
第二,大數(shù)據(jù)勢必伴隨著大量的數(shù)據(jù)搬運(yùn)和遷移,帶來的是高帶寬的需求,而CPU沒辦法提供高帶寬。
第三,現(xiàn)在的云計(jì)算的規(guī)模都太大了,動輒幾十萬上百萬臺服務(wù)器的規(guī)模,這就給整個(gè)系統(tǒng)的管理增加了極高的復(fù)雜度。而CPU作為一種通用芯片,很難兼顧復(fù)雜度、低延時(shí)和高性能。
事實(shí)上,很多芯片公司都意識到了這個(gè)問題,并且給出了他們的解決方案。比如英特爾就提出了IPU、也就是基礎(chǔ)設(shè)施處理器,而英偉達(dá)也推出了DPU、也就是數(shù)據(jù)處理器。這兩種芯片的主要意義,都是為了更好的滿足現(xiàn)在云計(jì)算的新需求,提升數(shù)據(jù)處理的吞吐量、降低延時(shí),并且從硬件上直接實(shí)現(xiàn)對虛擬化和云化的支持。這些都是CPU或者GPU做不到的。
不管是IPU、DPU,他們的本質(zhì)都是類似的,都是對以CPU為核心的云計(jì)算架構(gòu)的補(bǔ)充和擴(kuò)展。它們能把CPU不擅長的工作接下來,轉(zhuǎn)移到自己身上更高效的完成,這樣就減輕了CPU的壓力。
不過,這些芯片仍然沒有改變前面說的根本性問題。只要仍然以CPU為核心,那些復(fù)雜度、帶寬、低效的問題就依然存在。
所以,需要改變看待問題的視角。
前面的這些方案都是從芯片和硬件的視角去看問題的,但是云計(jì)算的變革,其實(shí)是由軟件定義驅(qū)動的。之前我們也說過,沒有軟件,芯片就是昂貴的沙子。前不久芯片大廠博通剛剛花610億美元收購了虛擬化軟件公司VMware,也很好的證明了軟件對于芯片和云計(jì)算領(lǐng)域的重要性。
或許解決前面這些問題的根本方法,是從軟件入手,重新思考未來云數(shù)據(jù)中心的體系架構(gòu)。
誕生:CIPU
從芯片本身的功能來看,阿里云的云基礎(chǔ)設(shè)施處理器CIPU可能和DPU或者IPU沒有本質(zhì)的區(qū)別,也就是對網(wǎng)絡(luò)、計(jì)算、存儲三大資源的卸載、加速和隔離。但它最大的特點(diǎn),就是它采用了一種完全不同的數(shù)據(jù)中心體系結(jié)構(gòu)。它把原本在C位的CPU拿到旁邊,而把CIPU放在中間,并且直接連接了其他所有的計(jì)算存儲和網(wǎng)絡(luò)資源。所以即便是類似的功能,在不同的架構(gòu)里,發(fā)揮的作用和帶來的影響就完全不同了。
在這種結(jié)構(gòu)里,CPU就和GPU一樣,成了一個(gè)普通的計(jì)算資源。它不用再去承擔(dān)那些生命不能承受之輕,也不用去處理那些它自己不擅長的事情,就讓CPU的算力沒有額外的損耗。所有計(jì)算資源的分配,都通過CIPU進(jìn)行控制和調(diào)度,也可以快速接入更多不同類型的神龍服務(wù)器,比如GPU甚至是包含其他芯片類型的異構(gòu)服務(wù)器。這樣就極大豐富了整個(gè)計(jì)算資源的種類,同時(shí)提升了性能。
根據(jù)阿里云的數(shù)據(jù),使用CIPU之后,單容器虛擬化消耗減少50%,虛擬化容器啟動速度快3.5倍。不管是主流的通用計(jì)算場景,還是大數(shù)據(jù)和AI場景,都有很高的性能提升。
對于存儲資源來說,一方面把存儲和計(jì)算進(jìn)行了存算分離,能在芯片層面直接支持存儲設(shè)備的硬件虛擬化。不需要CPU的介入,存儲設(shè)備的性能也能大幅提升。CIPU還支持多個(gè)節(jié)點(diǎn)之間通過NVMe協(xié)議共享云盤塊存儲,更好的實(shí)現(xiàn)存儲資源的池化。
對于同樣重要的網(wǎng)絡(luò)資源,CIPU可以實(shí)現(xiàn)硬件虛擬化、網(wǎng)絡(luò)轉(zhuǎn)發(fā)加速,把基礎(chǔ)帶寬提升到200Gbps,VPC的每秒數(shù)據(jù)包轉(zhuǎn)發(fā)性能提升到4000萬,網(wǎng)絡(luò)延時(shí)也從22us降低到16us。
除了芯片硬件本身之外,軟件定義的能力或許是更重要的。為了應(yīng)對這么多復(fù)雜的功能和場景,勢必需要更加復(fù)雜的軟件和靈活的編程方法。對于CIPU來說,它就是為了阿里云的飛天云操作系統(tǒng)而設(shè)計(jì)的專用處理器。正是因?yàn)橛酗w天云操作系統(tǒng)這個(gè)靈魂,以及相應(yīng)的分布式平臺,才能實(shí)現(xiàn)云資源的靈活管理、調(diào)度和編排。
展望:第三顆大芯片
CIPU是否是CPU和GPU之后的第三顆大芯片?這個(gè)時(shí)候下結(jié)論還為時(shí)過早。但幾乎可以100%確定的,是第三顆大芯片一定會出現(xiàn)在云計(jì)算領(lǐng)域。CIPU的出現(xiàn)其實(shí)并不是偶然,因?yàn)榇髷?shù)據(jù)和云計(jì)算的技術(shù)變革勢必會推動新的芯片形態(tài)產(chǎn)生。
但是,要做好這類芯片也并沒有那么容易。除了芯片本身的設(shè)計(jì)能力之外,更重要的是對云數(shù)據(jù)中心和云計(jì)算業(yè)務(wù)的深刻理解,同時(shí)擁有大規(guī)模的云基礎(chǔ)設(shè)施,以及擁有自己云操作系統(tǒng)的玩家,才有可能把硬件、軟件、操作系統(tǒng)、以及業(yè)務(wù)落地這幾個(gè)同樣重要、且缺一不可的環(huán)節(jié)結(jié)合在一起,最終做出一個(gè)芯片。
(注:本文僅代表作者個(gè)人觀點(diǎn),與任職單位無關(guān)。)