【伺服器加速運算裝置的基本概念】伺服器加速運算裝置包含了多種型態,既有I/O介面卡形式的智慧型網路卡與資料處理器(DPU),也有SSD形式的智慧型SSD,共通特色是裝置上內含了嵌入式處理器、記憶體或加密晶片等運算元件,可為伺服器提供額外的運算資源,加速整體處理效能。圖片來源/Nebulon、Samsung,iThome整理。

長久以來,x86中央處理器統治資料中心運算架構的局面,正持續鬆動中。

憑藉著伺服器虛擬化技術與軟體定義化架構,x86處理器可以包攬資料中心絕大多數應用的運算工作,Intel也陸續將更多功能納入x86指令集,試圖讓x86處理器承擔更多類型的運算負載。

但隨著企業應用的擴展,x86處理器受先天架構的限制,對於許多應用領域的運算工作已力有未逮,必須依靠其他類型處理器的輔助。

過去10多年來,x86處理器已逐步將涉及大量平行運算或浮點運算的可視化、AI、深度學習等應用,讓位給獨立的圖形處理器(GPU)。到了今日,以智慧型網路卡(SmartNIC)與資料處理器(Data Processor Unit,DPU)為代表的新興加速運算裝置,又企圖從x86處理器手上搶走更多的運算工作,帶動新一波伺服器硬體加速風潮。

伺服器加速運算裝置的基本概念

事實上,不論是智慧型網路卡,資料處理器(DPU),儲存處理器(Storage Processing Unit,SPU),或是智慧型SSD(Intelligent SSD)/運算型儲存裝置(Computational Storage Device,CSD),其實,都可以視為同一類型的產品,只是隨著廠商的側重點差異,或是產品封裝部署的方式,而採取不同的名稱。

這些產品雖然型態相當多元,如智慧型網路卡是網路卡型式,DPU與SPU通常是網路卡或I/O介面卡形式,智慧型SSD則是SSD形式,但基本目的都是相同的,我們把這些產品統稱為「伺服器加速運算裝置」,來涵蓋這些產品共通的兩大特性:

首先,這些產品都是搭配伺服器的附加模組,用於「輔助」伺服器,而非獨立運作。

其次,這些產品輔助伺服器運作的方式,都是透過裝置上內含的嵌入式處理器與記憶體,來為伺服器提供額外的「運算資源」。

也就是說,儘管這些產品型態各異,但共通的目的,都是為伺服器提供「輔助用」的「額外運算資源」,扮演了輔助伺服器CPU的硬體加速器角色。

用戶端的應用程式,可透過專屬的API或底層平臺,將特定的運算負載,交由這些裝置上的嵌入式處理器來執行,藉此卸載伺服器的CPU運算負擔,進而達到改善整體效能的效果。

更進一步,這些加速運算裝置上內嵌的處理器,都屬於「可程式化」處理器,如Arm等嵌入式處理器、客製化的網路處理器,或是FPGA晶片等,因此,它們可依應用需求、彈性地調整運算功能,而不局限於特定運算。所以,我們又可以說這類裝置是「通用型」的加速運算裝置,或是藏在x86伺服器內的「超迷你伺服器」 ,具備了極高的應用靈活性。

殊途同歸的3條發展路線

如前所述,伺服器加速運算裝置的型式相當多元,事實上,這些產品是多家廠商各自基於不同的目的而推出,但最後殊途同歸,具備了相同的伺服器加速運算特性。

如結合了網路卡與可程式化嵌入式處理器的智慧型網路卡,主要推動者是Intel、Broadcom,以及Mellanox(現已併入Nvidia)等網路卡大廠,最初他們這麼做的目的,是為了改善網路傳輸的架構、效能與管理靈活性,嘗試在網路卡上,搭載可程式化的嵌入式處理器與記憶體,從而形成這樣的產品。

