DPU发展历史、发展势态及应用案例分析

最佳答案 匿名用户编辑于2023/12/18 10:24

随着云计算、虚拟化技术的发展,网卡也随之发展,从功能和硬件结构上基本可划分为 4 个阶段。

1.传统基础网卡(NIC)。负责数据报文的收发,具有较少的硬件卸载能力。硬件上以 ASIC 硬件逻辑实现网络物理链路层,以及 MAC 层的报文处理,后期 NIC 标卡也支持了,诸如CRC校验的功能。不具有编程能力。2.智能网卡(SmartNIC)。具备一定的数据平面硬件卸载能力,例如 OVS/vRouter 硬件卸载。硬件结构上以FPGA或者是带有 FPGA 和处理器内核的集成处理器(这里处理器功能较弱)来实现数据面硬件卸载。 3.FPGA+CPU 的 DPU 网卡(FPGA-Based DPU)。兼具智能网卡功能的同时,可以支持数据面和控制面的卸载以及一定的控制平面与数据平面的可编程能力。硬件结构的发展上,基于FPGA增加了通用 CPU 处理器,例如 Intel CPU。

4.DPU SoC 网卡(Single-Chip DPU)。单芯片的通用可编程 DPU 芯片,具备丰富的硬件卸载加速和可编程能力,支持不同云计算场景和资源统一管理特性。硬件上,采用单芯片的SoC形态,兼顾性能和功耗。FPGA-Based DPU 在硬件设计上的挑战主要来自芯片面积和功耗。面积上,PCIe 接口的结构尺寸限定了板上的芯片面积;功耗上,板卡的散热设计与芯片和整板的功耗密切相关。这两个因素制约着FPGA 方案的持续发展。DPUSoC方案吸取了从 NIC 到 FPGA-Based DPU 的发展过程的软硬件经验和成果,是目前以 DPU 为中心的数据中心架构的重要演进路径。DPU 作为软件定义芯片的典型代表,基于“软件定义、硬件加速”的理念,是集数据处理为核心功能于芯片的通用处理器。DPU 通用处理单元用来处理控制平面业务,专用处理单元保证了数据平面的处理性能,从而达到了性能与通用性的平衡。DPU专用处理单元用来解决通用基础设施虚拟化的性能瓶颈,通用处理单元则保证 DPU 的通用性,使得DPU 能够广泛适用于云基础设施的各种场景中,实现虚拟化软件框架向DPU 的平滑迁移。

NIC的发展和应用 :传统基础网卡 NIC,又称网络适配器,是构成计算机网络系统中最基本和最重要的连接设备,其主要工作是将需要传输的数据转换为网络设备能够识别的格式。

在网络技术发展的带动下,传统基础网卡的功能也更加丰富,已经初步具备了一些简单的硬件卸载能力(如CRC 校验、TSO/UFO、LSO/LRO、VLAN 等),支持 SR-IOV 和流量管理QoS,传统基础网卡的网络接口带宽也由原来的百兆、千兆发展到10G、25G乃至100G。 在云计算虚拟化网络中,传统基础网卡向虚拟机提供网络接入的方式主要分为以下 3 种。(1)网卡接收流量经操作系统内核协议栈转发至虚拟机。(2)由 DPDK 用户态驱动接管网卡,让数据包绕过操作系统内核协议栈直接拷贝到虚拟机内存。(3)使用 SR-IOV 技术,将物理网卡PF 虚拟化成多个具有网卡功能的虚拟 VF,再将 VF 直通到虚拟机中。随着 VxLAN 等隧道协议以及OpenFlow、OVS 等虚拟交换技术的应用,网络处理的复杂度在逐渐增大,需要消耗更多的CPU资源,因此智能网卡 SmartNIC 诞生了。

SmartNIC的发展和应用 :智能网卡 SmartNIC 除了具备传统基础网卡的网络传输功能外,还提供丰富的硬件卸载加速能力,能够提升云计算网络的转发速率,释放主机 CPU 计算资源。智能网卡 SmartNIC 上没有通用处理器CPU,需要主机CPU进行控制面管理。智能网卡 SmartNIC 主要卸载加速对象是数据平面,如虚拟交换机 OVS/vRouter 等数据面Fastpath卸载、RDMA网络卸载、NVMe-oF 存储卸载以及IPsec/TLS 数据面安全卸载等。但是随着云计算应用中网络速率的不断提高,主机仍会消耗大量宝贵的 CPU 资源对流量进行分类、跟踪和控制,如何实现主机 CPU 的“零消耗”成了云厂商下一步的研究方向。

