NVIDIA DOCA 的早期接入版本于今年早些時候在 GTC 上發(fā)布。 DOCA 標志著我們專注于尋找加速計算的新方法。 DPU 范式作為 SmartNICs 的發(fā)展終于出現(xiàn)了。我們通過加速、卸載并將數(shù)據(jù)中心基礎(chǔ)架構(gòu)與 DPU 隔離,使開發(fā)人員和應(yīng)用程序架構(gòu)師能夠從通用 CPU 中榨取更多價值。
考慮 DOCA 最重要的方式之一是 DPU 啟用平臺。 DOCA 能夠?qū)?DPU 功能快速消耗到新的和現(xiàn)有的數(shù)據(jù)中心軟件堆棧中。
現(xiàn)代數(shù)據(jù)中心不僅僅由簡單的網(wǎng)絡(luò)基礎(chǔ)設(shè)施組成。操作高效且可擴展的數(shù)據(jù)中心的關(guān)鍵是軟件。編排、資源調(diào)配、監(jiān)視和遙測都是軟件組件。甚至網(wǎng)絡(luò)基礎(chǔ)設(shè)施本身也主要是軟件的功能。網(wǎng)絡(luò)節(jié)點上使用的網(wǎng)絡(luò)操作系統(tǒng)決定了功能集,并圍繞操作工具和監(jiān)控驅(qū)動許多下游決策。
我們稱 DOCA 為一個帶有 SDK 的軟件框架,但它不僅僅是這樣。當考慮什么是 DOCA 以及如何使用它時, SDK 是一個很好的起點。一個常見的混淆源是組件運行的位置。主機上需要哪些 DOCA 組件, DPU 上需要哪些組件?與運行時環(huán)境相比,在哪些條件下需要 SDK ? DOCA 庫具體是什么?
概述
對于 DOCA 的新手來說,這篇文章揭開了 DOCA 堆棧和打包的復雜性。首先,我想重溫一些術(shù)語并完善它們在 DOCA 上下文中的含義。
SDK
這是一個軟件開發(fā)工具包。在上下文中,應(yīng)用程序開發(fā)人員需要能夠使用 DOCA 編寫和編譯軟件。它包含運行時、庫和驅(qū)動程序。并不是每個人都需要與 SDK 打包或通常是 SDK 一部分的所有東西。
從嚴格意義上講, SDK 更多的是打包軟件組件,但它也被用來最簡潔(盡管不完全準確)地描述行業(yè)應(yīng)該如何思考 DOCA 是什么以及如何使用它。 DOCA 主要供應(yīng)用程序開發(fā)人員使用。
運行
這是運行或執(zhí)行 DOCA 應(yīng)用程序所需的組件集。它包含 DOCA 應(yīng)用程序必須運行的鏈接庫和驅(qū)動程序。就打包而言,它不需要包含頭文件和源文件,就可以編寫和構(gòu)建(編譯)應(yīng)用程序。 DOCA 應(yīng)用程序可以為 x86 或 ARM 編寫和構(gòu)建,因此每個體系結(jié)構(gòu)都有不同的運行時包。
庫
這里有兩種不同的背景。在更廣泛和更一般的上下文中,庫是應(yīng)用程序使用的資源的集合。庫資源可能包括各種數(shù)據(jù),如配置、文檔或幫助數(shù)據(jù);消息模板;預(yù)先編寫的代碼;以及子例程、類、值或類型規(guī)范。
在 DOCA 的上下文中,庫還提供了更多功能和有用的行為實現(xiàn)的集合。它們提供了定義良好的接口,通過這些接口可以調(diào)用該行為。
例如, DOCA DPI 庫提供了一個用于檢查和處理網(wǎng)絡(luò)數(shù)據(jù)包內(nèi)容的框架。
從頭開始使用 DPU 正則表達式加速器編寫 DPI 應(yīng)用程序需要大量工作。您必須編寫所有預(yù)處理和后處理例程來解析數(shù)據(jù)包頭和有效負載,然后編寫一個過程來編譯 RegEx 規(guī)則,以便在加速器上進行高速查找。

圖 1 DOCA DPI 庫塊。
驅(qū)動程序
設(shè)備驅(qū)動程序為硬件設(shè)備提供接口。此位軟件是最低級別的抽象。 DOCA 為 DPU 的特定硬件功能提供了額外的抽象層。這樣,隨著 DPU 硬件的發(fā)展,對底層硬件的更改將不需要 DOCA 應(yīng)用程序也進行更新,以遵循新的或不同的驅(qū)動程序接口。
DOCA 與 CUDA 的相似之處
考慮 DOCA 包裝的另一個有用方法是通過其與 CUDA 的相似性。 DOCA 運行時旨在以類似于 NVIDIA 顯示驅(qū)動程序包為 CUDA 提供的方式包含所有驅(qū)動程序和庫。
必須調(diào)用 CUDA 庫進行 GPU 處理的應(yīng)用程序只需要安裝 NVIDIA 顯示驅(qū)動程序包。同樣, DOCA 應(yīng)用程序只需要特定體系結(jié)構(gòu)的運行時包。在這兩種情況下,您都有一套附加的包和工具,用于將 GPU 或 DPU 功能和加速集成到應(yīng)用程序中。

圖 2 DOCA 與 CUDA 運行時和開發(fā)人員工具包堆棧。
DOCA 平臺要求
另一個復雜的因素可能是在哪個平臺上需要哪些 DOCA 組件。畢竟, DPU 運行自己的操作系統(tǒng),但也將自己作為主機操作系統(tǒng)的外圍設(shè)備。
DOCA 應(yīng)用程序可以在 x86 主機上運行,也可以在 DPU ARM 內(nèi)核上運行。 DOCA 應(yīng)用程序在 x86 主機上運行,旨在通過 DOCA 庫調(diào)用使用 DPU 加速功能。就打包而言,不同的 OSs 可能意味著所有這些組件的安裝過程都不同,但幸運的是,這并不像管理員看起來那么混亂。
對于 NVIDIA BlueField DPU ,所有運行時和 SDK 組件都與操作系統(tǒng)映像捆綁在一起。可以在 DPU 上編寫、構(gòu)建和編譯 DOCA 應(yīng)用程序,以進行快速測試。所有的 DOCA 組件都在那里,但這并不總是一個理想的開發(fā)環(huán)境。 DPU 操作系統(tǒng)映像內(nèi)置并包含 SDK 組件,這對每個人來說都很容易,因為它是包含運行時組件的超集。
對于 x86 主機來說,有更多的單個組件需要考慮。管理員在主機上需要的包同樣主要取決于此主機是開發(fā)環(huán)境還是構(gòu)建服務(wù)器,以及它的體系結(jié)構(gòu)?;蛘咧鳈C將運行并執(zhí)行調(diào)用 DOCA 庫的應(yīng)用程序?
對于注定要用作開發(fā)環(huán)境的 x86 主機,還有一個額外的考慮因素。為了開發(fā)將在 x86 CPU 上運行的 DOCA 應(yīng)用程序,管理員需要主機包的本機 x86 DOCA SDK 。對于從 x86 主機開發(fā) ARM 應(yīng)用程序, NVIDIA 有一個預(yù)構(gòu)建的 DOCA 開發(fā)容器,用于管理所有跨平臺的復雜性。
對于僅使用 DOCA 運行或執(zhí)行應(yīng)用程序的 x86 主機來說,最簡單的情況就是 DOCA 主機運行時包能夠滿足這一要求。它包含了使使用 DOCA 庫編寫的應(yīng)用程序能夠在目標機器上正確執(zhí)行的最小組件集。圖 3 顯示了跨兩個不同 OS 域的不同組件。

圖 3 DOCA 主機和 BlueField 之間的打包 DPU 。
簡化安裝
既然我已經(jīng)解釋了所有這些打包是如何在 x86 主機上工作的,那么我應(yīng)該指出,您可以通過一種簡單的方法將正確的組件安裝到正確的位置。 NVIDIA SDK Manager 減少了管理這種打包復雜性所需的時間和精力。 SDK Manager 不僅可以在主機上安裝或修復 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ù)營銷團隊工作。 Justin 擁有多個網(wǎng)絡(luò)工程認證,包括 Cisco CCIE 和 Cumulus CCONP ,畢業(yè)于羅切斯特理工學院,獲得網(wǎng)絡(luò)安全和系統(tǒng)管理學士學位。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5714瀏覽量
110194 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3347瀏覽量
60471
發(fā)布評論請先 登錄
堆棧的原理揭秘
新思科技全面駕馭AI芯片設(shè)計復雜性
堆棧的定義,堆棧的使用方法
NVIDIA推出全新BlueField-4 DPU
醫(yī)療PCB供應(yīng)鏈復雜性與風險管控
利用NVIDIA DOCA GPUNetIO技術(shù)提升MoE模型推理性能
使用NVIDIA NVLink Fusion技術(shù)提升AI推理性能
聊聊 Webpack 那些安全事兒:打包風險與防護小技巧
ADI如何應(yīng)對智能邊緣的軟件復雜性
時間同步設(shè)備在復雜網(wǎng)絡(luò)環(huán)境中的調(diào)試要點
Molex連接器如何應(yīng)對汽車復雜性設(shè)計挑戰(zhàn)
NVIDIA DOCA 3.0版本的亮點解析
打包機數(shù)據(jù)采集遠程監(jiān)控系統(tǒng)方案
NVIDIA DOCA堆棧和打包的復雜性
評論