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