FPGA-Based DPU网卡的发展和应用:相比智能网卡 SmartNIC,FPGA-Based DPU 网卡在硬件架构上增加了通用 CPU 处理单元,组合成FPGA+CPU 的架构形态,从而便于实现对网络、存储、安全和管控等通用基础设施的加速和卸载。

在这个阶段中,DPU 的产品形态主要以FPGA+CPU为主。基于 FPGA+CPU 硬件架构的 DPU 具有良好的软硬件可编程性,在DPU发展初期大部分 DPU 厂商都选择了这个方案。该方案开发时间相对较短且迭代快速,能够迅速完成定制化功能开发,便于DPU厂商快速推出产品,抢占市场。但是随着网络带宽从25G向100G的迁移,基于 FPGA+CPU 硬件架构的DPU 受到芯片制程和FPGA结构的限制,导致在追求更高吞吐能力时,难以做到对芯片面积和功耗的很好控制,从而制约了这种DPU 架构的持续发展。

DPU SoC网卡的发展和应用:DPU SoC 是基于 ASIC 的硬件架构,结合了ASIC 和CPU的优势,兼顾了专用加速器的优异性能和通用处理器的可编程灵活性的单芯片 DPU 技术方案,是驱动云计算技术发展的重要因素。如前一段所述,虽然 DPU 在云计算扮演着重要的作用,但传统的 DPU 方案多以 FPGA-based 方案呈现,随着服务器从25G向下一代 100G 服务器迁移,其成本、功耗、功能等诸多方面受到了严重的挑战。单芯片的 DPU SoC 不仅在成本、功耗方面有着巨大优势,同时也兼具高吞吐和高灵活编程能力,不仅支持虚拟机、容器的应用管理部署,也支持裸金属应用。

随着 DPU 技术的不断发展,通用可编程的DPU SoC正在成为云厂商在数据中心建设中的关键部件。DPU SoC 可以实现对数据中心中的计算资源和网络资源的经济高效管理,具备丰富功能和可编程能力的 DPU SoC 可以支持不同云计算场景和资源统一管理,优化数据中心计算资源利用率。

可以看到 DPU 技术是由需求驱动,然后快速发展起来的新技术形态。近几年来,经过国内外互联网公司在不同应用场景下的尝试和验证,取得了不错的成本收益。例如在国外AWS 使用NitroDPU 系统把网络、存储、安全和监控等功能分解并转移到专用的硬件和软件上,将服务器上几乎所有资源都提供给服务实例,降低了数据中心总体的运行成本;在国内阿里云发布了云基础设施处理器 CIPU,实现了网络、存储、虚拟化全硬件卸载。

随着 DPU 技术的不断完善和功能定位的逐步明晰,DPU的生态建设也在积极推进,在行业内取得了很大的进展。在国外,首先 Nvidia 推动DOCA 软件栈的发展,促进和降低终端用户对 DPU 的使用门槛。从CUDA 软件生态之于NvidiaGPU的作用,可以看到 DPU 软件生态对DPU 技术发展的重要性,因此DOCA 广泛受到了业界的持续关注。其次,除了DOCA之外,OPI(Open Programmable Infrastructure,开放可编程基础设施),在 2022 年 6 月由 Linux 基金会发布,旨在为基于DPU/IPU等可编程硬件承载的软件开发框架培育一个由社区驱动的开放生态,简化应用程序中的网络、存储和安全API,从而在开发运维、安全运维以及网络运维之间的云和数据中心中实现更具可移植性和高性能的应用程序。

