
原創:譚婧
DPU是人工智能晶片之後的又一大熱點。
業内人士笑談,那些投資人鑽研DPU的熱情,比造DPU的人還高。
有人在問DPU晶片是啥的時候,創業公司裡,飄來一個熟悉的女聲:“支付寶到賬,人民币一億元。”沒錯,就是融資額經常上億。
别說網際網路大廠,國字頭大基金也刀背藏身,眼睛直勾勾盯着DPU,伺機而動。
雲廠商對DPU晶片的渴望,是歇斯底裡的。逼得造DPU的人,鼻孔噴血,雙眼冒火。
而坊間有個說法,DPU隻有兩個品牌——亞馬遜雲和阿裡雲,以及其他。
DPU的故事,要從好久之前講起了。
(一)
1998年,美國斯坦福大學的球場上,尖尖綠草被陽光溫柔撫摸,孩子們尖叫雀躍,球衣鮮豔,帶風奔跑。
球場外,一些家長等着接孩子回家。他們中有的是斯坦福大學的同僚及其家屬。
左右無事,家長群裡的兩位閑聊了起來。
“最近在忙啥?”
“創業了。”
“創業方向是啥?”
“在一台計算機上可以跑多個作業系統。”
提問的這位男士,文質彬彬,聽到回答,突然眼睛一亮,脫口而出:“這個想法挺好,很新鮮。”
最怕一流行家,遇見了一流行家,一聊就迸射火花。
兩位家長,在球場邊,就地達成投資意向。
這位家長,不,這位看準就出手的早期投資人,氣質儒雅,風度翩翩。
他就是張首晟,著名華裔實體學家,楊振甯的愛徒,主要從事凝聚态實體領域的研究,斯坦福大學終身教授。
創業的那名家長也不簡單,叫黛安·格林(Diane Green),一位天賦型女性管理者,從創業之日起,就擔任高管,掌管公司長達十年之久。
後話是,她還管了一陣子谷歌雲。
此番操作,把孩子們都看懵了。
另一個孩子的爸爸,黛安·格林的老公,是斯坦福大學教授,孟德爾·羅森布拉姆(Mendel Rosenblum,簡稱羅教授),是公司的首席科學家,他也是作業系統領域的世界級專家。
彼時創業路上,夫婦倆剛剛動身,公司名叫VMware。
二十多年後,這家公司成為虛拟化技術領域的巨頭。
計算機技術的術語,常常閃爍理性光芒,而“虛拟化”這個詞,一看就是鏡花水月,太虛幻境,把一種仙風道骨的玄幻氣質,拿捏得死死的。
不意外,虛拟化技術的一開始:學術研究站C位。
為數不多的高校在研究,美國斯坦福大學、英國劍橋大學。
屈指可數的公司在探索, IBM公司、英特爾公司、微軟公司。
上世紀70年代是虛拟化學術研究的黃金年代,有多篇學術論文為這個方向奠定了理論基礎。
科學技術這行,光憑論文不行,得拿出東西來,還得用起來。
等有代表性的公司誕生,年年等斷腸,從七十年代,到九十年代,一等二十年。
據VMware公司CEO黛安·格林回憶,一天晚上,羅教授回到家,談起工作,他說:“我想重新審視虛拟化,将隔離引入作業系統,能同時運作新舊代碼,又不必建構一個新的作業系統。”
想法像洪水一樣從腦中湧出,羅教授非常激動,睡醒的第二天,就開始做原型。
不久之後,澎湃的行動力,讓羅教授和他的學生們實作了X86 伺服器的虛拟化。
科學家的朋友圈往往光芒四射,創始人集齊五位專家,擺開了陣型,對虛拟化發起沖鋒,這一次載入史冊。
“攻下”X86,打開虛拟化由守轉攻的新局面。
相傳,虛拟化技術公司的文化和網際網路企業文化不同。
美國斯坦福大學的學生閉眼挑offer的時候說,谷歌的文化吸引年輕人,撸狗上班,睡衣轟趴,而VMware 公司的員工則能在公司安穩地結婚生子。
随後,學術派傳球至邊路,PC的虛拟化接球。
雖然在小型PC機時代,虛拟化不是剛需,但是開創了硬體新玩法,沸騰了極客的熱血。
小心翼翼問一句,虛拟化是不是在騙CPU?
理直氣壯回答:CPU有一種被騙的“能力”。
虛拟化技術很厲害,還是要戒驕戒躁,後面的路,還長。
(二)
無疑,VMware公司是成功的,當開源世界崛起,軟體甩開商業軟體的統治,開源極客走上舞台。
請大家記住這兩個虛拟化技術的精神小(領)夥(袖),因為他們對DPU的發展,至關重要。
按姓氏筆畫排序:安東尼·李國瑞(Anthony Liguori),美國人。張獻濤,中國人。
2001年,英國劍橋大學計算機實驗室,Ian Pratt教授帶着幾個博士生做了一個非常知名的虛拟化項目,叫Xen project。
Xen的讀音和“than”有點像,但不完全一樣,發音不吐舌頭。
Xen有一個龐大的、活力十足的開發社群,深遠地影響了雲計算、虛拟化和安全。
兩年後,Xen X86虛拟機螢幕的第一個穩定版本就問世了。
2004年,張獻濤在武漢大學,念博士。多年寒窗,沒有少下功夫,他技術水準強,動手能力更強。技術大神何愁去處,可張獻濤還是有些擔心,因為虛拟化技術的擇業面,太小了。
讀博士,勤奮很重要,有一位好的博士導師也重要。
張獻濤的博士導師,是全球知名的密碼學家卿斯漢。張獻濤一定是花掉了很多運氣,才遇到了這麼一個好導師。
他一臉慈祥地對張獻濤說:“虛拟化這個研究方向,我和英特爾有合作,你先去那裡實習,别擔心,我幫你安排,剩下的,要看你自己了。”
而今看來,卿斯漢教授将張獻濤送去企業實習,是完完全全從學生的利益考慮。(有些博士導師那是死活都不願意放博士生出去幹活,此處省略三千字吐槽)。
于是,張獻濤從一名英特爾的實習生做起,一做就是3年。時光飛逝,技術水準飛漲,他于2008年正式入職英特爾。
他可能也沒有想到,這份工作一幹就是9年。
把鏡頭搖到2002年的美國IBM 公司,虛拟化的另一個前沿陣地。
一位名叫安東尼·李國瑞的大學生,在學校讀書期間一直在IBM實習,每周20小時,連續四年,風霜雪雨,從不間斷。
2006年,安東尼入職IBM Linux 技術中心,成為一名軟體工程師,這份工作一幹就是7年。
人這一生,找到一個真心喜愛的技術作為愛好,然後不計成本地付出時間和耐心,用心打磨,收獲的将不隻是一個拿得出手的技能。
更重要的,還有一個脫胎換骨的自己。
也許某日傍晚,紅霞染盡天邊,張獻濤在看雲,安東尼也在看雲,可能會有那麼一瞬間,他們都意識到自己要和這個名字極富詩意的技術,打一輩子交道了。
世間因緣,因緣世間。
(三)
晶片江湖,有人,有酒,有故事,就有批評英特爾的聲音。
PC為王的時代,因為虛拟化不是主流,是以英特爾X86指令集對虛拟化的服務态度很不友好。
這鍋,得英特爾背,還背到了2005年。
英特爾在那一年才笑臉相迎,态度友好,在CPU裡面做了一些擴充指令集。
這次重拳,扭轉了虛拟化的乾坤。
那一年的年11月,英特爾宣布産品支援硬體虛拟化(VT-x,VT-d),AMD也屁颠跟上,宣布産品支援硬體虛拟化(SVM)。
别看姗姗來遲,但是這套技術也足夠硬核黨,能做出來也很了不起。
但是英特爾“罪名”也很昭彰——低效。
VMware公司眼疾嘴快,把英特爾一頓猛批。
模仿駱賓王讨伐武則天,出了一篇著名的“檄文”,讨伐英特爾。
指責支援虛拟化的擴充指令集低效,還沒有自己家做的性能好(這裡指VMware公司的“二進制翻譯”,binary translation)。
指責别人,趁機誇贊自己,沒毛病。
經此一事,也能一窺VMware公司的江湖地位,批評别人,得自己腰杆子倍兒直。
經此一變,虛拟化便有了CPU晶片廠商的全火力支援,仿佛被按下二倍速播放鍵。
這是虛拟化的短闆,第一次被拯救。
那時候,英特爾沒有白忙活,蘸着唾沫點鈔票,心裡樂開了花。支援Xen,跟支援Linux的道理一模一樣,虛拟化帶動了生态,大家都愛使用者黏性。
窗外陽光正好,又是吃飯時間,天上白雲飄過,人間沒有巨變,雲計算悄然巨變。
雲計算的第一張門票,亞馬遜雲搶到了。雲計算的号角一吹響,開源迅速占領C位。
Xen底氣十足,首席科學官兼劍橋大學計算機實驗室教授Ian Pratt說:“微軟正處于追趕我們的道路上。”
此言不虛,微軟公司的産品确也深受 Xen的啟發。
一時間,紅帽,Sun Microsystems,Suse Linux,到處都有Xen的身影。
一時間,似乎任何新事物都會在Xen萌發。
Xen被掌聲包圍,連雲巨頭都伸出橄榄枝。2006年,亞馬遜雲(EC2)推出第一個采用Xen的執行個體類型(m1.small)。
Xen登上了第一朵雲,自此,成為雲計算的生力軍。
虛拟化技術烈火烹油,微軟公司好不服氣。悄悄收購位于美國波士頓的虛拟化廠商Softricity公司,趕緊公布了,為Windows Server引進新的虛拟機管理産品的時間表。
“别催了,在買了。”
後續是微軟公司再露土豪本色,為了虛拟化連續多次出手多家創業公司。
這也從側面反映了虛拟化這個技術,又小衆,又難,又關鍵,連微軟公司也啞巴吃黃連,有苦說不出。
2007年英特爾出了VT-x,增強了很多功能,又反超了VMware公司的二進制翻譯技術。
VMware公司内心獨白:批評英特爾,草率了。
在2009 年的時候,研究公司Gartner預測,三種技術将主導虛拟化:VMware公司的 ESX Server、Xen 和微軟公司的 Viridian hypervisor。
有些技術預(占)測(蔔),聽一聽,别當真。
正面評論大聲說,Xen是當時的業界标準之一,非常成熟。
負面評價小聲說,Xen的架構非常複雜,代碼鍊非常長,對核心的改動也比較大。
Xen是一個非常好的項目,但是确實太複雜。全球真正搞懂Xen架構的人不超過50人。大部分人,停留在僅僅能用這個層次。
再者,Xen還是傳統虛拟化技術。
Xen的傳統結構,決定了它身上的擔子特别重,要忙于許多事情,保護實體硬體,保護BIOS,虛拟化 CPU,虛拟化存儲,虛拟化網絡,還有諸多管理功能。
Xen過于笨重,注定退場,但Xen的出現,為虛拟化打開了開源世界的大門。
夢裡幾十年,長風幾萬裡,才把虛拟化吹進開源世界。
2014年,同樣是開源的KVM來了。
作為Linux的家族成員(以元件的形式出現),這個輕巧的超級管理程式,身姿輕盈,席卷世界。
這時候,VMware公司的日子也不紅火了,閉源商業軟體,花錢不說,雲廠商改動也不友善。
不要忘記的是,亞馬遜雲和阿裡雲的DPU早期架構,都能看到Xen與KVM的身影。
(四)
問世間,是否此山最高,或者,另有高處比天高。
(手動打節奏:嘿哈!)
開源社群背後的慘綠少年,藏身于開源江湖,苦練絕技。
十多年前的虛拟化技術,并不成熟。
放眼全世界,做虛拟化技術研究的人,真心不多。
開源社群裡最有權力、最受人尊敬的人,有一個統一的稱謂,Maintainer(軟體維護者),也是進階别的代碼貢獻者,掌管開源項目的設計規劃,對全局,有深入了解,對未來,也有獨到見解。
世界有時候很大,有時候很小。
安東尼,是QEMU的Maintainer。
張獻濤,是KVM跨平台支援以及KVM/IA64的作者和Maintainer 。
QEMU曾是世界上首屈一指的系統仿真器和虛拟器。QEMU支援Xen和KVM,并廣泛部署在大多數雲環境中。
從Xen到KVM,安東尼和張獻濤的技術突飛猛進,天天打破天花闆。隻要解決性能方面的難題,什麼姿勢都會。
要知道,那些系統底層,要去解決性能方面的故障或者錯誤(Bug),都是非常難的,伸出手就能扼住整個項目的喉嚨,讓人動彈不得。
安東尼和張獻濤,身上不斷出現“巧合”。
張獻濤和安東尼在Xen 和KVM 開源社群都有交集,是享譽社群的極客,令無數開源玩家高山仰止。
經曆諸多采訪報道,他們在做自我介紹時,都曾說到一句話:“我一直做虛拟化方向的工作。”
同樣的話,一個用中文講出來,一個用英文表達。
隻要一有虛拟化安全的新聞熱點出現,國外技術媒體都以采訪到安東尼為榮。張獻濤則是國内第一批參與做KVM的。
巧合的背後,往往是必然。
2013年,安東尼,加入亞馬遜雲。
2014年,張獻濤,加入阿裡雲。
昔日,在虛拟化開源社群,兩位最有“勢力”的人。
如今,在頭部雲計算廠商,主導DPU技術變革。
更巧的是,一個負責Nitro系統,一個負責神龍系統。
亞馬遜雲和阿裡雲的DPU,均汲取了開源虛拟化軟體Xen和KVM的精華。
雲計算帶來了虛拟化技術的繁榮,實作了技術的躍遷。
此時,虛拟化的專家,從硬體廠商的寶貝,變成了雲計算廠商、大型網際網路公司的寶貝。
35歲就淘汰之類的話,在這些人面前,純當放了一個臭屁。
所有人都意識到,虛拟化技術“值錢”了,蜂擁而至,可惜,門檻很高。
虛拟化是一門非常難的技術,虛拟機是對真實計算環境的抽象,很多人被“抽象”二字難住。
作業系統核心已是掃地僧級别的技能了,虛拟化則是獨孤求敗。
張獻濤說:“以前,我們認為作業系統核心是最難了解的,也是最複雜的系統軟體。業界有不少非常資深的核心(kernel)工程師轉去做虛拟化,都了解不了,也做不好。”
為什麼呢?
因為虛拟化又抽象了一層,其難度大大增加,要用軟體去實作硬體(的功能)。
在雲廠商沒有虛拟化專家的時代,亞馬遜雲也找英特爾的人去解決問題。
十幾年前,英特爾工程師火線救援雲廠商的故事,都快被人遺忘了。
2010年,阿裡雲準備在5月10日釋出産品(ECS1.0)。
那時,有三家企業的工程師擠在阿裡雲攻堅,攻了一個多月,有人都要把頭急秃了,眼看到日子了,還有一個坎,過不去。
大概1000台伺服器,運作一晚之後,總會發生一件奇妙的事情,硬碟找不到了。
硬碟也很委屈:“我掉線了。”
攻堅小組被死死逼到了牆角,他們拿出了一個負責任的推斷:問題要麼出在晶片組身上,要麼出在晶片身上。攻堅小組在嘶吼,得讓英特爾派人來,快點。
命懸一線之際,無論英特爾派誰來,都會被人死盯着,恨不得用秒表計時。
意外的是,英特爾的專家到現場後,看了一下(所有的配置),想了一會,之後說:“改個參數就可以了”。
計時那個人,看了下表,從拿到阿裡雲的伺服器日志到搞定,大約用時3000秒(50分鐘)。
這一刻的如釋重負,讓在場的阿裡雲工程師一輩子也忘不了。
快拿幾條真絲圍巾,我們要纏在胳膊上跳廣場舞。
這事,讓一個外援在阿裡雲内部,小火了一把。
誰知不久之後,阿裡雲的章文嵩問了團隊一個問題:如果要挖一個虛拟化做得最好的人,應該挖誰?
章文嵩是何人呢?Linux虛拟伺服器創始人,開源大神,曾任阿裡雲CTO,首席科學家。
阿裡雲的工程師們,雙手不離開鍵盤,頭也不用擡,張嘴就有了:張獻濤。
無獨有偶。
有人告訴我:“二零零幾年的時候,亞馬遜雲還沒把安東尼搞過去,虛拟化的問題也解決不了,也得靠英特爾。因為虛拟化的大牛工程師,亞馬遜雲也缺。”
亞馬遜雲,有了安東尼。
阿裡雲,有了張獻濤。
尋隐者不遇,那虛拟化的高手到底在哪?
雲深不知處,他們就聚集在IBM、英特爾、紅帽。
消息靈通人士透露,2008年左右,英特爾公司上海辦公室裡,虛拟化團隊大概十幾号人。雲計算帶動虛拟化技術熱門之後,全世界都來挖人。
自此,很多虛拟化的人才就留在了美國,直到現在。
人争一口氣,佛受一炷香。為什麼雲廠商會憋着口氣一頓猛搞晶片?
答案是:誰痛苦,誰難受,誰逼瘋,誰知道。
張獻濤懇切的語氣令人印象深刻:“就算不是神龍團隊,阿裡雲也會有另一支團隊把DPU做出來。”
衆所周知,現在雲計算廠商的伺服器規模有多大。當規模擴大,使用者量增長,對DPU的渴求就變得心切。
幾十萬台伺服器,一天天,嗷嗷待哺。
在安東尼心裡,應該也反反複複問過很多遍DPU的本質問題:
“為了得到更好的産品,我們要設計硬體,要設計一個專門用于虛拟化的硬體平台。不是通用軟體,不是通用硬體。”
回望來路,已無退路,在技術最佳的更疊期,DPU出現了。用DPU定制化硬體加速,成為最正确的方向。
(五)
别怪我沒提醒,雲計算的虛拟化,和前幾代虛拟化,大為不同。
前幾代産品與DPU隔着一條深不見底的天塹,跳過去,就是通天大道。
問題來了,怎麼跳?
從2012年開始,亞馬遜雲團隊,尤其是EC2虛拟化就開始思考:
那個叫做Hypervisor的“超級管理者”,得膽子再大一點,能力再強一點。那麼問題來了,世間能做出比純軟體架構更好的超級管理程式嗎?
這是我能找到的,安東尼在外媒采訪中談到的,亞馬遜雲關于DPU思想萌芽最早的時間點。
但那個時候還沒有Nitro的影子。
後來,把Nitro System曝光于公衆面前的,是一次知名的收購案。
被收購的公司叫做Annapurna Labs,也就是安娜普爾納峰實驗室,公司在以色列和美國都設有研發中心。
登山愛好者,瞅這個名字很眼熟。
巧了,喜馬拉雅山最高十峰之一,安娜普爾納峰。
角峰銳利,山體挺拔,線條淩厲,冰雪覆寫,雲海猛烈翻滾,在向全世界的登山者搔首弄姿:“你過來呀~”
又巧了,公司兩位創始人Billy和Nafea也是登山愛好者,以攀登此峰為榮。雖未抵達,但心已至,他們将角峰設計成LOGO,印在了封裝好的晶片上。
登山是個人英雄主義,DPU是團隊實幹集體主義。
安娜普爾納峰實驗室對于亞馬遜雲來說,就是上天恩賜的禮物。國内雲廠商一開始有這個好買賣,半夜睡覺都笑醒。
收購這件事情,光有鈔票不行,好的“收購目标”極其罕見。
這家“登山愛好者”公司,除了登山,還有幾個絕活。
其一,Graviton晶片,雲廠商第一顆Arm晶片。
其二,是一種虛拟機抄近路小能手的技術,ENA。
(ENA,全稱是Elastic Network Adapter,一種網卡驅動,能用于虛拟機和實體機,是開源項目,釋出在GitHub網站上。)
這種技術講究的是四兩撥千斤,使得虛拟機繞過軟體(核心和使用者空間網絡處理程式),直接操作硬體(網卡),如此這般,提升了網絡效率。
昔日寂寂無名的ENA,成為亞馬遜雲網絡虛拟化的關鍵技術,日後是大名鼎鼎的Nitro的一部分。
合作如絲般順滑,那就買過來,誰叫那時候世界首富掌管亞馬遜公司呢。
2015年,收購價3.5億美元。
别看當時花了多少,要看日後省了多少。這是一場幾乎完美的收購,每年都為亞馬遜節省大把美金。
因為DPU的特長之一就是很能打,一套降龍十八掌,打敗虛拟化損耗,不在話下。
損耗少了,當然省錢。
安娜普爾納峰實驗室開發的這張卡,不僅解除安裝了VPC網絡功能,還解除安裝了EBS 存儲網絡功能。
這就是前文提到的,“任務解除安裝”技術。
據網飛公司技術高管(Brendan Gregg)的說法,Nitro的性能損耗非常小(不到1%),Nitro的虛拟化性能接近裸裝置。
亞馬遜的文化裡,有單向門(The one-way door)和雙向門(two-way door)決策的說法。這個翻譯,頗為晦澀。
“單向門”的任務,像電影《鱿魚遊戲》,大抵是幹活時被人用槍指着腦袋。
隻要任務失敗,就“嘣”一槍。驚不驚險,刺不刺激。
“雙向門”就是這個場景用得不好,搬到别的地方,說不定還能用上,反正不會白忙活,KPI保住了,萬事好商量。
DPU是專用的,“專用”意味着,拿到别處“沒用”。
Nitro 系統開發的時候,槍和腦袋的距離,幾毫米。
失敗和成功的距離,一丢丢。
研發團隊在描述艱難的開發歲月的時候,像個文科生,一口氣用了四個形容詞。
他們說:“這次我們做決定,有條不紊,謹慎,緩慢,深思熟慮。”
懂行的心裡明白,這不是普通的任務,其要求已經超出了傳統虛拟化技術的能力。因為打破傳統,就是浴火重生。
研發團隊在技術部落格裡寫下:“隻有創新才行,但我們沒有急着拍腦袋。整個探索的旅程曆經五年,仔細、反複試驗,每一步都很小心,驗證我們前進的方向是正确的。”
喜大普奔的2013 年,亞馬遜雲研發團隊推出了第一款Nitro 解除安裝卡(C3 執行個體類型),将網絡程序解除安裝到硬體中。
馬不停蹄的2014 年,将 EBS 存儲解除安裝到硬體中(C4 執行個體類型),這次研發團隊首次與一家名為安娜普爾納峰實驗室的公司合作。
Nitro研發團隊談到了研發的時間節點:“2017 年,我們解除安裝了最後的元件,包括控制面和剩餘的 I/O,我們引入了一個新的管理程式,具有 C5 執行個體類型的完整Nitro系統。”
代碼長什麼樣子,如今已經記不清了,但工程師依然記着當時的心情:
“這是投入的揮金如土,是身心的殚精竭慮,是承諾的使命必達,是不可思議的時刻。當Nitro 系統推出時,五年辛勤,此生難得。”
Nitro給亞馬遜雲帶來什麼?
Nitro的疊代推動亞馬遜雲最核心的EC2産品家族不斷往更大、更快、更安全、更穩定、更多類型、更高成本效益方向演進。
Nitro 系統讓亞馬遜雲有能力提供 100 Gbps 增強型以太網網絡的雲,支援更高吞吐量或受網絡限制的工作負載(如 HPC 應用程式)。
借助 Nitro 系統,将虛拟化功能解除安裝到專用硬體上,将 EC2 的架構分解為更小的塊。這些塊以多種不同的方式組裝,能夠靈活地設計和快速傳遞 EC2 執行個體,并提供越來越多的計算、存儲、記憶體和網絡選項。
亞馬遜雲 CTO 沃納·威格爾(Werner Vogels)曾經說過,“在亞馬遜雲,90%到95%的新項目,都是來自于客戶給我們的回報,剩下的5%也是從客戶角度出發所做的創新嘗試。”
而Nitro 系統正是這種項目之一,它誕生于2013年,成熟于2017年,到現在還在不斷進化中,2021年已經疊代到第五代。
(六)
最重要的一點,亞馬遜雲科技的團隊看到了,阿裡雲神龍團隊也看到了。
安東尼看到了,張獻濤也看到了。
把傳統的虛拟化技術直接移到雲計算,缺陷極其明顯,畢竟不是為了雲計算的伺服器而生的。
把時間花在最值得思考的問題上。
2016年左右,張獻濤博士,天天都在思考同一個問題:什麼樣的虛拟化技術,才适合雲計算?
得從根本上解決傳統虛拟化應用到資料中心裡面存在的缺陷(也就是性能、資源、隔離方面所有的問題)。
他腦中的“神龍系統”慢慢清晰。
那一年裡,張獻濤博士密集、低調往返于北京和杭州兩地,意在勸說多位大咖級晶片主架構師加入阿裡雲。
有這樣一句話,很打動人心,日後實作的時候,更激動人心:
“外界無法了解網際網路公司要做DPU的決心,這件事情絕對是前人沒有做過的,它可以改變雲計算裡面最核心的技術。”
神龍晶片給阿裡雲帶來什麼技術價值?
張獻濤認為,第一,解決CPU和記憶體完全隔離的問題。這裡的隔離有兩個層面意思,一個是安全方面的隔離,一個是性能的隔離。
第二,IO鍊路上最容易出安全漏洞。QEMU這個模拟器是從傳統的虛拟化帶過來的,在神龍晶片第一代的那個時間點上,它是完完全全過時了。
所謂的過時了,包括兩點。其一,代碼是開源的,人人皆可見。其次,安全漏洞多,常發生一些虛拟機逃逸的情況。
在公共雲的世界裡,“虛拟機逃逸”五個字,還沒有說出口,就有一群人撲上去,捂住你的嘴。
虛拟機逃逸=絕對不允許。
DPU解決了性能,同時也解決了安全方面的問題。
神龍晶片一開始就想好了,多張卡解決問題,強調多合一,多種功能在一張卡上實作,複雜度下降,穩定性增強。
兩架馬車,解決的問題一樣,實作的思路不同。
佛山無影腳,神龍無影刀。
DPU的一個關鍵就是,“從哪裡切”與“切到何處”,答案充滿玄機和禅意。
這讓人想起庖丁解牛,若要回答:骨在哪,肉在哪,骨肉相連又在哪;
恐怕要稔知全牛結構,全憑手感,刀法在腦海裡,在肌肉裡。
這還不夠,難題在于,每一家雲廠商的軟體是不一樣的。
怎樣處理分布式存儲和分布式網絡的軟體接口?
哪些應該放在控制路徑?
哪些放在資料路徑?
如果不懂虛拟化,你就不知道怎麼切,或者切完後性能也不好。
DPU團隊表面生氣,心裡憋悶,誰出的破題?
再或者,有的DPU團隊,還沒有看到牛在哪裡。
DPU這個東西,光有硬體思路,或光有軟體思路,一定會出大問題。
當故事講到這裡,虛拟化的知識就不夠用了,要細聊張獻濤在英特爾的另一段經曆。
上海虹橋作為著名的交通樞紐,周邊房價,一直看漲。
2005年的時候,張獻濤剛到英特爾實習,工資不高,錢包不鼓,在大虹橋地段找房子住,選來選去,選了仙霞路附近的茅台路,一個叫做天山五村的老式小區。
大虹橋的房價,逼得張獻濤和師兄合租了一個單間,逼仄的房間裡,擺了兩張單人床,已經夠局促了。沒想到,更局促的在後面。
一進英特爾,張獻濤的壓力值就爆表了。
為什麼?他發現,六年的計算機專業白讀了,媽耶,英特爾大牛們說的話,居然聽不太懂。原因是他們講的那些東西,都牽涉到晶片内部的專業知識。
能主宰一個時代的門派,半導體産業鍊的頂端,還是有很多秘籍的。
腦袋混沌了幾天之後,張獻濤那股子不服輸的勁兒,上頭了。
經高人指點,他沖到藏經閣就找寶典。
《英特爾系統程式設計手冊》(System Development Manual)是這樣一種存在,你看第一遍,包你根本看不懂。
照理說,計算機的作業系統,是按此寫出來的。比如,英特爾的64位處理器用的是IA 64,配套的《手冊》有好幾卷。
《手冊》也誠不我欺,卷卷厚如闆磚,就不信你能讀完。
晚上,師兄睡了,張獻濤不敢開大燈,從枕頭下面摸出一樣東西,手電筒。于是,咳嗽放屁都在一個被窩裡,用手電筒的光,照着看《手冊》。
老舊小區的黑瓦和夜色融在一起,樓層裡閃爍着零星的光,從視窗的方格裡冒出來,張獻濤屋裡的光,從被子裡透出來。
開了頭才知道,痛苦是一層套一層的套娃。
每日不辍的翻讀,還要看作業系統的核心代碼。這行代碼為什麼這麼寫,他要到程式設計手冊裡找答案。這還不夠,要看Linux和Xen的代碼。
看不懂怎麼辦,英特爾還有一個“師兄幫扶”機制,類似學霸紅領巾,不懂問師兄。
左手一本軟體程式設計手冊,右手一本硬體程式設計手冊,外加Linux核心代碼,一行一行去了解。
再看不懂怎麼辦,去找美國的工程師請教。
張獻濤吃一口程式設計手冊,蘸幾行Linux核心代碼,成為每日的例行動作。
日複一日,張獻濤對CPU、對作業系統的了解,加深加深,再加深。
在英特爾公司,張獻濤知道了一個“冷知識”。
任何一顆晶片,從英特爾公司“走”出來之前,内部員工可能提前三到五年就已經拿到了“未出廠的晶片”。
工程師們要把 CPU所有的新功能用軟體“用”起來。
說白了,到手的晶片還沒有正式量産。晶片裡面會有各種各樣的毛病。你要去了解“問題”來自于軟體,還是硬體。
不了解這點,你永遠不會懷疑CPU會出問題。
DPU的技術領袖,需要對晶片、對晶片組、對PCIe總線、對作業系統、對虛拟化的了解,到達一種境界,關燈取物,如同開燈取物一樣自如。
看似行雲流水的判斷,是在日複一日、年複一年、無聲無息中形成的,就像火山爆發後,熱風裡從早到晚飄落的火山灰,把一切技術難點都掩埋。
從火山灰中醒來,看到一個重塑的新世界。
DPU的部署,無異于完成了給高速飛馳的列車換防風材料,給深海作業的潛艇換防水材料。
2017年到2021年,亞馬遜雲和阿裡雲均已跑步進入了DPU産品疊代良性循環的新世界。
2021年的夏天,張獻濤博士對我說:“以前,沒有人相信網際網路公司需要晶片技術。現在,大家都相信了。”
(七)
裁判一聲長哨,男主持人富有磁性的聲音播報:觀衆朋友們,這裡是資料中心賽場,IaaS層終場,雲計算基礎設施最後一場比賽。
當優秀DPU問世的時候,國内雲計算廠商在IaaS層,這輪的戰鬥,宣告結束了。
自研出DPU的雲計算廠商說:“我攤牌了,我赢了。”
哪怕五年前,放眼找工作的網站,就算雲計算廠商“放出”招晶片專家的崗位,誰敢去?去幹啥?再資深的HR一看崗位說明,都懵了,就沒接觸過搞晶片的人。
軟體開發周期何其快,硬體開發周期何其慢。旁人都說,這戀情看上去就不長久。
老牌晶片公司一扭頭,眼角餘光裡都是質(鄙)疑(視)。
雲廠商隻擅長軟體,如何面對晶片?
雲廠商面對的場景極其複雜,用晶片怎麼搞定?
誰出的題,這麼難。
問題是複雜中的複雜,需求是剛需中的剛需。
很抱歉文章科普得遲了,DPU是一種雲上伺服器的專用晶片。
這句話,有兩個關鍵詞,“雲上伺服器”和“專用晶片”。
先講,雲上伺服器。
雲上伺服器有些像公共澡堂,可以一個人用,也可以多人共用,麻煩都是“一起用”帶來的。
公共澡堂“一起用”,最好有隔闆。我看你,你看我,這樣不文(安)明(全)。
可口可樂和百事可樂要在一朵雲上,還能互相看檔案,立馬就翻臉了,肥皂也不撿了。
那怎麼辦?
答案是:得插DPU,而且是每台伺服器都得插。十萬台伺服器,插十萬張DPU。防毒軟體是用軟體保護安全,DPU的作用之一是用硬體保護安全。
說到安全,硬體比軟體更能打,這個就不贅述了。
再講,專用晶片。
提到專用晶片,挖礦炒币賺到錢的人興奮了,搶着說:“我最内行。”因為不同的加密貨币,要不同的礦機。礦機越對口,挖币越賺錢。
金錢的銅臭味,告訴我們:專門的事情,讓專門的晶片去做。
現在還有争議,但是未來,會看得清楚,DPU是雲計算的标配。
摩爾和登納德兩位老先生,無情指出“現實之無奈”,CPU成了最昂貴的“打勞工”。
是以,DPU作為專用硬體,除了安全,還要來給CPU減負。
幾條街之外,都能聽見DPU的唠叨:“哎呦,CPU我的祖宗,快放下,您哪敢動這,可不能把資源浪費在網絡和存儲的負載上。”
CPU則說:救救孩子吧。我太難了。
(CPU大聲呼救的原因是:CPU既要處理大量的上層應用,又要維持底層軟體的基礎設施,還要處理各種特殊的IO類協定,不堪重負。)
把“負擔”從CPU上解除安裝下來,DPU将有望成為承接這些“負擔”的代表性晶片。
CPU也很高興DPU的出現,你行,你上呀。
的确,有人誇DPU是繼CPU和GPU之後的“第三顆”主力晶片。
不要因為鮮花和掌聲太多,就對DPU的能力有什麼誤會。
CPU穩坐“主咖”寶座,CPU可以當DPU用,CPU也可以當GPU用,但是反過來不成立。
DPU的事情CPU能做,但是,CPU比DPU昂貴老多了。牛刀太貴,殺雞的人自然不舍得。
雲廠商想實作“一起洗澡(一起用)”,得靠虛拟化技術。虛拟化雖好,但是會引發一堆“糟心事兒”,比如性能損耗,甚至有人把這種損耗比喻成“交稅”,搞不定當然多交稅。
這種損耗也相當于,還沒有開始洗澡,一半水在水管裡就浪費光了,肥皂沫都沒有來得及沖掉。
技術問題越難,極客們越興奮,不自覺揚起了手裡的小皮鞭。
虛拟化是DPU的精髓,虛拟化的曆史幾乎和計算機一樣悠久,是計算機科學史上最偉大的思想之一,造就了偉大的雲計算技術和市場。
“制造假象”“隐藏細節”(給上層應用提供一種假象,降低上層應用使用下層資源的複雜度)。
我們天天在用的作業系統,也是一種虛拟化的“思想”,是對硬體資源的虛拟化。
PC機的虛拟化,把計算的核心“變成”程序。把存儲媒體“變成”檔案系統。
雲計算的硝煙戰火中,虛拟化這個噴塗了迷彩僞裝的彈藥庫,終于藏不住了。
(八)
說它低調,誰料想,DPU直接沖破了次元壁,在彈幕裡打出“火鉗劉明”。
有人造出來DPU的時候,DPU還沒火,它們就是,阿裡雲的“神龍晶片”,亞馬遜雲的“Nitro System”。
兩者,都優秀。
不僅造出來了,還規模化用起來了。
不僅規模化了,在雲的場景中收益還巨大了。
阿裡雲在國内雲計算廠商技術團隊裡是最拔尖的。
亞馬遜雲在技術上從來沒讓人失望過(公關廣告投入就另說了)。
他們造DPU的團隊,猶如雄師過江,天翻地覆慨而慷。
自此,雲廠商分成兩列縱隊:有DPU的,沒有DPU的。
中國男足,笑而不語,大比分落後,說的就是那些沒有DPU的雲廠商。
亞馬遜雲和阿裡雲都是革命者,且心有靈犀,選了相同的技術方向。
雲燦霞鋪,同是天涯得意人。
亞馬遜雲的SA是解決方案架構師(Solutions Architect),很能打,一言不合就秀(show)代碼,簡直人人都匹敵創業公司CTO。
一位SA私下裡告訴我:“簡單來講,DPU就相當于是把虛拟化不同的工作負載,下放到不同的卡上。”
留意“下放”這動詞,得體會了一陣子,才想通。這個詞,用得妙啊,它背後的專業術語是“任務解除安裝”。
“Nitro是一張卡,把負載(Hypervisor虛拟層,存儲,網絡)都綁上去。也就是把影響虛拟化安全、性能、穩定性的那些東西都裝進闆卡裡去。”
“它不是一張卡,是一套卡。每張卡片有不同的目标。”
“Nitro System之是以稱為是一個系統,它包含三個獨立的部分:Nitro 卡、Nitro 安全晶片和 Nitro 管理程式。
以前嘴饞,必須自己會燒兩個小菜,但是,現成的API準備好了。
不僅會燒菜,還會自創新菜。
學(搞)燒(創)菜(新),沒那麼難。
因為Nitro系統是一個“基礎元件盒子”,有許多不同的組裝方式,進而使AWS能夠靈活設計和快速傳遞(EC2執行個體類型),計算、存儲、記憶體和網絡都可以成為組合的選項。
選擇困難症患者看到後,趕緊喝了一口咖啡,壓壓驚。
亞馬遜雲員工也談到,這種做法能夠将雲計算微服務架構擴充到硬體,友善“創新API”。
2017年的時候,愛看熱鬧的人,圍觀神龍MOC卡,但,萬萬沒有想到,圍觀的就是DPU。
一位阿裡雲異構計算團隊的員工私下裡告訴我:“MOC可以了解為一台小伺服器。物如其名,卡上微系統(Micro-servicer On Chip)。但是,2021年,我們對外口徑統一用神龍晶片,不叫MOC卡。”
阿裡雲員工還說:“對于神龍晶片的細節,公司希望對外少談。有不少人,在打聽。”
2021年10月20日,神龍推出第四代,江湖人稱神龍4.0。
比起第三代神龍,關鍵性能名額提升了多少呢?
說兩個關鍵的,網絡關鍵性能名額提升一倍以上,存儲關鍵性能名額提升兩倍。神龍4.0全球首次搭載大規模彈性RDMA高性能網絡,網絡延遲整體大幅降低。
RDMA作為網絡通信技術,不是一個新技術,但是,阿裡雲彈性RDMA,讓RDMA這項技術,從高性能計算(HPC)這個小衆領域,走向公有雲。
曾經RDMA大規模組網的能力,是整個業界都解決不了的問題。
彈性RDMA将對雲原生微服務、無服務計算應用的性能提升大有幫助,甚至是Java 中用Netty 網絡程式設計架構的應用程式,都會從中受益。
2021年的秋天,張獻濤說:“神龍晶片是目前業界最出色的DPU,沒有之一。”
DPU要才華有才華,要顔值有顔值,但是還有“兩大怪”。
一大怪,亞馬遜雲和阿裡雲的DPU,不外賣。
DPU作為專用晶片,不要你懂,隻要自己懂自己。
另一大怪,不少雲計算廠商,一提自研DPU,就說拜拜。
何況青雲和UCloud上市了,也都在虧損。
更何況,造DPU,怎麼着,得拍出三個億人民币來。
(九)
村口的土牆上,刷上了白底紅漆的廣告語:
DPU,早擁有,早緻富。
DPU,保安全。
DPU,隔離好。
DPU,省大錢。
一定得用,又沒錢自研,可以用英偉達的DPU呀。2020年,英偉達69億美金收購Mellanox,劍指DPU。
可惜不是“量體裁衣”,用起來不稱手,很痛苦。有專家毫不留情地批評,對英偉達現有的feature(功能),都不滿意。
樹上葉子,綠了又黃,雲計算廠商給博通公司送出的工單,在排隊。
北風吹來,枝頭秃秃,工單仍在排隊。
阿裡雲和亞馬遜雲的DPU都是2017年釋出的。
事隔多年,有沒有哪家雲廠商跟上了?
衆人搖頭,鴉雀無聲。
亞馬遜雲和阿裡雲則可能會說:“原諒我,沒忍住,笑出了聲”。
非公開産品市場,急需“消息靈通人士”。
巧了,有一家著名的國内雲廠商,跑到客戶那裡宣(吹)傳(牛),DPU不就是智能網卡嘛,我廠2012年就有了,比神龍和Nitro快多了。
懂行的客戶發出靈魂一問,瞬間“社死”現場。
“你家DPU果真如此,那你為什麼不用?”
吹牛牛逼症,出現人傳人的現象了嗎?
又巧了,笑傲江湖的轉身,餘下的DPU産品,要麼停留在“并不怎麼好用”的水準上。
要麼隻摸索着做了個原型出來,停留在驗證概念(Proof of concept)的水準上。
中國男足,笑了笑說,抱歉,打不開局面。
球迷火了:“花了這麼多錢,你想說重在參與?”
太巧了,有人告訴“親愛的資料”,多家公司暗地裡派出員工,天天找阿裡雲的人套話,這個為啥這樣做,那個接口為什麼這麼設計。
晶片的水很深,總會從供應鍊拿到一些“内部消息”,還有一家雲廠商抄了好幾年,像素級别地抄,也沒有抄出個像樣的。
更糟糕的是,規模越做越大,快撐不下去了。
那些有DPU的雲廠商,熱更新,多Happy,疊代速度嗖嗖滴。
那些沒有DPU的雲廠商,可慘了,聽說其中一家,得一個月重新開機一次伺服器。
(曾以為重新開機僅僅是文科生的常用操作,别問我怎麼知道的。)
DPU是朋友圈凡爾賽的神器。
雲廠商發朋友圈,祝友商早日建成世界一流DPU。
意識到友商已經建成世界一流DPU,默默删掉上一條朋友圈。
Fungible公司在朋友圈寫下,2019年,我們定義了DPU。
樓下評論:“公司挺值錢,軟銀願景基金大手筆投了。”
可惜,産品做得一般,對雲計算的了解不到位,無法向其評論豎大拇指。
英特爾坐不住了,釋出了IPU基礎設施處理器,來表達對“DPU”這件事情不同的看法。
希望朋友圈獲得高贊。
雲廠商樓下依次排隊點贊,但内心唏噓不已,DPU的世界,英特爾也不能一聲令下“一統江湖”了。
(十)
投資DPU,至少有兩個“不投”。
一不投,那些不熟悉雲業務的需求的團隊。
二不投,那些對軟硬體融合部分了解得比較粗淺的團隊。
可惜,投資DPU這潭水,沒有水最混,隻有水更混。
DPU身上有兩樁著名的冤案。在沒有DPU之前,SmartNIC(一種智能網卡)先一步問世,給網絡減負。
第一印象最深刻。是以,有些人至今誤認為,DPU就是SmartNIC。
SmartNIC是對網絡進行加速,但解決的問題比DPU小多了。
這時候,ETC自動擡杠機(精)上線了:“你就回答我,DPU最基本的功能是不是一張網卡?”
哪怕是人民群衆,都對新聞裡的“5G”“千兆光纖”耳熟,更别說工業網際網路、車聯網。
對網絡的要求越來越高了,雲計算的網絡帶寬從主流的10Gbps,閉着眼睛,就朝着100 Gbps一路狂奔。
可惜的是,DPU雖然能給網絡幫上忙,但不是智能網卡。
當一個産品已有翻天覆地的變化,我們不妨叫它的新名字。
遺憾的是,沿着智能網卡的道路一意孤行,永遠也到達不了DPU的綠洲。
不過,在“2021年智能網卡峰會”上大談特談DPU,也是特定時期的特色。
所有誤解,皆是雲煙。
“智能網卡是不是DPU的必經之路?先一步造智能網卡,做紮實了再做DPU這種思路,您怎麼樣了解?”
電子工業出版社出版的《軟硬體融合:超大規模雲計算架構創新之路》一書的作者,原UCloud(優刻得)雲計算廠商晶片及硬體研發負責人黃朝波這樣認為:
“站在功能的層次,肯定是從簡入繁的過程,這個說法是對的。”
轉折之後,往往是重點。
“站在實作的角度,這個說法,值得商榷。智能網卡的路子,往往跟着英偉達(NVIDIA)的做法,先NIC,再SmartNIC,再SOC。網絡功能的實作,是定制ASIC(專用內建晶片)。然而,亞馬遜雲和阿裡雲‘沒走尋常路’。從一開始,就隻有CPU來實作,再逐漸加入各種加速。總之,這條DPU的演進之路是,從CPU到DPU。”
正如前文所述,亞馬遜雲和阿裡雲是相同的技術方向,走法卻不同。
你品,你細品:英偉達的技術路線是從定制加速,到通用。這和亞馬遜雲和阿裡雲那種,從通用到加入定制,完全是兩個相反的技術演進方向。
另一個冤案,是按字面意思了解DPU。
果然不能僅看表面。
DPU的全名,叫Data Processing Unit,是資料處理器。自賽博開天辟地,就有資料。CPU不能處理資料嗎?GPU不能嗎?既然不是,那憑啥就你叫資料處理。
CPU和GPU攥緊了拳頭,強忍着扇耳光子的沖動嚷嚷:“今天,誰來都不好使。”
更别說,《資料安全法》砸得門闆咚咚直響:“臨時檢查,聽說,你們這裡有資料,還是底層資料?”
這樣下去,保安拉起黃色警戒帶,場面恐怕要失控。
冤案掩蓋了難點。
DPU是軟體定義硬體,是用硬體适配軟體做加速,想懂DPU,要懂很多東西:晶片,系統軟體,計算機體系結構,雲計算服務,虛拟化。
兩個雲廠商的成功故事,也淡化了難點。
投資人常聽人說:“阿裡雲和亞馬遜雲的DPU都造出來了,留給創(中)業(國)者(隊)的時間不多了。”
2021年,一堆國産DPU公司接二連三拿到融資。
雙手一伸,數一下,雲豹智能、益思芯、合肥邊緣智芯、星雲智聯、青雲半導體、大禹智芯、中科馭數、芯啟源、深存智能等。
DPU創業企業,存在于北京、上海、珠海等地。
公開工商資料上可查的是,網際網路大廠也已刷刷出手:
騰訊投資,雲豹智能。
美團投資,星雲智聯。
位元組投資,雲脈芯聯。
DPU的利好點很多,中國的雲計算市場,是一個多雲的市場。比如電信雲為代表的行業雲出現後,金融雲、物流雲等更多的行業雲逐漸湧現。甚至會有“地方雲”“某官僚部門雲”。頭部的雲計算廠商,不是DPU唯一的客戶。
再者,中國計算機學會專家曾估計,用于資料中心的DPU的量将達到和資料中心伺服器等量的級别,每年以千萬級新增,算上存量的替代,5年總體的需求将突破兩億枚。
這一下就超過獨立GPU卡的需求量。
甚至可以說,一台伺服器可能沒有GPU,但不能沒有DPU。
好比酒店每個房間都要有WIFI,否則前台客服電話就會被打爆。
目之所及,一片形勢大好,欣(浪)欣(費)向(金)榮(錢)。
實際上,小衆且專精的關鍵技術,難以一窺其全貌。
DPU存在的本質,是解決傳統虛拟化應用到雲計算中的諸多問題的。因為早期的虛拟化技術更多用在桌面系統,把傳統的用在桌面上的虛拟化直接搬來用,用起來不順手。
DPU設計的本質和虛拟化緊密相關,是為了解決虛拟化帶來的“糟心事兒”(性能、資源、隔離方面等等)。
簡單地說,虛拟化主要分成四種:CPU虛拟化,記憶體虛拟化,網絡虛拟化,存儲虛拟化。唯有DPU才是從根本上解決傳統虛拟化應用到資料中心裡面存在的缺陷的最後一站。
英特爾VT-x,隻解決CPU虛拟化和記憶體的問題。網絡虛拟化和存儲虛拟化的問題是個曆史遺留問題,一直沒有得到有效的解決,尤其在雲計算場景裡。功能上能實作,但是性能、可擴充性、隔離性老是處理不好。
部分問題解決了,其他的怎麼辦?
DPU來解決“其他的”,也就是說,DPU是解決虛拟化短闆的最後一站。
DPU是瞄準了雲計算裡硬體虛拟化的真實痛點來做的。
這麼強,那DPU到底都牽扯哪些技術?
這麼說吧,因為涉及的技術領域非常之廣,阿裡雲彈性計算負責人張獻濤說:“為了神龍晶片,我幾乎動員了阿裡雲全線的一流專家。”
可能在一些造CPU的人的眼裡,造DPU比較簡單。我CPU這麼複雜都能造,玩轉DPU算降維打擊。
可是,DPU真的好造嗎?
如果不懂虛拟化,不懂系統軟體,不懂雲計算的場景,光懂晶片就想做DPU,那麼可以送出五個黑體大字:無知者,無畏。
DPU是多流派技術的集大成者,有軟體,有硬體,有計算,有網絡,有存儲,有虛拟化,有安全,有加速器,有驅動,有架構,有應用,精粹交織。
也許有一天,DPU會号令CPU。
最後,讓我們為那些真正的技術革命者,起身緻敬,鼓掌歡呼。
畢竟一次局部技術革命,可比一場球賽更帶勁兒。
“帶球隊員距球場小禁區還有幾步之遙,隊友在不遠處大喊,傳中!傳中!守門員面色一動,似乎在猶豫。抓住機會,小角度大力抽射,破門!”
“還愣着幹啥,進球了,鼓掌啊。”
(故事完)
本文作者畫外音:“17000字原創不易,轉發文章後再走。”