NVIDIA DOCA 的早期接入版本于今年早些時(shí)候在 GTC 上發(fā)布。 DOCA 標(biāo)志著我們專注于尋找加速計(jì)算的新方法。 DPU 范式作為 SmartNICs 的發(fā)展終于出現(xiàn)了。我們通過加速、卸載并將數(shù)據(jù)中心基礎(chǔ)架構(gòu)與 DPU 隔離,使開發(fā)人員和應(yīng)用程序架構(gòu)師能夠從通用 CPU 中榨取更多價(jià)值。
考慮 DOCA 最重要的方式之一是 DPU 啟用平臺(tái)。 DOCA 能夠?qū)?DPU 功能快速消耗到新的和現(xiàn)有的數(shù)據(jù)中心軟件堆棧中。
現(xiàn)代數(shù)據(jù)中心不僅僅由簡單的網(wǎng)絡(luò)基礎(chǔ)設(shè)施組成。操作高效且可擴(kuò)展的數(shù)據(jù)中心的關(guān)鍵是軟件。編排、資源調(diào)配、監(jiān)視和遙測都是軟件組件。甚至網(wǎng)絡(luò)基礎(chǔ)設(shè)施本身也主要是軟件的功能。網(wǎng)絡(luò)節(jié)點(diǎn)上使用的網(wǎng)絡(luò)操作系統(tǒng)決定了功能集,并圍繞操作工具和監(jiān)控驅(qū)動(dòng)許多下游決策。
我們稱 DOCA 為一個(gè)帶有 SDK 的軟件框架,但它不僅僅是這樣。當(dāng)考慮什么是 DOCA 以及如何使用它時(shí), SDK 是一個(gè)很好的起點(diǎn)。一個(gè)常見的混淆源是組件運(yùn)行的位置。主機(jī)上需要哪些 DOCA 組件, DPU 上需要哪些組件?與運(yùn)行時(shí)環(huán)境相比,在哪些條件下需要 SDK ? DOCA 庫具體是什么?
概述
對于 DOCA 的新手來說,這篇文章揭開了 DOCA 堆棧和打包的復(fù)雜性。首先,我想重溫一些術(shù)語并完善它們在 DOCA 上下文中的含義。
SDK
這是一個(gè)軟件開發(fā)工具包。在上下文中,應(yīng)用程序開發(fā)人員需要能夠使用 DOCA 編寫和編譯軟件。它包含運(yùn)行時(shí)、庫和驅(qū)動(dòng)程序。并不是每個(gè)人都需要與 SDK 打包或通常是 SDK 一部分的所有東西。
從嚴(yán)格意義上講, SDK 更多的是打包軟件組件,但它也被用來最簡潔(盡管不完全準(zhǔn)確)地描述行業(yè)應(yīng)該如何思考 DOCA 是什么以及如何使用它。 DOCA 主要供應(yīng)用程序開發(fā)人員使用。
運(yùn)行
這是運(yùn)行或執(zhí)行 DOCA 應(yīng)用程序所需的組件集。它包含 DOCA 應(yīng)用程序必須運(yùn)行的鏈接庫和驅(qū)動(dòng)程序。就打包而言,它不需要包含頭文件和源文件,就可以編寫和構(gòu)建(編譯)應(yīng)用程序。 DOCA 應(yīng)用程序可以為 x86 或 ARM 編寫和構(gòu)建,因此每個(gè)體系結(jié)構(gòu)都有不同的運(yùn)行時(shí)包。
庫
這里有兩種不同的背景。在更廣泛和更一般的上下文中,庫是應(yīng)用程序使用的資源的集合。庫資源可能包括各種數(shù)據(jù),如配置、文檔或幫助數(shù)據(jù);消息模板;預(yù)先編寫的代碼;以及子例程、類、值或類型規(guī)范。
在 DOCA 的上下文中,庫還提供了更多功能和有用的行為實(shí)現(xiàn)的集合。它們提供了定義良好的接口,通過這些接口可以調(diào)用該行為。
例如, DOCA DPI 庫提供了一個(gè)用于檢查和處理網(wǎng)絡(luò)數(shù)據(jù)包內(nèi)容的框架。
從頭開始使用 DPU 正則表達(dá)式加速器編寫 DPI 應(yīng)用程序需要大量工作。您必須編寫所有預(yù)處理和后處理例程來解析數(shù)據(jù)包頭和有效負(fù)載,然后編寫一個(gè)過程來編譯 RegEx 規(guī)則,以便在加速器上進(jìn)行高速查找。
圖 1 DOCA DPI 庫塊。
驅(qū)動(dòng)程序
設(shè)備驅(qū)動(dòng)程序?yàn)橛布O(shè)備提供接口。此位軟件是最低級(jí)別的抽象。 DOCA 為 DPU 的特定硬件功能提供了額外的抽象層。這樣,隨著 DPU 硬件的發(fā)展,對底層硬件的更改將不需要 DOCA 應(yīng)用程序也進(jìn)行更新,以遵循新的或不同的驅(qū)動(dòng)程序接口。
DOCA 與 CUDA 的相似之處
考慮 DOCA 包裝的另一個(gè)有用方法是通過其與 CUDA 的相似性。 DOCA 運(yùn)行時(shí)旨在以類似于 NVIDIA 顯示驅(qū)動(dòng)程序包為 CUDA 提供的方式包含所有驅(qū)動(dòng)程序和庫。
必須調(diào)用 CUDA 庫進(jìn)行 GPU 處理的應(yīng)用程序只需要安裝 NVIDIA 顯示驅(qū)動(dòng)程序包。同樣, DOCA 應(yīng)用程序只需要特定體系結(jié)構(gòu)的運(yùn)行時(shí)包。在這兩種情況下,您都有一套附加的包和工具,用于將 GPU 或 DPU 功能和加速集成到應(yīng)用程序中。
圖 2 DOCA 與 CUDA 運(yùn)行時(shí)和開發(fā)人員工具包堆棧。
DOCA 平臺(tái)要求
另一個(gè)復(fù)雜的因素可能是在哪個(gè)平臺(tái)上需要哪些 DOCA 組件。畢竟, DPU 運(yùn)行自己的操作系統(tǒng),但也將自己作為主機(jī)操作系統(tǒng)的外圍設(shè)備。
DOCA 應(yīng)用程序可以在 x86 主機(jī)上運(yùn)行,也可以在 DPU ARM 內(nèi)核上運(yùn)行。 DOCA 應(yīng)用程序在 x86 主機(jī)上運(yùn)行,旨在通過 DOCA 庫調(diào)用使用 DPU 加速功能。就打包而言,不同的 OSs 可能意味著所有這些組件的安裝過程都不同,但幸運(yùn)的是,這并不像管理員看起來那么混亂。
對于 NVIDIA BlueField DPU ,所有運(yùn)行時(shí)和 SDK 組件都與操作系統(tǒng)映像捆綁在一起??梢栽?DPU 上編寫、構(gòu)建和編譯 DOCA 應(yīng)用程序,以進(jìn)行快速測試。所有的 DOCA 組件都在那里,但這并不總是一個(gè)理想的開發(fā)環(huán)境。 DPU 操作系統(tǒng)映像內(nèi)置并包含 SDK 組件,這對每個(gè)人來說都很容易,因?yàn)樗前\(yùn)行時(shí)組件的超集。
對于 x86 主機(jī)來說,有更多的單個(gè)組件需要考慮。管理員在主機(jī)上需要的包同樣主要取決于此主機(jī)是開發(fā)環(huán)境還是構(gòu)建服務(wù)器,以及它的體系結(jié)構(gòu)?;蛘咧鳈C(jī)將運(yùn)行并執(zhí)行調(diào)用 DOCA 庫的應(yīng)用程序?
對于注定要用作開發(fā)環(huán)境的 x86 主機(jī),還有一個(gè)額外的考慮因素。為了開發(fā)將在 x86 CPU 上運(yùn)行的 DOCA 應(yīng)用程序,管理員需要主機(jī)包的本機(jī) x86 DOCA SDK 。對于從 x86 主機(jī)開發(fā) ARM 應(yīng)用程序, NVIDIA 有一個(gè)預(yù)構(gòu)建的 DOCA 開發(fā)容器,用于管理所有跨平臺(tái)的復(fù)雜性。
對于僅使用 DOCA 運(yùn)行或執(zhí)行應(yīng)用程序的 x86 主機(jī)來說,最簡單的情況就是 DOCA 主機(jī)運(yùn)行時(shí)包能夠滿足這一要求。它包含了使使用 DOCA 庫編寫的應(yīng)用程序能夠在目標(biāo)機(jī)器上正確執(zhí)行的最小組件集。圖 3 顯示了跨兩個(gè)不同 OS 域的不同組件。
圖 3 DOCA 主機(jī)和 BlueField 之間的打包 DPU 。
簡化安裝
既然我已經(jīng)解釋了所有這些打包是如何在 x86 主機(jī)上工作的,那么我應(yīng)該指出,您可以通過一種簡單的方法將正確的組件安裝到正確的位置。 NVIDIA SDK Manager 減少了管理這種打包復(fù)雜性所需的時(shí)間和精力。 SDK Manager 不僅可以在主機(jī)上安裝或修復(fù) SDK 組件,還可以通過圖形界面檢測操作系統(tǒng)并將其安裝到 BlueField DPU 上。小菜一碟!
圖 4 SDK Manager 圖形界面,用于設(shè)置 DPU 和安裝 DOCA 組件。
關(guān)于作者
Justin Betz 是 NVIDIA 的技術(shù)營銷工程師,專注于推廣 DOCA 和 DPU 加速應(yīng)用程序。在 NVIDIA 之前,他曾在 Cumulus Networks 的技術(shù)營銷團(tuán)隊(duì)工作。 Justin 擁有多個(gè)網(wǎng)絡(luò)工程認(rèn)證,包括 Cisco CCIE 和 Cumulus CCONP ,畢業(yè)于羅切斯特理工學(xué)院,獲得網(wǎng)絡(luò)安全和系統(tǒng)管理學(xué)士學(xué)位。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5063瀏覽量
103440 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3287瀏覽量
57799
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論