雷峰網按:2021年12月9日-2021年12月11日,2021第六屆全球人工智慧大會(GAIR 2021)於深圳正式召開。歷經五年,見證數次潮水的轉向,成為目前為止粵港澳大灣區人工智慧領域規模最大、規格最高的學術、工業和投資領域跨界盛會。
GAIR 2021 “積體電路高峰論壇:國產高階晶片之路”,集聚來自學術界、產業界和投資界的15位大咖,探討了國產高階晶片的實力以及RISC-V帶給中國晶片的機會。
大禹智芯CTO王昕溥帶來了《從DPU看DSA發展》主題分享。作為國內首家專注於提供 DPU 產品和服務的公司,大禹智芯團隊有著深厚雲計算場景的軟硬體開發經驗。本次演講,王昕溥從軟體人員的角度,分享了當年DSA的經驗,以及對DPU發展的思考。
以下是王昕溥在GAIR2021上的演講內容,雷峰網對其進行了不改變原意的編輯整理:
與DSA的第一次接觸
與DSA的第一次接觸可以追溯到大約十年前,某網際網路頭部企業的底層技術架構剛開始建設就遇到在國內沒有先例的情況。當時的網際網路還處於較早期,所有的網站還是HTTP的,這導致涉及到交易的業務很容易被攻擊,為了提高安全性,全站HTTPS的網站因此而建立。當時在國內這是先例,也因此遇到了別人沒有遇到的問題。HTTPS建立連線過程中的非對稱加密演算法會消耗大量的CPU計算資源,這是我們當時面臨的主要挑戰。
早期網際網路企業資料中心閘道器用的是國外廠商的專用裝置,它們在解決RSA演算法方面效能表現優良,但也存在一些缺點:第一個是擴充套件性很差,遠遠跟不上網際網路業務的發展速度;第二是成本非常高,不利於後續的規模化擴充套件。
在面對這個問題時,第一步的解決方案是採用標準的方法,即用標準的X86伺服器執行軟體,透過這種方式替換掉硬體裝置。實際效果比較好,可以用四臺伺服器替換掉一臺專用裝置,擴充套件性提高很多。但隨著業務規模的不斷髮展,這樣的架構就遇到了效能瓶頸,隨之將導致機器規模增長過快,這從成本和運維工作量上都是不可接受的。
所以當時找到頭部晶片廠商定義了一個新的晶片,生產了一個新的板卡,這就是後來的QAT。在晶片廠商定製晶片的基礎上,我們做了大量的軟體開發工作,從最上層用的NGINX到OpenSSL庫,把演算法函式拆成完全非同步化,才能把任務分發到下面的硬體上去。同時OpenSSL庫本來是一個單執行緒的庫,但因為硬體是個多核產品,所以需要將其改成並行化的庫,才能把整個硬體的效能完全發揮出來。再往下是板卡本身的驅動層,大家一起在這條路徑上做了大量的軟體開發工作,最終圓滿完成任務。
雖然當時我們沒有從晶片視角看待這個問題,更多是軟體人員的視角、軟硬體結合的視角來理解,但從今天的視角看,這個從需求到定義再到上線的完整過程,就是典型的專用領域晶片的案例。
硬體,軟體,演算法的相互促進
革命性的新硬體對計算機具有帶動性發展作用,如CPU、多核、多佇列到後來的IOMMU。同時,IDC頻寬則從百兆向千兆、萬兆到現在的100G發展。這些發展隨之而來給軟體帶來非常大的挑戰:如何把硬體的效能發揮到極致就是軟體人員要做的事情。
在我們剛工作的時候,網路處理方面有一個很著名的問題——C10K,就是“怎麼在一臺伺服器上處理併發10000個連線”。這在當時帶動了軟體的一股潮流,主要代表就是用事件驅動模型代替執行緒池模型。幾年後就變成C10M的問題,規模又有了1000倍的增長。而當中最典型的技術如DPDK,使用更多直接操作硬體的資源,軟體也在不斷地更新。到這個階段,僅靠純軟體已經沒辦法完成目標,所以業界陸續出現透過硬體加速實現成熟演算法的解決方案,如網絡卡、硬體加速的晶片,透過硬體化實現加密解密、拆包解包、拆封裝、解封裝等功能。
但仍然有一些無法實現成功硬體化的例子,比如說TCP/IP協議。其實,有不少人在做TCP/IP協議硬體化方案——TOE方案,但因為方案無法固定下來,一直沒有在這方面形成潮流。一方面是因為TCP/IP協議的複雜度,而主因則在於人們還在不停地改善它,甚至想要推翻它。
晶片領域和計算機架構體系有很多定律在說類似的事情。比如說貝爾定律——每隔十年就有一波新技術的創新;牧村定律——每隔十年晶片的研發都會在標準化和定製化之間波動。而我們今天還面臨一些更復雜的情況,例如國產化的浪潮,這也是幾十年的機遇,在這個過程中,需要我們更多地自主掌握關鍵技術,共同推進國產化浪潮的前進。
之前我分享的例子,在當時對業界產生了一定的影響。最直接的影響是專用裝置開始退出網際網路公司的IDC市場,轉向專注於服務銀行和企事業單位,並且在2019年進行軟體服務轉型。OpenSSL庫的patch被社群所接受,變成專用的加密演算法offload介面,晶片廠商也繼續豐富和增加它的效能,現在已經不是專門的晶片和板卡,而是被整合在CPU裡面,逐漸變得通用化。
為此,對於專用領域晶片,我們認為有幾個未來的發展方向:
- 一是從實際需求出發,由場景使用方的客戶提出定製需求,晶片等硬體廠商按照客戶需求定義、設計和生產晶片,加快晶片商業化落地的速度;作為客戶來說,只要能夠符合需求,就一定會投入使用,這對硬體研發來講是一個很大的保證。
- 二是重視軟體,發展生態。從正面說,因為我們進行了大量的軟體開發工作,才能夠將硬體使用起來。從反面來講,沒有軟體研發能力,即使已經有了成功案例,仍然可能沒辦法使用一些專用的晶片或者硬體。
- 三是現在做專用領域晶片都會面臨的問題,是適用面定義寬窄之間的選擇。以FPGA為例,網際網路公司曾經設有大規模團隊做FPGA最佳化AI演算法,但市面推出新的GPU後,團隊就被解散了,這也是專用領域芯片面臨的一個典型問題:因為應用領域比較窄,可能技術紅利期短,可能整體的效益少,也可能還趕不上研發投入,最後沒有實現大規模應用。
對DPU的一些思考
而說了以上幾點後,接下來我講一下大禹智芯為什麼要做DPU。DPU是非常新的東西, 它是專注於對流動資料進行處理的晶片。大禹智芯成立於去年6月份,當初下決心做DPU的時候,聽說和了解DPU的人還很少。作為雲計算出身的團隊,我們是國內最早嘗試DPU產品的一批人,DPU廠商定義晶片的時候都跟我們進行了很多的探討。但當我們拿到產品後發現使用效果遠未達到預期甚至不可用,主要原因就是上面定義的軟體架構是硬體公司想象出來的客戶需求,不是我們想要的。
鑑於上述過往的經歷,大禹智芯選擇從使用者的角度,從上到下定義DPU產品,缺少什麼環節就補足什麼環節,缺少軟體就做軟體,缺少硬體就做板卡,如果沒有合適的晶片就定義合適的晶片。因此,在我們自研晶片還沒有出來之前就推出了兩代的自研DPU產品,透過這兩代產品為晶片定義積累場景和經驗,同時為不同場景使用者的使用創造和提供價值。
另外,DPU的關鍵還在於軟體。作為硬體,它對軟體的依賴要超過很多硬體產品。DPU不同於如網絡卡的硬體,後者驅動對上就能用,上層的事情都被驅動和協議棧作業系統遮蔽掉。而DPU會承載使用者大量的業務需求,如雲計算方面的網路虛擬化、儲存虛擬化、對伺服器的管理和安全管控等任務,所以DPU對軟體要求很高。
另外,得益於晶片產業上下游的發展和提升,DSA晶片的門檻在降低,專用領域的晶片設計難度相比通用晶片較低。把晶片定義準確,再依靠上下游力量,相關技術公司是完全有能力研發出一款成功的專用領域晶片。
從市場需求來看,網際網路上的頻寬每六個月翻一番,遠遠快於摩爾定律CPU每18個月翻一番的速度,而且現在摩爾定律也不能跟上這個速度,市場亟需DPU這種負責處理流動的資料讓網路加速的產品,DPU也可以理解為應時代所需而出現的創新型硬體。
我們認為,DPU將會扮演更重要的角色,像CPU和GPU一樣是開創時代的創新型硬體,並長久地發展下去。DPU不僅侷限在大規模雲計算和資料中心,雲計算也不是DPU唯一的場景,未來的5G和邊緣計算領域也同樣重要,和雲計算一起並列的三大場景,DPU一定會有更多的市場機會。
在最後,針對於十年前的案例,我做一些補充。當年在找晶片硬體廠商合作前,市面上有一款專用的現成產品可以滿足業務場景的需求。但是因為價格太高,無法大規模採購,才選擇了合作定義新的晶片。這是一個產品滿足需求,但最終卻沒有進入市場的例子。
而之前跟晶片廠商合作的QAT在這兩年也不再被網際網路大廠所使用,不是因為QAT效能滿足不了需求,而是因為需求已經消失。在過去的Web端時代,瀏覽器產生很多新建請求,尤其是新建請求握手時會有大量演算法需求。但在如今的移動端時代,手機APP僅需維持一兩個長連線,無需太多新建請求。而新版的SSL協議,演算法要求也有很大變化,對RSA非對稱加密沒那麼多需求, CPU就可以滿足對應需求。這時候QAT發揮的作用就大大降低。
當下是一個非常好的時代。從牧村定律來看,專用晶片都開始蓬勃發展;大家希望能夠出現一款貝爾定律中開啟下一個時代的硬體產品,這可能是5G,或是別的產品,我們也堅信會出現這樣的硬體。在如今大的產業背景之下,國產化也迎來了新開端,在結合各種定律和週期,讓做軟體、做應用的人也積極加入晶片行業的隊伍中,一起為國產晶片的發展做一些自己的貢獻,這也必將助力國產化之路新浪潮的形成。