相較於一般搭載ASIC晶片,只能處理特定運算工作(也就是乙太網路的傳輸與控制)的網路卡,智慧型網路卡可以處理更複雜的運算工作,除了網路傳輸控制相關功能,也能以軟體方式導入新的協定與運算功能,這也是智慧型網路卡之所以「智慧」所在。

至於DPU與SPU的推動者中,許多是針對儲存應用而來的新創廠商,如Fungible、Nebulon、SoftIron等,最初的目的,是發展出能夠加速I/O處理的儲存控制裝置,將可程式化的嵌入式處理器與記憶體,以及前、後端I/O介面結合在一起,使其同時兼具了儲存控制器、網路卡、HBA卡與磁碟控制器等功能,相對而言,這類產品往往更強調儲存管理與I/O加速應用。

而智慧型SSD/運算型儲存裝置,則主要是由SSD廠商所推動,如三星等,他們最初的目的則是擴展SSD的功能,在SSD上搭載可程式化嵌入式處理器與記憶體,成為一種「智慧型SSD」,藉此為伺服器提供額外的運算資源,用於各式各樣的運算工作與加速功能。

雖然前述這幾種加速運算裝置的出發點各有不同,產品型態、部署方式,以及訴求的應用重點也有異,但同樣都具備了可程式化處理器,能視需要執行不同運算工作的特性,藉此分攤伺服器的運算負擔。

有待推廣的未來發展

目前正處於加速運算裝置的興起時期,已有十多家一線大廠與新創廠商投入這個領域,廠商與產品數量正迅速增加中。

例如,在智慧型網路卡領域,目前有Intel、Xilinx、Broadcom、Nvidia等大廠,以及Pensando、Fungible等新創廠商參與;在DPU與SPU領域,則有Fungible、Nebulon、SoftIron與Pliops等新創廠商;智慧型SSD領域,則有三星與NGD Systems等,產品與廠牌已相當豐富,選擇也十分多元。

但是,在推廣與應用上,無論哪一種類型的加速運算裝置,從過去到現在的發展,都面臨了幾項障礙,以致未能打開局面。

首先,讓加速運算裝置發揮作用的關鍵,在於軟體的整合。用戶端的應用程式或應用平臺,必須透過加速運算裝置的API與程式庫,才能使用這些裝置上的處理器資源,且不同的加速運算裝置供應商,各有各的API與開發工具。

這也意味著,加速運算裝置使用門檻相當高,只有開發、整合能力較強的用戶,才能有效運用加速運算裝置,一般用戶目前仍難以發揮這些裝置的效益。

第三,市場影響力最大的大型雲端服務商,雖然是目前最主要的加速運算裝置用戶(以智慧型網路卡為主) ,但是都更傾向於自己開發需要的智慧型網路卡硬體。

目前三大公有雲服務商——AWS、微軟Azure與阿里雲,都已有自身開發的智慧型網路卡類型裝置,如AWS在Nitro架構中使用的Nitro卡,阿里雲在X-Dragon架構中使用的MOC卡,微軟也在Project Catapult計畫下,為Azure開發了可程式化硬體加速卡。長期而言,主要公有雲服務商自製加速運算裝置的趨勢,勢必也會影響到這類產品的推廣與普及。

目前看來,要讓加速運算裝置的應用能夠更為普及,關鍵恐怕在於主要系統應用平臺廠商,如微軟、VMware等,能否提供直接的功能支援,才能藉此大幅降低加速運算裝置的應用門檻。

不過,加速運算裝置的應用若能進入普及階段,將會帶給伺服器運算架構翻天覆地的變化。

因為,各式各樣的高負載運算工作,都將被卸載到這些裝置上執行,而x86中央處理器原本的重要性與影響力,有可能會隨之大減,此外,這樣的態勢一旦成形,連帶也會給伺服器的應用,以及處理器市場的生態,帶來與今日完全不同的光景。

熱門新聞

Advertisement