NVIDIA DOCA 软件框架包括了对 NVIDIA BlueField DPU (数据处理器)进行编程所需的一切,无论开发环境如何都能提供一致的开发体验。NVIDIA 提供以下资源:

  • 开发者计划
  • SDK Manager 支持
  • 工具汇总:
  1. 编译器
  2. 基准测试
  3. API 参考及程序员指南
  4. 参考应用程序
  5. 使用案例

NVIDIA 通过为开发者提供 DOCA SDK 和为快速部署提供 DOCA 运行时软件来交付软件堆栈。

选择 DOCA 驱动程序还是 DOCA 库?

DOCA 驱动程序和 DOCA 库是关键组件,适用于开发人员、IT 安全和运营团队,以及 IT 管理员。它们被用于在 DPU 上开发和部署软件定义、硬件加速的应用程序。但是,有时会收到关于如何正确使用它们的问题。

为了确保没有混淆,并确定哪种方式可能最适合您的开发需求,这篇文章将讨论何时使用哪种方式。

表 1 . DOCA 驱动程序与 DOCA 库

表 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 获得,并可在几分钟内部署到 NVIDIA BlueField DPU 上。

这些库的价值是通过运行时环境、DOCA 服务和一组扩展的文档来实现的。典型的库用户不应开发应用程序,而是利用 NVIDIA 或第三方提供的现有应用程序和服务。

DOCA 服务是由多个项目组成的容器化驱动程序和库,可以作为服务运行以提供特定功能。每个服务都提供不同的功能,例如 DOCA 遥测 API ,它可以在几分钟内从 NGC 目录中获取。它提供了一种快速便捷的方式来收集用户定义的数据并将其传输到 DOCA 遥测服务(DTS)。

此外,为了方便用户,API 还提供了几个内置输出,包括将数据直接保存到存储、NetFlow 、Fluent Bit Forwarding 和 Prometheus endpoint 。

这些库中的每一个都共享对象,并且除了它们各自使用 PMD 驱动程序之外,没有以任何方式绑定。同样,每个都有一个公共基础设施,每个都有自己的文档和程序员指南。

DOCA 驱动程序和 DOCA SDK

虽然库消除了低级编程,但它们可能不支持您正在寻找的所有特性和功能,因此 NVIDIA 提供了 DOCA 驱动程序。DOCA 驱动程序是基于开源的,如果您正在开发自己的解决方案或必须创建独特的解决方案,则可以提供更大的灵活性。

NVIDIA 驱动程序是为开发人员设计的,通过 DOCA SDK 提供。SDK 包括创建和构建应用程序所需的所有组件,包括参考应用源程序、开发工具、文档和 NVIDIA SDK Manger 。SDK Manager 支持快速部署开发环境,还可以将映像刷写并安装到本地 DPU 。

开发人员容器支持在任何地方开发 DOCA 加速的应用程序。您不必在 DPU 上的 Arm 处理器上执行此操作。在不具有物理 DPU 的主机上,您可以在开发者容器中执行此操作,该容器模拟 Arm 处理器。NVIDIA 提供了详细的文档、示例和 API 兼容性。

DOCA SDK 是利用 DOCA 库和驱动程序并创建独特的个性化软件,以满足应用程序开发需求的最有效方法。

DOCA 运行时也可用于验证和测试应用程序。

DOCA 运行时

如果您尚未准备好或无法将应用程序移植到 Arm 体系结构,NVIDIA 将为 x86 提供 DOCA 运行时。在这种情况下,gRPC 客户端在 DPU 上运行,并与 x86 运行时建立通信通道。应用程序可以访问 DPU 运行时组件,而无需编译任何 Arm 代码。

图 1. NVIDIA DOCA 软件堆栈

软件定义、硬件加速的基础架构

DOCA 简化了 BlueField DPU 的编程和应用程序开发,并通过提供更高级别的抽象来消除障碍。通过提供运行时二进制文件和高级 API ,DOCA 框架使您能够专注于应用程序代码,而不是学习。

您可以选择两种开发路线:通过库和服务或通过 SDK 和驱动程序。目前,DOCA 软件栈包括 120 多个 DOCA API ,全球 2500 多名 DOCA 开发者正在使用这些 API 。它们可通过 NGC Catalog 获得。

如果您是 DOCA 的新手,NVIDIA 提供免费的自主课程,使用DOCA 开发DPU 应用入门,它涵盖了 DOCA 平台的基本要点。

NVIDIA DOCA 往期精彩内容

使用 NVIDIA DOCA 1.3 增强网络、存储和安全基础设施服务

立即体验 NVIDIA DOCA 软件框架(DLI 中文课程现已更新!)

更多精彩仍在继续...

敬请关注