在国内,也在积极推进 DPU 产业的软件生态建设。例如,2023年 6 月 ODPU 作为算网云开源操作系统(CNCOS)项目1.0的子项进行了发布,在 DPU 管理、计算卸载、存储卸载、网络卸载、安全卸载和 RDMA 支持等方面提供通用软件开发框架和兼容性接口。与此同时,如中国信息通信研究院、中国通信标准化协会等部门和组织,也在制定积极制定相应的标准,从多个维度,例如兼容性规范、硬件编程规范、应用生态接口规范等维度,来实现DPU的软硬件解耦和互联互通的互操作能力。当前,国内外都在围绕着 DPU 这个新兴技术积极推进相关软硬件生态的开发和迭代。并且,立足于国内,无论从行业本身还是来自政策的引导,都在积极推动着DPU 的生态建设和标准化进程。不过需要强调的是,目前 DPU 的生态发展还处在早期。软硬件都还面临诸多挑战。例如在硬件层面,服务器中的电源管理、BMC 带外管控逻辑与 DPU 的需求并不完全匹配;在软件层面还没有形成统一的软件栈(包括 SDK 和运行时环境),也没有完善的定义清晰的 API 接口实现与云平台软件系统的兼容性对接;在操作系统层面,例如 Linux、windows、VMware 以及各类国产操作系统(OpenEuler 等),也面临适配的需求。长期来看,DPU生态建设是一个不断迭代长期完善的过程。

在 DPU 的设计、开发和使用中,国内外芯片巨头和头部云服务商都投入了大量的研发资源,经过不断探索和实践,取得了很好的成本收益。 1.DPU在AWS(亚马逊云)中的应用AWS 是全球领先的云计算服务和解决方案提供商,AWSNitroDPU 系统已经成为 AWS 云服务的技术基石。AWS 借助NitroDPU系统把网络、存储、安全和监控等功能分解并转移到专用的硬件和软件上,将服务器上几乎所有资源都提供给服务实例,极大地降低了成本。Nitro DPU 在亚马逊云中的应用可以使一台服务器每年可以多获得几千美元的收益。

2.Nvidia DPU的应用 Nvidia 是一家以设计和销售图形处理器GPU 为主的半导体公司,GPU 产品在 AI 和高性能计算HPC 领域被广泛应用。2020年 4 月,Nvidia 以 69 亿美元的价格收购了网络芯片和设备公司Mellanox,随后陆续推出 BlueField 系列DPU。

图 7 Nvidia BlueField-3 DPU 介绍(来源Nvidia 官网)Nvidia BlueField-3 DPU(如图7 所示)延续了BlueField-2DPU 的先进特性,是首款为 AI 和加速计算而设计的DPU。BlueField-3 DPU 提供了最高 400Gbps 网络连接,可以卸载、加速和隔离,支持软件定义网络、存储、安全和管控功能。3.Intel IPU的应用 Intel IPU 是一种具有硬化加速器和以太网连接的高级网络设备,可使用紧密耦合的专用可编程内核来加速和管理基础设施功能。IPU 提供完整的基础设施卸载,并充当运行基础设施应用的主机控制点,以提供额外的安全层。使用Intel IPU,可以将全部基础设施业务从服务器卸载到IPU上,释放服务器CPU资源,也为云服务提供商提供了一个独立且安全的控制点。

2021 年,Intel 在 Intel Architecture Day 上发布了OakSprings Canyon 和 Mount Evans IPU 产品(如图8 所示)。其中,Oak Springs Canyon 是基于FPGA 的IPU 产品,MountEvansIPU 是基于 ASIC 的 IPU 产品。 Intel Oak Springs Canyon IPU 配备了Intel AgilexFPGA和 Xeon-D CPU。Intel Mount Evans IPU 是Intel 与Google共同设计的 SoC (System-on-a-Chip),Mount Evans 主要分为IO子系统和计算子系统两个部分。网络部分用ASIC 进行数据包处理,性能相比 FPGA 高很多,且功耗更低。计算子系统使用了16个 ARM Neoverse N1 核心,拥有极强的计算能力。

4.DPU在阿里云中的应用 阿里云也在 DPU 的技术上不断进行着探索。2022年阿里云峰会上,身是基于神龙架构的 MoC 卡(Micro Server on a Card),从功能和定位符合 DPU 的定义。MoC 卡拥有独立的IO、存储和处理单元,承担了网络、存储和设备虚拟化的工作。第一代和第二代MoC 卡解决了狭义上的计算虚拟化零开销问题,网络和存储部分的虚拟化仍由软件实现。第三代MoC 卡实现了部分网络转发功能硬化,网络性能大幅提升。第四代MoC 卡实现了网络、存储全硬件卸载,还支持了 RDMA 能力。阿里云 CIPU 作为一颗为飞天系统设计的数据中心处理器系统,对于阿里云构建新一代完整的软硬件云计算架构体系有着重大意义。阿里云正式发布了云基础设施处理器CIPU,CIPU的前