云計算芯片之戰:小烏云還是大風暴?
1900年,倫敦阿爾伯馬爾街皇家研究所,德高望重的開爾文勛爵在這里進行了一場演講。這篇演講名為《在熱和光動力理論上空的19世紀烏云》。開爾文勛爵概括說”十九世紀已將物理學大廈全部建成,今后物理學家的任務只是修飾和完善這座大廈“。
開爾文勛爵指出“雖然大廈已經建成,但是晴朗的天空還存在兩朵小小的烏云”——這就是開爾文所預言的“兩朵烏云”。但是他沒想到的是,就是晴朗天空上兩朵小小的烏云,不斷升級演化成巨大的風暴。正是這兩朵烏云,打破了經典物理的大廈,建立了近代物理學的兩大支柱:量子力學和相對論。
當前,構建在X86基礎上的云計算帝國,基石穩固,四海升平。但是天空也有兩朵小烏云。而這兩朵“小烏云”是對云計算的未來架構的疾風驟雨的改變,還是波瀾不驚的小插曲,誰也不能確定;但是確定的,對于想要在x86的云計算帝國領域圖謀一席之地的芯片行業從業者來說,這兩朵烏云可能是難得的機會。
01
云計算的夢想
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,都預示著巨大的市場機遇。
02
權力的游戲
對于傳統銀行,電信,保險等行業,他們要構建自己的數據中心(企業云),作為服務器需求方,要支撐一個對服務器架構,操作系統,數據庫有豐富開發經驗的團隊,來部署自己的業務,這個有點不太現實;因此,這些行業用戶都是菜單式接收服務器提供商(如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的地位發起挑戰,是后云計算時代的一大看點。
03
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的趨勢如此之強,GPGPU就是一個例子,GPGPU默認需要支持AI加速(SM流處理器內部也要有tensor core);而GPGPU不久前還只是圖像處理器而已;除此之外,還有各種XPU的,其核心的應用也是AI的卸載;與云計算開始時,RISC和X86的對決一樣,又是一個各種架構對決的江湖,只不過這次CPU會甘心作為觀眾來參加這些AI芯片架構(XPU)的對決嗎?而X86并不甘心,也在通過AVX指令集來補強這方面的應用,但是和專用AI芯片或者GPU相比,這些能力是否能在AI的時代展示王者的底蘊,還有待市場的檢驗。
04
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,或者更加融合的形態來呈現這一趨勢,這個就不得而知了。
05
列王的紛爭
如果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,只要符合云廠的需求;云廠可能是下一個計算體系的定義者和實踐者。
除此之外,還有一大批芯片廠家,希望參與到了這下一代云計算帝國的“列王的紛爭”中來,寄希望這個云計算帝國來分一杯羹,這兩朵烏云中,是否孕育著新的機會,涌現出更多的玩家,值得期待。