选择基于 DPU 的最佳 SmartNIC

nvdev 2022-04-07 16:58:32

这篇文章最初发表在 Mellanox 博客上。

每个人都在谈论基于数据处理单元的智能网卡,但没有回答一个简单的问题:什么是智能网卡,它们做什么?

NIC 代表网络接口卡。实际上, NIC 是一种插入服务器或存储盒以连接到以太网网络的 PCIe 卡。基于 DPU 的 SmartNIC 超越了简单的连接,在基础 NIC 的情况下,在 NIC 上实现了 CPU 必须执行的网络流量处理。

一些供应商对基于 DPU 的 SmartNIC 的定义完全集中在实现上。这是有问题的,因为不同的供应商有不同的体系结构。因此,基于 DPU 的 SmartNIC 可以是基于 ASIC 、 FPGA 和片上系统的。当然,只生产一种 NIC 的供应商坚持认为,只有其类型的 NIC 才有资格成为 SmartNIC 。

基于 ASIC 的网卡

  • 优异的性价比
  • 供应商开发成本高
  • 可编程和可扩展
    • 灵活性仅限于预定义的功能

基于 FPGA 的 NICs

  • 性能好但价格昂贵
  • 难以编程
  • 特定于工作负载的优化

基于 SoC 的 NIC + CPU

  • 良好的性价比
  • C 可编程处理器
  • 最高灵活性
  • 最简单的可编程性

在这些不同的实现之间,在成本、编程的易用性和灵活性方面存在各种权衡。 ASIC 具有成本效益,可能提供最佳性价比,但灵活性有限。基于 ASIC 的 NIC ,如 NVIDIA ConnectX-5,可以具有相对简单的可编程数据路径。最终,该功能基于 ASIC 中定义的功能而受到限制。这可能会阻止支持某些工作负载。

相比之下, FPGA NIC (如 NVIDIA Innova-2 Flex)具有高度可编程性。只要有足够的时间和精力,就可以在可用门的约束范围内相对高效地支持几乎任何功能。然而,众所周知, FPGA 编程困难且价格昂贵。

对于更复杂的用例, SOC (如 Mellanox BlueField DPU – 可编程智能网卡)提供了似乎是最好的基于 DPU 的 SmartNIC 实现选项:良好的性价比、易于编程和高度灵活。

Bar chart showing that ASIC is higher on price performance, but SoC is better on ease of programming and flexibility.图 1 。 SmartNIC 实现比较

专注于特定供应商如何实现基于 DPU 的 SmartNIC ,并没有说明它能够实现什么或应该如何构建。 NVIDIA 实际上有基于这些架构的产品,这些架构可以归类为基于 DPU 的 SmartNIC 。事实上,客户根据自己的需要,将这些产品用于不同的工作负载。因此,将重点放在实现 ASIC 、 FPGA 和 SoC 上,颠覆了最佳体系结构成就背后的“形式遵循功能”理念。

我没有把重点放在实现上,而是对PC 杂志百科全书条目进行了调整,给出了一个使 NIC 成为基于 DPU 的 SmartNIC 的工作定义:

基于 DPU 的 SmartNIC : 
一种基于 DPU 的网络接口卡(网络适配器),用于卸载系统 CPU 通常会处理的处理任务。使用自己的板载处理器,基于 DPU 的 SmartNIC 可以执行加密/解密、防火墙、 TCP / IP 和 HTTP 处理的任意组合。 SmartNIC 非常适合高流量 web 服务器。

这个定义有两点我喜欢。首先,它关注的是功能而不是形式。其次,它用语句提示这种形式,“…使用自己的板载处理器…执行任何组合的…”网络处理任务。因此,嵌入式处理器是实现灵活执行几乎任何网络功能的关键。

您可以通过添加基于 DPU 的智能网卡或许也能执行网络、存储或 GPU 虚拟化来现代化该定义。此外, SmartNIC 还非常适合电信、安全、机器学习、软件定义存储和超聚合基础设施服务器,而不仅仅是 web 服务器。

NIC 类别

以下是如何通过网络适配器可以支持并用于加速不同工作负载的功能来区分三类 NIC :

Table comparing NIC categories by capability and workloads accelerated, such as entry-level virtualization and data movement, data transport acceleration, smart networking, and security, compression, and storage.图 2 。 NIC 类别的功能比较

在这里,我根据 NIC 加速特定功能的能力定义了三类 NIC :

  • 基础 NIC
  • 智能网卡( iNIC )
  • 基于 DPU 的 SmartNIC

基础 NIC 或基本 NIC 只是移动网络流量,除了可能的 SRIOV 和基本 TCP 加速之外,很少或没有卸载。它不保存任何 CPU 周期,也不能卸载数据包控制或流量流。在 NVIDIA ,我们甚至不再销售基础 NIC 。

NVIDIA ConnectX 适配器系列具有可编程数据路径,并加速了一系列功能,这些功能最初在公共云使用案例中变得非常重要。出于这个原因,我将这种类型的 NIC 定义为 iNIC ,尽管今天本地企业、电信和私有云与公共云提供商一样需要这种类型的可编程性和加速功能。它的另一个名字可能是没有资本的智能

在许多情况下,客户告诉我们,他们需要竞争对手提供的基于 DPU 的 SmartNIC 功能,这些功能可以是 FPGA ,也可以是结合定制专有处理引擎的 NIC 。但是,当客户真正了解其特定工作负载所需的功能时,他们最终会决定, ConnectX 系列 iNICs 提供了其他所谓 SmartNIC 的所有功能、性能和灵活性,而功耗和成本仅为后者的一小部分。因此,根据一些竞争对手使用的 SmartNIC 的定义,我们的 ConnectX NIC 确实是 SmartNIC ,尽管我们 MIG 称之为智能 NIC 或更智能的 NIC 。我们的 FPGA NIC ( Innova )也是经典意义上的 SmartNIC ,我们的 SoC NIC (使用 BlueField )是 SmartNIC 中最智能的,我们可以称之为 Genius NIC

那么,什么是 SmartNIC ?基于 DPU 的 SmartNIC 是一种网络适配器,可加速功能并将其从服务器(或存储) CPU 中卸载。

您应该如何构建基于 DPU 的 SmartNIC ,以及哪种 SmartNIC 对于每个工作负载来说是最好的……好吧,问题在于细节。深入了解哪些数据路径和虚拟化加速可用以及如何使用它们非常重要。如果您感兴趣,请参阅我的下一篇文章使用 DPU s 实现云级架构

有关 SmartNIC 用例的更多信息,请参阅以下参考资料:

 

阅读原文

...全文
279 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,209

社区成员

发帖
与我相关
我的任务
社区描述
NVIDIA 开发者技术交流
人工智能 企业社区
社区管理员
  • nvdev
  • 活动通知
  • AI_CUDA_Training
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