随着摩尔定律的减弱,加速计算和人工智能是较经济实惠的方式实现数据中心能源效率所需的工具。 让我们一起跟随和了解 NVIDIA Grace CPU、NVIDIA L4 GPU 和 NVIDIA BlueField DPU 如何推动数据中心迈向更高效的未来。
NVIDIA? BlueField? DPU 软件基于 BlueField BSP(主板支持包)构建,其中包括操作系统和 DOCA 框架。BlueField BSP 包括引导加载程序以及加载和设置软件组件的其他必需组件。BSP 将官方 BlueField 操作系统(Ubuntu 参考 Linux 发行版)加载到 DPU。DOCA 是用于开发应用程序和基础设施服务的软件框架和 SDK。DOCA 包括运行时库;Arm 的 DOCA 运行时堆栈支持各种存储、网络和安全加速。因此,客户可以在 BlueField 软件环境中无缝运行任何基于 Linux 的应用程序
BFB: BlueField 引导程序
NVIDIA 提供的软件使用户能够充分利用 NVIDIA? BlueField? DPU 并享受其提供的丰富功能集。使用 BlueField 软件包,用户可以:
与 NVIDIA? ConnectX? 互连相结合,BlueField 系列 DPU 设备包含一系列 Arm 内核,具体如下:
标准 Linux 发行版在 Arm 内核上运行,允许使用常见的开源开发工具。开发人员应该会发现编程环境熟悉且直观,这反过来又使他们能够快速有效地设计、实现和验证其控制平面和数据平面应用程序。
BlueField SW 附带 NVIDIA ? BlueField ? 参考平台。BlueField SW 是一个基于 Ubuntu Server 发行版的参考 Linux 发行版,扩展后包含适用于 Arm 的 MLNX_OFED 堆栈和支持 NVMe-oF 的 Linux 内核。该软件发行版可以无缝运行所有基于客户的 Linux 应用程序。
以下是 BlueField DPU 附带的其他软件元素:
BlueField DPU 包括对 Arm DS5 套件以及 CoreSight? 调试的硬件支持。因此,各种商用现成 Arm 调试工具应与 BlueField 无缝协作。CoreSight 调试器接口可以通过 RSim 接口(如果使用 DPU,则为 USB 或 PCIe)访问,也可用于使用 OpenOCD 等开源工具进行调试。
BlueField DPU 还支持无处不在的 GDB。
BlueField 软件为构建 JBOF(Just a Bunch of Flash)存储系统提供了基础,包括 NVMe-oF 目标软件、PCIe 交换机支持、NVDIMM-N 支持和 NVMe 磁盘热插拔支持。
BlueField SW 允许启用 ConnectX 卸载,例如 RDMA/RoCE、T10 DIF 签名卸载、纠删码卸载、iSER、存储空间直通等。
BlueField 架构是两个预先存在的标准现成组件: Arm AArch64 处理器和ConnectX-6 Dx(用于 BlueField-2)、ConnectX-7(用于 BlueField-3)或网络控制器的组合,每个组件都有其拥有丰富的软件生态系统。因此,BlueField 中几乎所有程序员可见的软件接口都来自各个组件的现有标准接口。
Interfaces_on_BlueField-version-1-modificationdate-1702597769530-api-v2.png
Arm 相关接口(包括与启动过程、PCIe 连接和加密操作加速相关的接口)是标准 Linux on Arm 接口。这些接口由 NVIDIA 提供的驱动程序和低级代码启用,作为 BlueField 软件的一部分,该软件已交付并上游到相应的开源项目(例如 Linux)。
ConnectX 网络控制器相关接口(包括用于以太网和 InfiniBand 连接、RDMA 和 RoCE、以及存储和网络操作加速的接口)与支持 ConnectX 独立网络控制器卡的接口相同。这些接口利用 MLNX_OFED 软件堆栈和基于 InfiniBand 动词的接口来支持软件。
BlueField DPU 有多个连接(见下图)。用户可以通过不同的控制台、网络连接和 JTAG 连接器连接到系统。
System_Connections-version-1-modificationdate-1702597768883-api-v2.png
BlueField DPU 具有多个控制台接口:
rshim驱动:
systemctl status rshim
rshim设备:
DPU 具有多个网络接口。
NVIDIA? BlueField? DPU 有多种操作模式:
参考: NVIDIA 文档中心 NVIDIA 网络 网络软件 NVIDIA BlueField DPU BSP v4.5.0 内核表示模型
警告: 该模式仅适用于DPU工作在DPU模式下
BlueField? DPU 使用 netdev 表示器来映射每一项主机端物理和虚拟功能。
这些表示器用作连接到 OVS 或在 Arm 内核上运行的任何其他虚拟交换机的虚拟端口。
当在DPU 模式下运行时,我们看到 DPU 的每个网络端口都有 2 个表示器:一个用于上行链路(P0),另一个用于主机端 PF(pf0hpf, 即使在主机端未探测 PF,也会创建 PF 表示器)。对于在主机端创建的每个 VF,将在 Arm 端创建相应的表示器。代表者的命名约定如下:
下图展示了主机端暴露的 PCIe 功能与表示器之间的映射。为了简单起见,显示了单个端口模型(为第二个端口重复)。
Kernel_Representors_Model-version-1-modificationdate-1702597804603-api-v2.png
红色箭头演示了通过表示器的数据包流,而绿色箭头演示了将转向规则卸载到嵌入式交换机时的数据包流。有关更多详细信息,请参阅交换机卸载部分。
警告: 主机功能 (PF/VF) 的 MTU 必须小于上行链路和相应 PF/VF 表示器的 MTU。例如,如果主机 PF MTU 设置为 9000,则上行链路和 PF 表示器都必须设置为高于 9000。
DPU软件概述: https://docs.nvidia.com/networking/display/bluefielddpuosv450/bluefield+software+overview
DOCA文档: https://docs.nvidia.com/networking/dpu-doca/index.html#dpu-os
安装DPU操作系统: https://docs.nvidia.com/networking/display/bluefielddpuosv450/deploying+bluefield+software+using+bfb+from+host
BF驱动列表: https://docs.nvidia.com/networking/display/bluefielddpuosv450/installing+popular+linux+distributions+on+bluefield
主机端的配置参考(带有DPU的主机): https://docs.nvidia.com/networking/display/bluefielddpuosv450/host-side+interface+configuration
DPU操作模式: https://docs.nvidia.com/networking/display/bluefielddpuosv450/modes+of+operation
在 NVIDIA BlueField-2 DPU 上使用 OpenShift 进行 OVN/OVS 卸载: https://access.redhat.com/articles/6804281#masthead
DPU演化: https://zhuanlan.zhihu.com/p/402706136
史上最全DPU厂商大盘点(完整版)https://cloud.tencent.com/developer/article/2055768
使用 NVIDIA BlueField DPU 和 DPDK 开发应用程序: https://developer.nvidia.com/blog/developing-applications-with-nvidia-bluefield-dpu-and-dpdk/
DPU简介(历史): https://blog.csdn.net/gongtxy/article/details/128740434
博客: https://cloud.tencent.com/developer/user/5060293/articles | https://logread.cn | https://blog.csdn.net/ssbandjl