许多人都在讨论 DPU(数据处理器)智能网卡,但却忽略了一个简单的问题:智能网卡是什么,智能网卡有什么作用?
网卡(NIC),全称网络接口卡,是一张 PCIe 卡,可以插入服务器或存储盒,实现与以太网连接。而 DPU 智能网卡超越了简单的连接,并在网卡上实现了网络流量处理,相比其他的基础网卡,这些处理必须交由 CPU 来执行。
部分供应商对 DPU 智能网卡的定义是完全集中在应用上的,但是这样定义并不准确,因为不同的供应商有不同的架构。例如,一张 DPU 智能网卡可以基于 ASIC、FPGA 和 SoC 芯片。然而,只生产一种网卡的厂商通常会认为只有他们的网卡才称得上是智能网卡。
ASIC 型网卡
高性价比
高厂商开发成本
可编程及可扩展
其灵活性受限于预设定功能
FPGA 型网卡
性能好,但价格昂贵
编程难度大
特定应用的优化
SoC 型网卡 + CPU
性价比较好
可编程处理器
最高灵活性
最简单的可编程性
不同的实现方式在成本、编程的难易程度和灵活性方面各有利弊。ASIC 的成本效益最高,性价比有可能最佳,但灵活性有限。NVIDIA ConnectX-5 等 ASIC 型网卡有一个可编程的数据路径,配置起来相对简单。然而,其功能是由 ASIC 内定义的功能所决定的,这可能导致某些应用无法得到支持。
相比之下,NVIDIA Innova-2 Flex 等 FPGA 型网卡具有高度可编程性。只要有足够的时间和精力,在 FPGA 可用资源的限制范围内,它可以相对有效地支持几乎任何功能。但众所周知,FPGA 编程难,价格高。
对于更复杂的用例,如 NVIDIA BlueField DPU 可编程智能网卡 一类的 SoC 型智能网卡似乎是最好的 DPU 智能网卡实现选项:具有良好的性价比、易于编程且灵活性高。
单一讨论特定供应商如何实现 DPU 智能网卡,并不能回答其功能问题和架构设计的问题。NVIDIA 实际上提供基于上述每一种架构的产品,这些产品都可以归类为 DPU 智能网卡。事实上,客户可以根据需求,将这些产品分别用于不同的应用。因此,对 ASIC、FPGA、SoC 等实现选项的关注颠覆了“形式服从功能”的理念,而这种理念是最佳架构的基础。
笔者并没有把重点放在架构设计上,而是调整了《个人电脑杂志》百科全书条目,对什么是 DPU 智能网卡,给出了一个更实用的定义:
DPU 智能网卡:
DPU 型网络接口卡(网络适配器)可以卸载通常由系统 CPU 所负责处理的任务。DPU 智能网卡使用其板载的处理器,来执行任何加密/解密、防火墙、TCP/IP 和 HTTP 网络处理不同任务的组合。智能网卡非常适合于高流量的网络服务器。
定义中有两点需注意:第一点,它更专注于功能而非架构设计;第二点,定义中以“……使用其板载处理器……来执行任何……网络处理任务组合”这一叙述中的暗示。由此可见,嵌入式处理器是实现灵活执行绝大部分网络功能的关键。
用户可以进一步拓展这一定义为“只需添加 DPU 智能网卡,就有可能执行网络、存储或 GPU 虚拟化”。除网络服务器外,智能网卡也同样适用于电信、安全、机器学习、软件定义存储和超融合基础设施服务器。
网卡类别
我们可以通过网络适配器所支持的功能,以及用于加速的不同应用来区分三类网卡:
基础网卡
智能网卡
智慧网卡
NVIDIA BlueField DPU 从智能网卡中脱颖而出成为了新兴类别。
基础网卡只能移动网络流量,并且除了可能的 SRIOV 和基本的 TCP 加速外,具有很少,甚至没有卸载功能。它不能节省任何 CPU 周期,也不能卸载数据包转发或数据流的处理。NVIDIA 已不再出售基础网卡。
NVIDIA ConnectX 适配器系列具有可编程数据路径,并且可以加速公有云用例中十分重要的多个功能。因此,此类网卡可定义为智慧网卡(iNIC)。如今,与公有云提供商一样,可能本地企业、电信公司和私有云也需要这种可编程性和加速功能。它还可以被称为首字母不带大写“S”的高级智能网卡(smarterNIC)。
许多客户需要 DPU 智能网卡功能,而往往却只能找到其他供应商提供的 FPGA 型网卡,或者是 FPGA 加上有自定义能力的专有处理引擎而组成的网卡。但是,当客户需要一款最符合他们的特殊处理流程的网卡时,客户通常会最终选择 ConnectX 系列 iNIC,因为 ConnectX 能实现特定应用所需要的功能,亦能够提供这些供应商号称的“智能网卡”所具备的功能,性能和灵活性,而功耗和成本却远低于这些智能网卡。
因此,根据部分其他业界内所使用的智能网卡定义,NVIDIA的 ConnectX NIC 确实是他们定义的“智能网卡”,虽然我们只把它称为智慧网卡,或有高级智能的网卡。NVIDIA 的 FPGA 型网卡(Innova)也同样是传统意义上的智能网卡,而我们的 SoC 型网卡(BlueField)才是最智能的智能网卡,可以将它称之为天才型的智能网卡(Genius NIC)。
到底什么才是智能网卡的完整定义?DPU 智能网卡是一个具有加速能力并可卸载服务器(或存储服务器)的 CPU 功能的网络适配器。那么,该如何建造一个 DPU 智能网卡?哪种智能网卡才可以最好地满足客户需要执行的不同任务呢?要弄懂这些问题,必须深挖更多的细节。例如,搞清楚到底有哪些数据路径以及虚拟化是可以被加速的,同时,这样的加速是如何在 DPU 智能网卡上使用的。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !