NVIDIA DOCA 軟件框架包括編程 NVIDIA BlueField 數據處理器 ( DPU )并提供一致的體驗,無論開發環境如何。 NVIDIA 提供以下資源:
- 開發人員計劃
- SDK 管理器支持
- 工具匯編:
- 編譯器
- 基準測試
- API 參考和程序員指南
- 參考應用程序
- 使用案例
NVIDIA 通過為開發人員提供 DOCA SDK 和用于開箱即用部署的 DOCA 運行時軟件來提供堆棧。
DOCA 驅動程序還是 DOCA 庫?
DOCA 驅動程序和 DOCA 庫是開發人員、 IT 安全和運營團隊以及 IT 管理員的關鍵部分。它們用于為 DPU 開發和部署軟件定義和硬件加速的應用程序。然而,我有時會收到關于正確使用的問題。
為了確保沒有混淆,并確定哪種可能最適合您的開發需求,我寫了這篇文章來討論何時使用哪種。
? | DOCA drivers | DOCA libraries |
Hardware-accelerated | Yes | Yes |
Code management | Fine-grained control | Implicit initialization and unified APIs |
Coding complexity | High complexity | Simplified, with programming guides |
License | Mostly open source | DOCA |
Multi-generation compatibility | Limited | Supported |
Per-use case logic | Developers’ responsibility | Built-in |
Reference applications | Partially available | Available for every library |
Performance | Optimized | Maximized |
Scale | Component dependent | Maximized |
表 1 比較了驅動程序和庫,并強調了各自的優缺點。本質上, DOCA 驅動程序提供了更大的定制空間,而 DOCA 庫的設計旨在以更低的編碼復雜性提供最佳的每個用例性能和擴展。
DOCA 庫
首先, DOCA 庫是針對特定用例優化的高級抽象 API 。庫可以通過更快的開發時間和上市時間來實現優異的性能。它們還包括各種指南和示例應用程序,這些應用程序在用于開發時比 DOCA 驅動程序的學習曲線更短。
NVIDIA 庫已提前加速。它們使您能夠快速構建各種應用程序,并顯著提高性能,因為已經為指定用例創建和調整了邏輯。它們還確保了多代兼容性,這在使用 DOCA 驅動程序時是無法保證的。
這些庫旨在解決特定的用例,如防火墻、網關或存儲控制器。它們使用 PMD 和 DPDK ,并包含 DPDK 或驅動程序級別不存在的其他功能和邏輯。
例如,如果使用 RegEx 識別用于深度數據包檢查( DPI )的復雜字符串模式, DOCA DPI 庫包括預處理(數據包頭解析)和后處理例程,以便更容易使用 RegEx 加速器對網絡數據包執行操作。 DPDK RegEx API 不包含任何這些內容。 DOCA DPI 庫 API 是抽象的,更易于開發數據包檢查例程,因為不需要理解邏輯。
DOCA 庫允許您選擇具有內置硬件加速的首選 API 。 DOCA 1.3 的當前版本包括 120 多個 DOCA API :
這些服務可通過 NGC Catalog 獲得,并可在幾分鐘內部署到 BlueField DPU 上。
這些庫的價值是通過運行時環境、 DOCA 服務和一組擴展的文檔來實現的。一般的圖書館用戶不會開發應用程序,而是利用 NVIDIA 或第三方提供的現有應用程序和服務。
DOCA 服務是由多個項目組成的容器化驅動程序和庫,可以作為服務運行以提供特定功能。每個服務都提供不同的功能,例如 DOCA 遙測 API?,它可以在幾分鐘內從 NGC 目錄中提取。它提供了一種快速方便的方法來收集用戶定義的數據并將其傳輸到 DOCA 遙測服務( DTS )。
此外, API 還提供了幾個內置輸出以方便用戶,包括將數據直接保存到存儲器、 NetFlow 、 Fluent 位轉發和 Prometheus 端點。
這些庫中的每一個都共享對象,并且除了它們各自使用 PMD 驅動程序之外,沒有以任何方式綁定。類似地,每個都有一個公共基礎設施,每個都有自己的 文檔和程序員指南 。
DOCA 驅動程序和 DOCA SDK
雖然庫消除了低級編程,但它們可能不支持您正在尋找的所有特性和功能,因此 NVIDIA 提供了 DOCA 驅動程序。 DOCA 驅動程序是基于開源的,如果您正在開發自己的解決方案或必須創建獨特的解決方案,則可以提供更大的靈活性。
NVIDIA 驅動程序是為開發人員設計的,通過 DOCA SDK 提供。 SDK 包括創建和構建應用程序所需的所有組件,包括參考應用程序源、開發工具、文檔和 NVIDIA SDK 管理器。 SDK 管理器支持快速部署開發環境,還可以將映像閃存并安裝到本地 DPU 。
開發人員容器支持在任何地方開發 DOCA 加速的應用程序。您不必在 DPU 上的 Arm 處理器上執行此操作。在具有物理 DPU 的主機上,可以在開發人員容器中執行此操作,該容器模擬 Arm 處理器。 NVIDIA 提供了詳細的文檔、示例和 API 兼容性。
DOCA SDK 是利用 DOCA 庫和驅動程序并創建獨特的個性化軟件以滿足應用程序開發需求的最有效方法。
DOCA 運行時也可用于驗證和測試應用程序。
DOCA 運行時
如果您尚未準備好或無法將應用程序移植到 Arm 體系結構, NVIDIA 將為 x86 提供 DOCA 運行時。在這種情況下, gRPC 客戶端在 DPU 上運行,并與 x86 運行時建立通信通道。應用程序可以訪問 DPU 運行時組件,您不必編譯任何 Arm 代碼。
軟件定義、硬件加速的基礎架構
DOCA 簡化了 BlueField DPU 的編程和應用程序開發,并通過提供更高級別的抽象消除了障礙。通過提供運行時二進制文件和高級 API , DOCA 框架使您能夠專注于應用程序代碼,而不是學習。
您可以選擇兩種開發路線:通過庫和服務或通過 SDK 和驅動程序。目前, DOCA 軟件棧包括 120 多個 DOCA API ,全球 2500 多名 DOCA 開發人員正在使用這些 API 。它們可通過 NGC Catalog 獲得。
如果您是 DOCA 的新手, NVIDIA 提供免費的、自定進度的課程, DPU 的 DOCA 簡介 . 它涵蓋了 DOCA 平臺的要點。
我希望我已經澄清了所有困惑,并鼓勵您加入 DOCA 開發人員計劃 today.
有關更多信息,請參閱以下參考資料:
- 文件和指南: https://docs.nvidia.com/doca/sdk
- 揭開 NVIDIA DOCA 的神秘面紗
- 在 NVIDIA BlueField DPU 上使用 DOCA 加速解決方案開發
- 使用 NVIDIA BlueField DPU 和 NVIDIA DOCA 庫開發應用程序
?