SmartNIC这个概念已经存在一定时间了。AWS的NITRO,跟SmartNIC的功能有一定的重合之处,因此业界还是采用了SmartNIC的概念,直到DPU概念的兴起。DPU对系统卸载这整件事情的定义要比SmartNIC更准确,再然后Intel又称之为IPU,又进一步丰富了整件事情的内涵。
如今,对SmartNIC、DPU、IPU这些概念之间的界限,或者说指代的产品定义,依然有很多混淆的地方。ServerTheHome给出了自己的一个分类的框架STH NIC Continuum Framework(Continuum的翻译很别扭,个人觉得意译成“分类”合适一些),希望能有个清晰的定义,并且未来遇到类似的产品能够把它划归到特定的类别。本文是STH NIC Continuum的介绍。
编者觉得STH NIC Continuum的分类仅仅通过一些具体的功能进行划分,而没有说到问题的本质,并不是很严谨的分类划分。编者在自己的《软硬件融合》一书中,定义了这件事情持续演进的四阶段论:从SmartNIC到DPU到IPU再到eIPU。
后面会专门出一篇文章,对“四阶段论”进行详细介绍。
参考文献: DPU vs SmartNIC and the STH NIC Continuum Framework
https://www.servethehome.com/...
如何区分SmartNIC和DPU?ServerTheHome的STH NIC分类框架
作者:Patrick Kennedy
最近,业界对什么是DPU或SmartNIC存在很多混淆。这里的主要挑战之一是各自宣传口径的不同。我们在2021年第二季度第一版草案中引入STH NIC Continuum,以展示我们将如何在STH对NIC进行分类。我们在业界做了大量的NIC、服务器和交换机审查,所以我们只需要一个框架来讨论NIC的类型。
什么是 DPU?
去年,我们有一篇文章,介绍DPU数据处理单元快速入门。在那篇文章中,我们讨论了DPU共享的一些关键特征。其中有:
1.高速网络连接(这一代通常有多个100-200Gbps接口)
2.具有特定加速和通常可编程逻辑的高速数据包处理(P4/类P4功能很常见)
3.CPU核心复合体(在这一代中通常基于ARM或MIPS)
4.内存控制器(通常是DDR4,但我们也看到HBM和DDR5支持)
5.加速器(通常用于加密或存储卸载)
6. PCIe Gen4通道(作为根或端点)
7.安全和管理功能(以硬件信任根为例)
8. 运行独立于主机系统的自己的操作系统(通常是 Linux,ESXi是另一个示例)
但共同的主题是DPU旨在解构数据中心中的基础设施和应用程序资源。DPU被设计为一个基础设施端点,既向服务器和设备公开网络服务,同时向更广泛的基础设施安全地公开服务器和设备功能。
有了这个基础的元素,现在我们将介绍一个框架来讨论SmartNIC与DPU,因为这是一个令人困惑的领域。
SmartNIC与DPU
我们被问到的最大问题之一是如何对SmartNIC、DPU和基于FPGA的解决方案进行分类。因此,我们已经汇总了我们认为是整个行业的共同点的草案。
这是第一个,2021 STH NIC Continuum,这是我们希望随着时间的推移而更新的内容,但目标是就什么是卸载NIC与SmartNIC与DPU以及什么构成更奇特的解决方案(通常是基于 FPGA)的问题提供一些框架。许多供应商交替使用这些术语,因此我们需要一个结构来讨论 STH 上的解决方案。
从基础NIC开始,这实际上是当今网络接口的基本级别。几乎所有现代NIC都有一些非常基本的卸载,例如 IPv4/IPv6和TCP/UDP校验和卸载,但基础NIC旨在启用低成本网络端口,放弃许多会增加成本和复杂性的高端卸载功能。
事实上,基础NIC仍然是行业中非常重要的一部分,但是,随着数据速率的提高和处理数据流的更高速度需要更多的计算,我们看到的大多数NIC都是更多的卸载NIC。
卸载 NIC 通常出现在支持100Gbps和更快网络的系列中。其中一些系列还包含低速端口,但网络适配器通常是分代设计的,而100GbE一代显然需要新的卸载级别。在这些数据速率下,让NIC在硬件中独立于CPU处理网络功能变得至关重要。这也包括将一些虚拟化功能卸载到NIC。
Offload NIC的目标是尽可能将CPU从网络处理中解放出来,以便有更多CPU资源可用于运行应用程序。可能存在一些有限的可编程性,但程度低于SmartNIC。
进入SmartNIC与DPU的讨论,SmartNIC卸载NIC的关键创新是添加更灵活的可编程流水线,这也是DPU所包含的。鉴于市场上的混乱以及“SmartNIC”一词在业界采用“DPU”一词之前就已使用得很好,因此存在很多混淆。我们查看了传统的SmartNIC和DPU材料,概念模型发生了相当明显的变化。因此,我们将SmartNIC定义为具有可编程流水线的NIC,以进一步增强主机CPU的卸载能力。
换句话说,尽管许多人可能运行Linux并拥有自己的CPU内核,但SmartNIC的功能是减轻主机CPU作为整个服务器的一部分的负担。在该角色中,SmartNIC与DPU不同,因为DPU似乎更侧重于成为独立的基础设施端点。
当我们调查今天所谓的“DPU”时,卸载和可编程性无疑是关键功能。最大的不同在于,供应商本着AWS Nitro平台的精神将DPU设计为基础设施端点。这些基础设施端点可以直接将存储连接到网络(例如使用Fungible产品)这些端点可能是网络的安全入口(例如使用Pensando DSC产品/Marvell Octeon产品)或者它们可能是更多的通用端点安全地向整个基础设施提供计算、网络和存储。
这似乎是一种微妙的方法,当我们查看市场上的产品时,明显关注旨在提供高端卸载 (SmartNIC) 和独立网络端点提供服务 (DPU) 的产品,一些公司将主机的产品营销为SmartNIC或DPU的高端产品,但我们认为它们应该是我们称之为“奇特的”的独立类别。
我们目前称为奇特的NIC 的类别是通常具有极大灵活性的解决方案。这种灵活性主要是通过使用大型FPGA实现的。借助FPGA,组织可以为低延迟网络甚至AI推理等应用创建自己的自定义流水线,作为解决方案的一部分,而无需使用主机CPU。
但是,一般而言,SmartNIC/DPU和Exotic NIC之间存在重大差异。这种灵活性和可编程性意味着那些部署Exotic NIC的组织将拥有专门的团队,通过为FPGA编写新逻辑来从NIC中提取价值。灵活性伴随着责任,这就是为什么这些解决方案需要在传统SmartNIC和DPU类别之外进行分类的原因。在许多领域,归类为奇特的解决方案可以产生令人印象深刻的结果,但也带有额外的设计和维护考虑因素,使其对高端应用程序具有吸引力。
最后的话
STH NIC Continuum 并不完美,但我们需要一种方法来对解决方案进行分类,以便我们可以评估它们并将其呈现给我们的读者。在上面的SmartNIC与DPU的介绍中,我们梳理了一些关键的DPU参与者,以及一些FPGA解决方案,以此来讨论当前的市场状况。我们看到,很多工作正在针对特定用例进行优化,因此我们希望随着市场的成熟,深入了解这些解决方案的目标。
在STH上,我们开始制作更多 DPU 内容。这是数据中心的一类新兴设备和功能,因此我们希望不断添加内容以帮助我们的读者了解和评估该领域的产品。
当然,如果您对 2021 STH NIC Continuum 的初稿有任何反馈,请随时联系我们。目标是帮助读者对SmartNIC、DPU与Exotic (FPGA)解决方案进行分类和评估,业界目前使用的术语没有定义它们的含义。由于我们涵盖并审查了许多这些解决方案,因此我们需要进行一些调整,因此我们拥有STH Continuum,这样如果某些东西被标记为“SmartNIC”,但它实际上更像是我们认为的Exotic解决方案,我们可以展示差异。
(正文完)
作者:黄朝波
来源:https://mp.weixin.qq.com/s/0wohV\_OIvi3Tubn1q5daEw
微信公众号:
相关文章推荐
更多软硬件技术干货请关注软硬件融合专栏。