智能网卡知识


主要介绍智能网卡(Smart NIC)的概念、架构,以及未来的主流发展方向DPU(Data Processing Unit)的发展现状。

1 智能网卡概念

传统网卡仅实现了L1-L2层的逻辑,而由Host CPU负责处理网络协议栈中更高层的逻辑。即:CPU按照L3-L7的逻辑,负责数据包的封装与解封装;网卡则负责更底层的L2层数据帧的封装和解封装,以及 L1 层电气信号的相应处理。为适应高速网络,现代网卡中普遍卸载了部分L3-L4层的处理逻辑,例如校验和计算、传输层分片重组等,来减轻Host CPU的处理负担。甚至有些网卡还将整个L4层的处理都卸载到硬件上,以完全解放Host CPU。得益于这些硬件卸载技术,Host OS的网络协议栈处理才能与现有的高速网络相匹配。

然而,由于SDN、NFV 驱动的云计算/数据中心网络通信的快速增长,随着VXLAN等Overlay网络协议,以及OpenFlow、Open vSwitch等虚拟交换技术的引入,使得基于服务器的网络数据平面的复杂性急剧增加。网络接口带宽的增加,意味着在软件中执行这些功能会给CPU资源造成难以承受的负载,留给应用程序运行的CPU资源很少或根本没有。传统网卡固定功能的流量处理功能无法适应SDN和NFV。随着100G浪潮的到来,Host CPU将面临更大的压力,异构计算Offload(异构加速技术)已是大势所趋。市场上需要一种具有更强卸载能力的新型智能网卡。

智能网卡就是通过从Host CPU上卸载工作负载到网卡硬件,以此提高Host CPU的处理性能。其中的 “工作负载” 不仅仅是 Networking,还可以是Storage、Security等。智能网卡的实现方式多样,主要有多核智能网卡、基于FPGA的智能网卡、FPGA增强型智能网卡,具体说明如下:

  • 多核智能网卡,基于包含多个CPU内核的ASIC芯片:ASIC 具有价格优势,但灵活性有限,尽管基于ASIC的NIC相对容易配置,但最终功能将受到基于ASIC中定义的功能的限制,这可能会导致某些工作负载无法得到支持。
  • 基于FPGA的智能网卡:FPGA是高度可编程的,并且可以相对有效地支持几乎任何功能,不过众所周知的是,FPGA 最大的问题是编程难度大且价格昂贵。
  • FPGA增强型智能网卡,将 FPGA与ASIC网络控制器相结合。对向后兼容性的需求催生了FPGA增强型智能网卡,它为多核智能网卡网卡增加了FPGA 功能。

在这里插入图片描述

2 智能网卡架构

通过将CPU处理的网络任务卸载到智能网卡上,达到释放宝贵CPU资源、提升数据处理性能(网络带宽、吞吐量)的目的。以基于FPGA的智能网卡为例,介绍智能网卡的发展历程。

  • base NIC:采用多个Ethernet MAC和一个用于Host CPU接口的PCIe Block。Host CPU必须处理所有的Ethernet通信,包括主动的从NIC的存储器读取pkts。
  • 添加DMA Engine功能。NIC的存储器Mapping到Memory,CPU可以直接从Memory读取pkts,而不需要从NIC存储器中Copy,从而减少了Host CPU 的工作负载。
  • 添加Filter Engine功能。过滤器会阻止无需Host CPU处理的pkts,进一步减少了Host CPU的任务负载。
  • 添加外部DRAM到Filter Engine。外部DRAM用于存储Filter Engine的Rules,有了足够的外部DRAM,NIC可以管理数百万条规则。
  • 添加L2/L3 Offload Engine功能。用于处理NIC的Ethernet Ports之间的低层L2交换和L3路由,进一步减少Host CPU的工作负载。同样的,可以为L2/L3 Offload Engine共用外部DRAM来缓冲网络数据包。
  • 添加Tunnel Offload Engine功能。用于卸载各种隧道协议封包(例如VxLAN、GRE),并进一步减轻Host CPU的周期密集型隧道性需求。
  • 添加Deep Buffering(深度缓冲)外部存储。用于对输入的pkts进行深度缓冲,从而实现了线速数据包交换和具有多个队列的分层QoS调度。
  • 添加一个具有自己的外部DRAM存储的Flows Engine功能。使Smart NIC的Routing Engine能够处理数百万个路由表条目,同时还有助于卸载NAT/PAT网络能力。
  • 添加TCP Offload Engine功能。用于处理TCP协议的全部或部分工作,这样可以在不消耗更多CPU周期的情况下提高Smart NIC性能。
  • 添加QoS Engine功能。Smart NIC以此提供SLA(服务等级协议)功能,而无需Host CPU的干预。
  • 添加一个可编程的数据包解码器。该解码器将类似P4的可编程功能集成到Smart NIC中。P4是一种标准的网络编程语言,专门用于描述和编程分组数据包转发面的操作。
  • 添加一个或多个ASIC板载处理器。它们为Smart NIC提供了完整的软件可编程性(用于诸如OAM等任务),进一步实现了Host CPU的任务卸载。

在这里插入图片描述

3 DPU芯片功能

