編者按
有一些投資人認為,DPU賽道比較雞肋:CPU/GPU同量級的高投入,但市場規模卻不大。并且因為DPU跟用戶的業務休戚相關,很多用戶傾向自研,這進一步導致公開市場規模更加有限。
即使強如NVIDIA,其DPU已經發布兩年左右,目前仍沒有用戶真正大規模采用。這里面存在的問題到底是什么?有沒有破解之道?
這篇文章會對DPU發展過程中存在的問題進行細致分析,拋磚引玉,期待更優的、可大范圍落地的創新型產品出現。
更本質的,DPU是在目前算力困境的大背景下產生的,預示著一個新的算力時代的到來。行業需要更多的技術創新,更好的服務 “東數西算”國家大戰略和數字經濟發展。
1 DPU發展面臨的困境
1.1 芯片研發成本高昂
摩爾定律預示了:芯片工藝的發展,會使得晶體管數量大約每兩年提升一倍。雖然工藝的進步逐步進入瓶頸,但Chiplet越來越成為行業發展的重點,這使得芯片的晶體管數量可以再一次數量級的提升。
在先進工藝的設計成本方面,知名半導體研究機構Semiengingeering統計了不同工藝下芯片所需費用(費用包括了):
28nm節點開發芯片只需要5130萬美元;
16nm節點則需要1億美元;
7nm節點需要2.97億美元;
到了5nm節點,費用高達5.42億美元;
3nm節點的研發費用,預計將接近10億美元。
就意味著,大芯片需要足夠通用,足夠大范圍落地,才能在商業邏輯上成立。做一個基本的估算:
終端場景,(大)芯片的銷售量至少需要達到數千萬級才能有效攤薄一次性的研發成本;
在數據中心場景,則需要50萬甚至100萬以上的銷售量,才能有效攤薄研發成本。
并且,在研發方面的投入,DPU相比CPU、GPU還要更高:
開發DPU芯片,不但需要高性能CPU IP、高性能總線IP,還包括高速PCIe、Ethernet以及DDR/HBM等;
還需要開發非常多的、并且開發難度也非常高的各類加速引擎,如網絡協議處理加速引擎、高性能網絡加速引擎、存儲加速引擎、各類安全加速引擎等;
還需要把IaaS等很多上層的軟件服務融入到芯片的軟硬件方案中,并且需要跟不同用戶的不同場景進行對接。
1.2 多領域場景需求
CPU性能瓶頸之后,傳統在CPU側軟件運行的工作任務,很多會沉淀到硬件去加速。這樣,就需要有一個平臺來承載這些加速,而DPU就是這個承載各類加速的芯片平臺。
CPU通過標準ISA實現軟硬件解耦,CPU引擎也就只有一類,CPU設計工程師可以不用太過關心具體的需求,而只需要關注具體的CPU設計即可。
GPU也通過CUDA以及GPGPU架構實現了軟硬件解耦,GPU引擎也只有一類,并且 GPU的設計工程師也是只需要把重心放在GPU的具體設計中。
跟CPU和GPU的設計相比,DPU有如下兩個難點:
多場景,挑戰更大。相比CPU和GPU的單個引擎類型,DPU的處理引擎(或者說涉及的領域/場景)會有很多,如基礎設施層的虛擬化、網絡、存儲、安全等的處理引擎,以及各類開發庫、文件系統、數據庫、網絡訪問等的處理引擎。
場景的軟硬件解耦難度大。CPU和GPU實現了軟硬件解耦,軟件開發者和芯片開發者可以并行不悖,各自相對獨立的完成工作。而到了DPU的領域加速,要想實現軟硬件解耦非常困難;如果硬是要要采用ASIC的完全定制硬件加速,則是場景和硬件完全緊耦合,開發難度更大,靈活性更低,風險更高。
當然,這里有個矛盾:承載更多領域和場景的功能,可以提升DPU價值;但承載這么多的功能,開發難度卻又非常大。那么,均衡點在哪里?有沒有既可以卸載更多領域和場景的功能,又不提升開發難度的辦法?
1.3 宏觀視角看需求:場景的橫向和縱向差異性
軟件的迭代很快,大概3-6個月;而芯片的迭代很慢,開發周期2年,生命周期5年,合計七年的時間,很難支撐軟件的這么頻繁而長期的迭代。
差異性主要體現在兩方面:
業務場景的橫向差異性,指的是即使在同一領域,不同用戶的業務邏輯仍有差異,甚至同一企業(用戶),其內部也會有很多不同的團隊,在同一領域的業務邏輯也存在差異。
業務場景的縱向差異性,指的是同一用戶/同一團隊業務邏輯的長期快速迭代。
針對業務場景的縱向和橫向的差異,主要有三類做法:
芯片廠家,根據自身對場景的理解,給出的自認為最優化的方案(場景定制方案)。這樣,其實有點越庖代俎,消除了不同用戶業務場景的差異性,也限制了用戶的業務創新。用戶會對芯片廠家形成強依賴關系,這是用戶不愿意看到的。
一些大用戶,自身具備芯片研發實力,根據自身業務需求,定制芯片。但大用戶內部也是由許多不同的小團隊組成,不同團隊業務場景仍然存在差異性,定制芯片也存在技術的、商業邏輯的方方面面的挑戰。
前兩類都是定制的解決方案,這里則是通用的解決方案。“授人以魚,不如授人以漁”,通過通用的設計,確保在每個領域,都能夠實現一定程度上的軟硬件解耦。芯片公司提供“通用”的硬件平臺,讓用戶通過編程的方式實現業務差異化,“讓用戶掌控一切”。挑戰則在于,存在通用的解決方案嗎?通用解決方案的軟硬件如何解耦?
1.4 針對場景定制設計是一件高難度的事情
復雜的系統,軟硬件設計需要解耦。只有通過解耦,才能解放彼此,各自努力又相互協同,最終實現功能強大、性能強勁的系統。
通常,大家都以為,定制設計是性能和效率最優的。但實際上,卻不是這樣:
定制設計,沒有冗余,理論上是最極致的性能。但因為定制設計是場景跟硬件設計完全耦合,硬件開發的難度很高,難以實現超大規模的定制設計。
理論上來說定制設計的資源效率是最高的,但由于定制設計必然覆蓋的場景較小,芯片設計為了覆蓋盡可能多的場景,不得不實現功能超集。實際的功能利用率和資源效率反而不是最高。
定制設計功能完全確定,難以覆蓋復雜計算場景的差異化要求。差異化包含兩個方面:橫向的不同用戶的差異化需求,縱向的單個用戶的長期快速迭代。
即使同一場景,不同芯片廠家的定制設計引擎架構依然五花八門,毫無生態可言。
因此,可以認為,定制設計是一項非常高難度,并且“吃力不討好”的事情。特別是在云和邊緣計算等,對靈活可編程能力有著極高的要求的,復雜場景,定制設計更是難有用武之地。
1.5 價值和定位不高
目前,對于DPU的定義,行業還存在一些爭議,大家對DPU的功能定義依然沒有定論。那么DPU的市場規模到底有多少?我們以中國市場為例:
如果認為DPU就是加速卡:那么則是完全碎片化的市場,每個領域的加速市場規模大概在5億RMB左右。因為碎片化,隨著其他整合方案越來越流行之后,加速卡未來的市場則有可能會快速萎縮。
如果定位SmartNIC:智能網卡只在一些純網絡加速的場景有用,市場規模大概50億RMB左右。而計算類的則是相對綜合的場景,不但需要網絡,還需要存儲、虛擬化、安全等場景加速。
如果定位基礎設施處理器IPU(基本等同于DPU,不同的命名方式):市場規模在500億左右,這就比較符合市場規模預期。但即便如此,IPU的價值定位仍然要比CPU和GPU低,而研發資源投入和風險卻又比CPU和GPU高。這一里一外的差距,即是DPU發展最大的挑戰。
針對DPU的功能定位,目前形成共識的說法是:DPU作為CPU和GPU的輔助,負責一些數據類處理的加速。這樣的定位,則成了DPU發展的天花板和魔咒。
1.6 用戶的訴求:支撐自身的業務創新
互聯網行業,目前有很多客戶開始自研芯片,這是一個重要的趨勢:
很多人認為,互聯網公司為了構建自己的護城河,開始構建一套“封閉”體系。
我更多的是認為:隨著互聯網云和邊緣計算的發展,上層的軟件業務對底層硬件要求越來越高。而傳統的芯片公司,雖然有一些先進的技術,但局限于閉門造車,這些技術并沒有為客戶帶來新的更大的價值,反而在一些方面,約束了客戶的價值發揮。
這些矛盾,逼迫著一些有實例自研的用戶,不得不“自己動手,豐衣足食”,開始了自研之路。
那么,“想喝牛奶,真的要自己養牛嗎?”用戶的訴求到底是什么?這里我們深入分析一下:
更高性能/成本比。性價比是永恒的話題,都希望最低廉的成本下提供最高的性能價值。
差異化。toB市場,互聯網云計算公司需要有足夠理想的硬件平臺,能夠支撐自身業務的差異化,也能夠支撐云計算提供差異化的價值給到云的用戶(也即用戶的用戶)。
可迭代。軟件的迭代很快,而為了延遲設備的生命周期(也是一種降成本的手段),則需要硬件能夠盡可能支持軟件服務的更長期迭代。
快速業務創新。用戶的業務是核心競爭力,而研發芯片不是。用戶需要的是能夠自己掌控一切的開發平臺,來實現業務創新,來增強自身的核心競爭力。
如果存在通用的芯片方案,能夠滿足上述這些需求,用戶不會產生平臺依賴,不對用戶自身業務的核心競爭力構成威脅,并且功能更加強大,性能更加強勁,價格更具有顯著優勢,客戶還需要自研嗎?
人類發展的過程,就是從“男耕女織”到“手工作坊”,再到流水線的“工業化大生產”,再到現在的“全球化大分工”。從更宏大更長期的視角看,隨著時間推移,很多技術會沉淀,云計算這樣的互聯網底層技術也不例外。互聯網整個技術體系會繼續枝繁葉茂,并且會持續的、更精細化的分工。而底層的芯片,唯有創新,才能真正幫助客戶,成就客戶。
2 跳脫束縛,尋找更大的機遇
2.1 通過增強功能來覆蓋更多場景
我們站在CPU工作任務卸載到硬件加速的視角來看:
階段0:CPU性能足夠,由于其靈活可編程能力很好,是數據中心處理器當仁不讓的第一選擇。
隨著CPU性能提升緩慢,有一些性能敏感的任務需要加速。于是有了各類加速器(卡),這個時候都局限于某一個特定任務的加速,各個加速方案是完全獨立的孤島。網絡加速是比較特殊的一個,因為其剛好處在整個服務器的I/O路徑上,價值更大,應用領域也更多。
更進一步的,虛擬化的底層基礎設施,如虛擬化管理、網絡(包括設備虛擬化和網絡服務)、存儲(包括設備虛擬化和存儲服務)、安全等,都可以從CPU側卸載到硬件加速。
更進一步的,全棧卸載。只有整個系統堆棧中的任務足夠性能敏感(占用非常多的CPU資源),并且大范圍的被部署,則此任務就適合被卸載到硬件加速。其性能/成本比的優化效果也更加立竿見影。
但即便如此,這個承載了各類加速的平臺,即DPU,其功能和價值還依然不夠。它,需要跳脫束縛,自成一體。
CPU、GPU和DPU,既相互協作,又相互競爭。“得入口者得天下”:
傳統觀點認為,DPU是CPU/GPU的任務卸載加速。
按照軟硬件融合演進的觀點:DPU/IPU則是數據中心算力和服務的核心,而獨立CPU/GPU則是DPU的擴展。
我們詳細講解一下:
小系統。DPU自身是包含CPU、GPU、FPGA、DSA、ASIC等各種處理引擎的一個超大的SOC。本身就能處理所有的任務。在一些業務應用層算力要求不高的情況下,最小計算系統的獨立的DPU就能滿足計算的要求。
中系統。DPU+CPU。在一些場景,業務應用層有更高的算力要求,或者必須業務和基礎設施分離。這樣,DPU+CPU的中等計算系統能夠滿足此類場景需求。
大系統。DPU+CPU+GPU。例如AI訓練類的場景,例如一些應用需要加速的場景,并且需要業務和基礎設施分離。這樣的時候,DPU+CPU+DPU的最大就成為必須的選擇。
最后,上圖是Intel認為的數據中心未來架構圖,在這張圖中,IPU成為數據中心中最關鍵的處理器:
后臺的存儲服務器和加速器池化服務器采用的是DPU小系統;
通用計算服務器采用的是DPU+CPU的中系統;
AI服務器采用的是DPU+CPU+GPU的大系統。
2.2 通過通用可編程能力來提升功能覆蓋
我們以網絡交換芯片為例。網絡交換芯片通常是一個緊耦合的ASIC芯片設計,隨著需要支持的網絡協議和功能越來越多,ASIC芯片并不都能一一滿足用戶需求。
有很多用戶(特別是巨頭用戶),都有非常多的創新的和自定義的協議及功能需求。如果把需求反饋給芯片廠家(如博通、思科等),它們再在新一代的芯片研發中心去支持(并且,是否支持新的協議或功能還需要內部決策,有可能一些認為不太重要的協議或功能就無法得到支持),然后等到用戶更新到自己的軟件服務中去,至少需要2年時間。
Intel收購的Barefoot提供了可編程交換機,在沒有軟件編程的情況下,交換機是沒有具體功能的。通過編程,用戶可以實現自己想要的任何網絡協議和功能的支持,甚至實現一些用戶自定義協議。并且,這種可編程能力是在ASIC級別的處理引擎上實現,也即能達到ASIC級別的性能。大家把這種網絡可編程的ASIC稱之為網絡DSA。
同樣的,其他各種領域和場景都可以采用類似的設計,來實現一定程度的功能可編程,來提升硬件所能覆蓋的功能范圍。
2.3 超異構計算,更充分的利用更加龐大的晶體管資源
芯片工藝帶來的資源規模越來越大,所能支撐的設計規模也越來越大,這給架構創新提供了非常堅實的基礎。我們可以采用多種處理引擎共存,“專業的人做專業的事情”,來共同協作的完成復雜系統的計算任務。并且,CPU、GPU、FPGA、一些特定的算法引擎,都可以作為IP,被集成到更大的系統中。這樣,構建一個更大規模的芯片設計成為了可能。這里,我們稱之為“超異構計算”。如上圖所示,超異構指的是由CPU、GPU、FPGA、DSA、ASIC以及其他各種形態的處理器引擎共同組成的超大規模的復雜芯片系統。
超異構計算本質上是系統芯片SOC(System on Chip),但準確的定義應該是宏系統芯片MSOC(Macro-System on Chip)。如果不能認識到超異構和傳統SOC的區別,那么則無法把握問題本質。
站在系統的角度,傳統SOC是單系統,而超異構宏系統,即多個系統整合到一起的大系統。傳統SOC和超異構系統芯片的主要區別和聯系如下表所示。
從DPU持續擴展,成就廣義的DPU:
DPU成為一個靈活的SOC,既可以作為CPU/GPU的助手,也可以獨立工作。就像2.1節提到的DPU小系統,但這個SOC系統規模較小,價值仍有待提高。
通過超異構,進一步提升DPU的系統規模,讓DPU能夠覆蓋更多復雜計算場景。
自成一體,成就更大的價值。
當然,這個時候,DPU的定義已經無法覆蓋這個功能強大的處理器了,稱之為超異構處理器HPU更合適一些。
2.4 多領域多場景的挑戰,唯有開源開放
可支持的領域和場景包括:
網絡領域,包括VPC、EIP、LB、網關等場景;
存儲領域,包括本地存儲、分布式塊存儲、對象存儲、冷存儲等場景;
安全領域,包括網絡安全、數據加密、零信任、可信計算等場景;
虛擬化領域,包括計算機虛擬化管理、容器虛擬化管理、監控、設備模擬、運行時和熱遷移等具體場景;
甚至,可以包括應用層的各類加速領域和場景。
這些領域和場景,每一個都涉及到非常強大的既有生態,已經有若干得到行業大范圍使用各類開源(或閉源)軟件。沒有任何一家芯片功能能夠“獨占”這些生態,能做的,只有去擁抱既有生態。對芯片公司來說,要做的是:把傳統硬件定義軟件的模式,徹底的變成軟件定義硬件的模式。
另一方面,也需要軟件架構和開放模式的改變,軟件需要原生支持硬件加速。在軟件設計的時候,控制平面和計算平面分離,可以支持計算平面既可以在軟件運行,也可以下沉到硬件運行。真正實現“軟件定義一切,硬件加速一切”。
講完了單個領域和場景的視角,我們再回到整體系統的視角。
通常,我們是通過一些虛擬抽象層把硬件平臺的不一致性“烙平”,也即把差異化的硬件屏蔽,提供給上層軟件一致性的訪問接口。隨著性能需求的進一步提升,虛擬化都完全沉淀到硬件加速。硬件平臺的接口則直接暴露給上層的VM和容器。軟件運行平臺需要高可用,需要硬件支持軟件在不同平臺遷移,這樣就需要完全一致的硬件平臺。
這樣就會形成一對新的矛盾:
站在芯片廠家的視角,期望的是,一顆芯片,能夠被眾多廠家采用。也即是自己的硬件平臺,很多用戶都采用。甚至,私心一點,希望用戶捆綁到自己私有的架構平臺上,讓用戶形成依賴。
站在用戶的視角,一方面是商業方面(不形成特定廠家依賴)的考慮,一方面是技術方面(即上面提到的跨硬件平臺遷移,需要硬件一致性)的考慮。用戶需要的是一致性的硬件平臺。即所有芯片供應商提供給自己的是一個一致性的平臺。甚至可能的話,是自己軟件定義的硬件平臺。
因此,最終的結果,是芯片廠家和一些主流的客戶一起,形成行業共識,即形成一個開源開放的行業生態。
基礎設施程序員開發套件 (IPDK) 是Intel發起的一個開源的、供應商無關的驅動程序和 API 框架,用于在 CPU、IPU、DPU 或交換機上運行的基礎設施卸載和管理。IPDK在Linux中運行,并使用一套完善的工具(如 SPDK、DPDK 和 P4)來啟用平臺中的網絡虛擬化、存儲虛擬化、工作負載供應、信任根和卸載功能。2022年3月15日,由Intel、Redhat和F5等發起Open Programmable Infrastructure Event,邀請了產業界的相關公司共同探討IPU/DPU軟件生態建設。這些事件,可以認為是行業巨頭在力推開源開放的整體生態,并試圖在其中占據主導作用。
更長遠的看,開源開放的生態是行業發展的大事情。在可預見的未來,這件事情會徹底改變IT行業的生態邏輯。國內的廠商,不管是做DPU的,還是做CPU、GPU以及做AI芯片的,大家都應快速跟進、積極參與甚至引領這個開放可編程平臺和生態。雖然目前還只聚焦在DPU領域。
3 一些結論
DPU的未來發展如何?基于軟硬件融合理念,這里給出幾個關于未來五年行業發展的推斷,與大家探討:
DPU是超異構計算時代來臨的一個起始;
未來所有(大)芯片都會是超異構芯片;
超異構和SOC是兩個完全不同的概念;
超異構大芯片需要足夠通用,而不是專用;
超異構需要開源開放的生態;
要想駕馭超異構的超大系統規模,就需要軟硬件融合。
審核編輯:湯梓紅
-
芯片
+關注
關注
455文章
50816瀏覽量
423630 -
cpu
+關注
關注
68文章
10863瀏覽量
211768 -
NVIDIA
+關注
關注
14文章
4986瀏覽量
103058 -
gpu
+關注
關注
28文章
4740瀏覽量
128949 -
DPU
+關注
關注
0文章
358瀏覽量
24181
原文標題:DPU發展面臨的困境和機遇
文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論