目录
文章目录
- 目录
- SmartNIC/DPU 的发展历史
- Smart NIC
- DPU
- 以数据为中心的计算架构
SmartNIC/DPU 的发展历史
传统 NIC(网络接口卡)是一个 PCIe 设备,它仅实现了与以太网的连接,即:实现了 L1-L2 层的逻辑,负责 L2 层数据帧的封装/解封装,以及 L1 层电气信号的相应处理;而由 Host CPU 则负责处理网络协议栈中更高层的逻辑。即:CPU 按照 L3-L7 层的逻辑,负责数据包的封装/解封装等工作;
近些年,随着云计算、大数据、AI、5G 等新兴 ICT 技术及业务的发展,对底层基础设施有着 2 个显著的需求:
异构计算(CPU、GPU、FPGA、DSA 等)的崛起:使得数据在 CPU 和 GPU 等加速器之间来回移动,导致了额外的加速速率消耗。以 CPU 为中心的计算模型,整个 IO 路径太长,成为了性能瓶颈。
数据中心网络流量的高速增长:在 10Gb/s 和 25Gb/s 场景中,传统 NIC 的表现让人可以接受,只是 CPU 会因为处理大量数据报文导致运行缓慢。但当速度提升到 25Gb/s 以后,CPU 的运行就会开始阻塞。根据 Fungible 和 AWS 的统计,在大型数据中心中,网络流量的处理占到了计算的 30% 左右,即:CPU 30% 的 workload 都是在做流量处理,这个开销被形象的称作数据中心税(Datacenter Tax)。
无论是异构计算的诉求,还是高速增长的网络流量都对传统 NIC 的数据传输方式发起了强烈的挑战。因为冯·诺依曼体系作为一种程序存储计算机,在异构计算和内存技术高速发展的今天,CPU 和 Memory 之间的通信带宽就成为了计算性能的瓶颈,乃至于形成为一道无形的 “内存墙”。
而解决 “内存墙” 最直接的思路,就是让计算发生在靠近数据产生的地方,从而降低通信量,进而规避冯诺依曼架构的瓶颈。基于这个思路,业内陆续提出了各种各样的 Hardware Offload 方案,将各种 CPU 的 workload 卸载(Offload)到外设扩展卡上进行处理。
- Offload Computing
- In-Network-Computing
- In-Memory-Computing
- In-Storage-Computing
最初的方式就是增加 NIC 的 workload 处理能力,例如:现代 NIC 普遍实现了部分 L3-L4 层逻辑的 offload,例如:校验和计算、传输层分片重组等,以此来减轻 Host CPU 的处理负担。甚至有些专用 NIC,例如:RDMA 网卡,还会将整个 L4 层的处理都 offload 到了硬件上。
综上所述,诞生 Hardware Offload 的主要原因是数据传输速率相对于 CPU 算力的差距持续扩大,激发网络侧专用计算的需求。而随着网络传输速率 100Gbps 浪潮的到来,且未来快速向 200Gbps 与 400Gbps 发展,Host CPU 将面临更大的压力,市场上需要一种具有更强卸载能力的新型 NIC —— Smart NIC。
Smart NIC 通过在 NIC 上引入 SoC 或者 FPGA 的方式加速某些特定流量应用,从而加强网络的可靠性,降低网络延迟,提升网络性能。而 DPU 则希望比 SmartNIC 更加彻底的解决上述问题,它提出了 Data Centric(以数据为中心)的理念。
Smart NIC
简而言之,SmartNIC 就是通过从 Host CPU 上 Offload(卸载)工作负载到网卡硬件,以此提高 Host CPU 的处理性能。其中的 “工作负载” 不仅仅是 Networking,还可以是 Storage、Security 等等。
DPU
DPU 将成为未来计算发展的三大支柱之一:
- CPU 负责通用计算。
- GPU 负责加速计算
- DPU 负责数据中心内部的数据传输和处理。
在数据中心,将更多 CPU 和 GPU 的 workload offload 到 DPU(Data Processing Unit,数据处理单元)中,使得计算、存储和网络变得更加紧耦合。
DPU 比 SmartNIC 更彻底的实现了让计算发生在靠近数据产生的地方。
随着 DPU 的诞生,数据中心网络向主机内部延伸,DPU 实现了流量调度、I/O 路由、加速,从而成为真正的 Fabric 端点。
DPU 需要具有以下关键特性。
以数据为中心的计算架构
2016 年,微软在顶级会议 Micro 上发表的《A Cloud-Scale Acceleration Architecture》显示了其在数据中心体系架构上的勃勃野心。现在,进入微软数据中心的每一个服务器上均带有一块 FPGA 板卡,其基本的架构如下:
论文中涉及到的应用场景包括:
- 网络加速,例如:网络数据包加解密;
- 本地应用加速,例如:Bing 加速、DNN 延时敏感性业务加速;
- 支持 FGPA 之间通信,FPGA 计算资源池化,提供 Hardware-as-a-Service 的概念,将 FPGA 和服务器解耦。
以数据为中心的计算架构正在发生改变。
传统云计算架构:
DPU 构建下的云计算架构:
DPU 复用的云计算架构: