掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
IPDK是一個(gè)開(kāi)源的、與廠商無(wú)關(guān)的驅(qū)動(dòng)程序和API框架,可管理由CPU、IPU、DPU或交換機(jī)構(gòu)建的基礎(chǔ)設(shè)施。DPU/IPU應(yīng)該是下一個(gè)十年的可編程重要硬件載體,IPDK能否成為DPU/IPU的通用軟件平臺(tái)呢?

DPU/IPU持續(xù)爆火,引得越來(lái)越多的玩家相繼入局,除英偉達(dá)、英特爾和AMD等國(guó)外廠商,阿里、騰訊、銳捷、浪潮、芯啟源、星云智聯(lián)等本土廠商也持續(xù)發(fā)力。
但目前市場(chǎng)上DPU/IPU軟件生態(tài)非常復(fù)雜,存在框架多、接口雜、開(kāi)發(fā)難度高等問(wèn)題。對(duì)最終用戶(hù)和供應(yīng)商來(lái)說(shuō),需要一個(gè)統(tǒng)一的開(kāi)放API來(lái)支持業(yè)務(wù)應(yīng)用開(kāi)發(fā)和基礎(chǔ)設(shè)施管理。
IPDK應(yīng)運(yùn)而生,它屏蔽了底層硬件的差異,可以支持任何定義了相關(guān)接口類(lèi)型的設(shè)備,并給上層應(yīng)用提供一致性的訪(fǎng)問(wèn)接口。IPDK將管理基礎(chǔ)設(shè)施的所有功能進(jìn)行抽象封裝,形成了“接口三明治”(如下圖)。“三明治”底層對(duì)接SDK驅(qū)動(dòng)程序、編譯器后端等,頂部定義了一組RPC接口以支撐不同的應(yīng)用場(chǎng)景。
IPDK在Linux中運(yùn)行,使用SPDK、DPDK和P4等成熟的開(kāi)源工具,實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化、存儲(chǔ)虛擬化、工作負(fù)載調(diào)配、信任根和平臺(tái)中的卸載功能。IPDK為提高性能、優(yōu)化資源和確保基礎(chǔ)設(shè)施的安全提供了一個(gè)通用平臺(tái)。另外,IPDK可以抽象出硬件的壓縮和加密功能,以及底層的存儲(chǔ)加速。
IPDK包括兩大開(kāi)放接口,一種是Infrastructure Application Interface(基礎(chǔ)設(shè)施應(yīng)用接口),另一種是Target Abstraction Interface (TAI)(目標(biāo)設(shè)備抽象接口),這個(gè)概念有點(diǎn)像SDN里的北向接口與南向接口。
基礎(chǔ)設(shè)施應(yīng)用接口
基礎(chǔ)設(shè)施應(yīng)用接口基于以下兩個(gè)設(shè)計(jì)原則:
基礎(chǔ)設(shè)施應(yīng)用接口也可以被認(rèn)為是DPU/IPU容器的北向接口,代表IPDK中支持的不同RPC接口,其中包括:
基礎(chǔ)設(shè)施應(yīng)用接口的示例實(shí)現(xiàn)如下圖所示:
目標(biāo)設(shè)備抽象接口
目標(biāo)設(shè)備抽象接口 (TAI) 是為基礎(chǔ)設(shè)施硬件設(shè)備定義的一個(gè)抽象模型,基礎(chǔ)設(shè)施應(yīng)用程序可以通過(guò)TAI管理調(diào)度設(shè)備資源。
目標(biāo)抽象接口基于以下三個(gè)設(shè)計(jì)原則:
目標(biāo)設(shè)備抽象接口由以下部分組成:
IPDK主要的應(yīng)用場(chǎng)景包括:
IaaS:實(shí)現(xiàn)跨虛擬機(jī)、容器和裸機(jī)的虛擬網(wǎng)絡(luò)、存儲(chǔ)和加密技術(shù)等;
IaaS場(chǎng)景下的網(wǎng)絡(luò)虛擬化
IaaS場(chǎng)景下的存儲(chǔ)虛擬化
IaaS場(chǎng)景下的主機(jī)虛擬化
PaaS:實(shí)現(xiàn)容器網(wǎng)絡(luò)、代理服務(wù)等;
PaaS場(chǎng)景下的CSI & CNI
PaaS場(chǎng)景下的Calico Running on IPU
PaaS場(chǎng)景下的Envoy on IPU
Inline Acceleration:實(shí)現(xiàn)防火墻、IDS、網(wǎng)絡(luò)遙測(cè)、5G/無(wú)線(xiàn)基礎(chǔ)設(shè)施、AI/ML等。
從前文我們也可以看出,IPDK與DOCA非常相似。
DOCA(Data Center Infrastructure-on-a-Chip Architecture)是英偉達(dá)專(zhuān)為BlueField DPU打造的一個(gè)高度可編程的SDK開(kāi)發(fā)平臺(tái)工具,為開(kāi)發(fā)者提供簡(jiǎn)單開(kāi)發(fā)接口,程序員可以利用 API、庫(kù)和示例代碼來(lái)創(chuàng)建和加速應(yīng)用程序,從而豐富DPU的應(yīng)用開(kāi)發(fā)生態(tài)。英偉達(dá)的專(zhuān)家將DOCA類(lèi)比為數(shù)據(jù)中心服務(wù)器領(lǐng)域的CUDA。
IPDK與DOCA相比,其獨(dú)特之處在于它是一個(gè)面向DPU/IPU 等硬件進(jìn)行抽象封裝的公共開(kāi)發(fā)套件。由于一致的抽象性,它可以在任何硬件上運(yùn)行,除英特爾的IPU外,還包括英特爾 Xeon服務(wù)器及其他廠商的DPU。例如,Marvell展示了他們?cè)谄銸cteon DPU上運(yùn)行的IPDK。但目前IPDK的生態(tài)建設(shè)還處于起步階段,而DOCA在市場(chǎng)上已經(jīng)有一定的用戶(hù)量。
未來(lái)IPDK項(xiàng)目能否順利發(fā)展,業(yè)界人士認(rèn)為還要考慮到以下幾點(diǎn):
IPDK項(xiàng)目的愿景十分宏大,但其最終能否成為像OpenStack、Kubernetes那樣的明星開(kāi)源項(xiàng)目,甚至成為DPU/IPU的通用軟件平臺(tái),還需多方參與,共同推動(dòng),期待IPDK項(xiàng)目早日走向成熟。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流