DPU (Data Processing Unit)是以数据为中心构造的专用处理器,采用软件定义技术路线支撑基础设施层资源虚拟化,支持存储、安全、服务质量管理等基础设施层服务。2020年NVIDIA公司发布的DPU产品战略中将其定位为数据中心继CPU和GPU之后的“第三颗主力芯片”,掀起了一波行业热潮。DPU的出现是异构计算的一个阶段性标志。与GPU的发展类似,DPU是应用驱动的体系结构设计的又一典型案例;但与GPU不同的是,DPU面向的应用更加底层。DPU要解决的核心问题是基础设施的“降本增效”,即将“CPU处理效率低下、GPU处理不了”的负载卸载到专用DPU,提升整个计算系统的效率、降低整体系统的总体拥有成本。DPU的出现也许是体系结构朝着专用化路线发展的又一个里程碑。

DPU最直接的作用是作为CPU的卸载引擎,接管网络虚拟化、硬件资源池化等基础设施层服务,释放CPU的算力到上层应用。以网络协议处理为例,要线速处理10G的网络需要大约4个Xeon CPU核,也就是说,单是做网络数据包处理,就可以占去一个8核高端CPU一半的算力。如果考虑40G、100G的高速网络,性能的开销就更加难以承受了。Amazon把这些开销都称之为“Datacenter Tax”,即还未运行业务程序,先接入网络数据就要占去的计算资源。

DPU可以成为新的数据网关,将安全隐私提升到一个新的高度。在网络环境下,网络接口是理想的隐私的边界,但是加密、解密算法开销都很大,例如国密标准的非对称加密算法SM2、哈希算法SM3和对称分组密码算法SM4。如果用CPU来处理,就只能做少部分数据量的加密。在未来,随着区块链承载的业务的逐渐成熟,运行共识算法POW,验签等也会消耗掉大量的CPU算力。而这些都可以通过将其固化在DPU中来实现,甚至DPU将成为一个可信根。

DPU也可以成为存储的入口,将分布式的存储和远程访问本地化。随着SSD性价比逐渐可接受,部分存储迁移到SSD器件上已经成为可能,传统的面向机械硬盘的SATA协议并不适用于SSD存储,所以,将SSD通过本地PCIe或高速网络接入系统就成为必选的技术路线。NVMe (Non Volatile Memory Express)就是用于接入SSD存储的高速接口标准协议,可以通过PCIe作为底层传输协议,将SSD的带宽优势充分发挥出来。同时,在分布式系统中,还可通过NVMe over Fabrics (NVMe-oF)协议扩展到InfiniBand、Ethernet、或Fibre channel节点中,以RDMA的形式实现存储的共享和远程访问。这些新的协议处理都可以集成在DPU中以实现对CPU的透明处理。进而,DPU将可能承接各种互连协议控制器的角色,在灵活性和性能方面达到一个更优的平衡点。

DPU将成为算法加速的沙盒,成为最灵活的加速器载体。DPU不完全是一颗固化的ASIC,在CXL、CCIX等标准组织所倡导CPU、GPU与DPU等数据一致性访问协议的铺垫下,将更进一步扫清DPU编程障碍,结合FPGA等可编程器件,可定制硬件将有更大的发挥空间,“软件硬件化”将成为常态,异构计算的潜能将因各种DPU的普及而彻底发挥出来。

目前国外的DPU芯片发展的最好的应该是英伟达的BlueField,已发展到第3代。NVIDIA BlueField-3数据处理单元(DPU)是第三代基础设施计算平台,使组织能够构建从云到核心数据中心到边缘的软件定义、硬件加速的IT基础设施。通过400Gb/s以太网或NDR 400Gb/s InfiniBand网络连接,BlueField-3 DPU可以卸载、加速和隔离软件定义的网络、存储、安全和管理功能,从而极大地提高数据中心的性能、效率和安全性。BlueField-3在I/O路径上提供强大的计算能力和广泛的可编程加速引擎,可以完美地满足最苛刻应用程序的基础设施需求,同时通过NVIDIA DOCA软件框架提供完整的软件向后兼容性。

在这里插入图片描述
同时,英特尔也提出了IPU (Infrastructure Processing Unit)的概念,功能与DPU基本相同。IPU将基于硬件的数据路径(包括 FPGA)与处理器内核相结合,使得基础设施以硬件的速度处理,能够跟上不断提高的网络速度和软件实现控制平面功能的灵活性。IPU具有以下三个优势:基础设施功能和租户工作负载物理分离允许用户完全控制CPU;供应商可以将基础设施任务完全卸载给IPU,有助于提高CPU资源利用率,最大化收益;实现完全无磁盘服务器架构的云数据中心。Intel认为IPU将成为未来数据中心架构的核心组件,在2021年的Intel Architecture Day上,Intel推出了基于FPGA和ASIC的两种实现方式的产品。其中,Oak Springs Canyon和Arrow Creek是针对云和通信的基于FPGA的IPU产品,Mount Evans是基于ASIC的IPU产品。

在这里插入图片描述

在这里插入图片描述
国内做的比较好的应该是中科驭数,发布了关于DPU的白皮书,基于自研的KPU (Kernel Processing Unit)架构,研发了业界首个支持网络数据库一体化加速功能的DPU芯片。除了传统的网络协议处理及相关应用卸载,中科驭数的DPU主要涉及芯片级别的运算功能,用于承载数据库及大数据处理中的核心运算负载,在后摩尔定律时代,提供了高效能的算力支撑。目前中科驭数的DPU在数据中心、金融计算加速、边缘计算加速领域都有相应的应用。
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值