0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SmartNIC、DPU和IPU的定义和分类

jf_C6sANWk1 来源:软硬件融合 作者:软硬件融合 2022-10-28 09:49 次阅读

关于SmartNIC、DPU、IPU的定义和分类,在上一篇发布了STH的NIC分类框架之后,觉得这个分类有很大的问题。每家的功能集合不同,即使同一个功能,定义也不完全相同。并且,具体的实现形态还有不同:有FPGA的实现、NP的实现以及芯片的实现。如果把把这些具体的因素都考虑进去以后,整个定义和分类逻辑会非常混乱。

本文透过现象看本质:忽略具体的实现形态,只考虑实现的功能;并且,我们把具体功能抽象化,避免不同厂家具体产品功能集的不同以及功能定义的差异导致的划分困难和混淆。基于上述两个原则,站在软硬件融合的视角,给出了SmartNIC、DPU和IPU的定义。

1 软硬件融合基础

eae10f00-5661-11ed-a3b6-dac502259ad0.png

按照单位计算(指令)的复杂度,处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA和ASIC。从左往右,单位计算越来越复杂,灵活性越来越低。

随着软件新技术不断涌现以及技术的迭代越来越快,但硬件规模越来越大但更新换代却越来越慢。芯片开发高投入高风险等,严重制约着软件的进一步发展空间。

软硬件融合,强调要在更系统的层次理解软件和硬件,以及两者之间的关系和相互作用。在架构上指的是CPU+协处理器+GPU+FPGA+DSA+ASIC的超异构混合架构。目标是让硬件更加灵活、弹性、可扩展,弥补硬件和软件之间的鸿沟,并且能够兼顾软件灵活性和硬件高性能,实现既要又要。

2 DPU/IPU的本质

2.1 名称解释

SmartNIC,智能网卡;

DPU,Data Processing Unit,数据处理器;

IPU,Infrastructure Processing Unit,基础设施处理器;

eIPU,elastic IPU,弹性的基础设施处理器。

2.2 CPU性能瓶颈,必须卸载和加速

eaf1c228-5661-11ed-a3b6-dac502259ad0.png

上世纪80-90年代,每18个月,CPU性能提升一倍,这就是著名的摩尔定律。如今,CPU性能提升每年只有3%,要想性能翻倍,需要20年。CPU的性能提升已经达到瓶颈。

eb08aa24-5661-11ed-a3b6-dac502259ad0.png

因此,随着网络、存储等IO的处理带宽增加,各种相关的IO处理对CPU的消耗呈现完全增长的局面。这样,底层基础设施Workload所占的CPU资源越来越多,留给用户应用的CPU资源越来越少。

eb1a1d22-5661-11ed-a3b6-dac502259ad0.png

这样,把基础设施层的所有任务都从Host CPU转移到DPU或IPU中,把CPU完整的交给业务应用,达到了业务和管理分离。

业务和管理分离是云运营商最看中的价值,其优势体现在:

CPU资源完全交付;

更高可扩展性,灵活主机配置;

传统客户方便上云(虚拟化嵌套);

主机侧安全访问;

物理机的性能 + 虚拟机的可扩展性及高可用;

统一公有云和私有云运维。

2.3 卸载和加速的区别

卸载不一定加速,加速不一定卸载。

一个Workload在CPU运行,则定义为软件运行。一个任务在协处理器、GPU、FPGA、DSA或ASIC运行,则定义为硬件加速运行。

在CPU和DPU/IPU的场景下,卸载指的是把一个Workload从上面的CPU卸载到DPU/IPU。根据卸载的完整与否,卸载可以分为:

部分卸载,只卸载数据面,控制面依然在Host CPU;

完全卸载,数据面和控制面都卸载,控制面运行在DPU/IPU内部的嵌入式CPU。

根据数据面卸载到的处理引擎不同,可以将卸载分为:

软件卸载,即将Workload从Host CPU卸载到DPU/IPU内部的嵌入式CPU;

硬件加速卸载,即将Workload的数据面完全由DPU/IPU内部的其他类型(协处理器、GPU、FPGA、DSA、ASIC)硬件加速引擎来处理。

加速和卸载最大的区别在于,加速一般是一个系统内的协作,基于CPU+xPU的架构,把系统内可加速部分拆分到xPU去运行。而卸载更多强调的是两个系统间的协作,把一个系统卸载到另一个运行实体,然后通过特定的接口交互。

2.4 DPU/IPU的核心功能和扩展功能

eb49ca22-5661-11ed-a3b6-dac502259ad0.png

DPU/IPU所做的事情,简单来说,分为两类:

第一类是处于应用之下的各种通用任务的卸载&加速,这类工作属于DPU的“本职”工作。因此,DPU/IPU的核心功能是通用任务的卸载和加速。

另一类,是业务应用的加速。这一类工作通常是独立GPU和AI等加速器要做的工作。但是,在一些轻量的场景,独立的加速器有些浪费。在DPU内部集成业务加速引擎,可以有效降低数据交互的代价,使得整个计算更加高效。因此,DPU/IPU的扩展功能是业务应用的弹性加速。

2.5 卸载是一个过程:系统从软件向硬件逐步沉淀

eb5af0b8-5661-11ed-a3b6-dac502259ad0.png

CPU已经达到性能瓶颈,随着整个系统的算力需求依然不断的上升。这样,系统中的工作任务势必不断的从CPU软件卸载到DPU/IPU中的 “硬件”进行加速。

但,从系统从软件卸载到硬件,不是一个一蹴而就的事情,而是一个长期的过程。因此,我们需要有一个很好的平台框架来支持任务持续不断的卸载到硬件来加速。

3 BasicNIC - SmartNIC - DPU - IPU - eIPU

3.1 综述

SmartNIC/DPU/IPU有各种不同形态的实现,比如基于Network Processor的实现、基于FPGA+CPU的实现,或者基于单芯片SOC的实现。如果要考虑各种不同形态的实现载体,也要考虑具体的功能分类,那势必对SmartNIC/DPU/IPU的划分会五花八门,这样反而会混淆对整件事情的认知。

软硬件融合对SmartNIC/DPU/IPU的定义:

透过现象看本质,忽略具体的实现形态,只考虑实现的功能;

把功能抽象化,避免不同厂家具体产品功能集的不同以及功能定义的差异导致的划分困难和混淆。

我们认为,从基础的网络设备,发展到后面的eIPU,是一个设计规模逐步增大,功能逐步增强的过程。具体如下表所示。

注意:需要强调的是,这里的每个阶段的名称和其他各个厂家命名的SmartNIC、DPU、IPU的概念并不一一对应。

eb65ce7a-5661-11ed-a3b6-dac502259ad0.png

3.2 基础状态,标准NIC,无卸载

最开始的状态,严格来说,应该是IO设备,而不仅仅是网络设备。至少还有一个需要考虑的高速IO设备:存储控制器

但考虑到,我们讨论的这个处理设备,一端是要支持PCIe接口,另一端需要支持高速网络接口,跟网络NIC非常接近。因此,我们可以当做是在标准NIC上的扩展,不断的叠加新的功能,包括叠加存储控制器以及其他存储相关功能。

标准NIC,不支持Workload的卸载,主要是接口卡的功能,内部完成TCP/IP层以下PHY/MAC层的工作。几乎所有现代NIC都有一些非常基本的卸载,例如CRC校验和大包的拆包/封包。案例如Intel经典网卡82599系列,这里不做详细介绍。

3.3 第一阶段,SmartNIC,卸载单点的网络

ebc29902-5661-11ed-a3b6-dac502259ad0.png

SmartNIC最经典案例是NVIDIA Networking的CX5系列。CX5支持ASAP2加速,可以把网络相关Workload卸载到eSwitch,即Fast path跑在硬件中,只有Slow path及控制面需要送到Host CPU。

在CX5中不具有独立的CPU运行OS和软件,因此所有的相关软件部分依然运行在Host CPU。

3.4 第二阶段,DPU,卸载IO底层处理,横向扩展成线

云计算数据中心的每一台服务器和交换机都运行独立的堆栈,然后这些分布式的堆栈使得整个数据中心组成了一个完全池化的超级仓储计算机。每台服务器运行的复杂的、分层的系统,CPU性能瓶颈已经不堪重负。并且,数据中心的规模都日益庞大,一些主流的云运营商动辄百万台以上的服务器规模。

量变引起质变,这些趋势促使了一个效果:运行在每台服务器的底层Workload变的越来越趋同,例如,虚拟网络、分布式存储、安全加解密、虚拟化和容器等任务几乎存在于每台服务器中。DPU/IPU最核心的功能,就是要进行这些规模庞大的、性能敏感的通用任务的加速,这样才能产生显著的性能的提升和成本的优化。

ebd54462-5661-11ed-a3b6-dac502259ad0.png

NVIDIA BlueField-2是一个高度集成的DPU,集成ConnectX-6 DX网络适配器与ARM处理器核阵列。BlueField-2 DPU:

通过ASAP2的网络加速方案以及完整的数据面及控制面卸载,可以高效、高性能的支持虚拟化、裸金属、边缘计算场景的快速部署;

通过SNAP机制为存储提供完整的端到端解决方案;

集成了各种安全加速,可以为数据中心提供隔离、安全性和加解密加速功能;

集成的ARM Core可以运行基础设施层的虚拟化、管理监控等功能。

除了NVIDIA Bluefield DPU之外,其他可以划归到DPU分类的产品有:

NITRO系统。Nitro系统用于为AWS EC2实例类型提供网络硬件卸载、EBS存储硬件卸载、NVMe本地存储、远程直接内存访问(RDMA)、裸金属实例的硬件保护/固件验证以及控制EC2实例所需的所有业务逻辑等。

Fungible DPU。Fungible DPU采用通用多线程处理器,结合标准以太网和PCIe接口。其他硬件组件包括高性能的片上Fabric、定制的内存系统、一套完整的灵活数据加速器、可编程网络硬件流水线、可编程PCIe硬件流水线。

Pensando DPU。包括网络功能(交换和路由、L3 ECMP, L4负载均衡、Overlay网络VXLAN等、IP-NAT等)、安全功能(微分段、DoS保护、IPsec终止、TLS/DTLS终止等)以及存储功能(NVMe over TCP/RoCEv2、压缩/解压、加密/解密、SHA3重复数据删除、CRC64/32校验和等)。

Intel IPU。IPU使用专用协议加速器加速基础设施功能,包括存储虚拟化、网络虚拟化和安全性。允许灵活的工作负载放置来提高数据中心利用率。

Marvell DPU。Marvell OCTEON 10集成ARM Neoverse N2内核、1Tb的交换机,支持内联加密,基于VPP的硬件加速器可将数据包处理速度提高多达5倍,基于机器学习的硬件加速引擎比软件处理性能提升100倍。

3.5 第三阶段,IPU,卸载更多层次的工作任务,纵向扩展从线成面

IPU阶段,最显著的特点是把业务加速也集成进来,这是DPU/IPU的一个长期的目标。但业务加速跟底层的通用任务加速相比,具有一些新的挑战:

一方面,业务应用五花八门,远比底层任务要数量众多。具体到每台服务器要运行什么任务,是完全未知的;

另一方面,业务系统和算法通常处于一个快速迭代持续更新的状态,这样,势必要求硬件加速引擎也能够快速编程和快速更新。

基于上述挑战,业务加速需要的是一个足够弹性的、可快速编程的,并且具有显著加速效果的加速平台。因为研发、运维和性能/成本等多方面考虑,这个平台还需要规模足够庞大,并且硬件完全一致性。

ebe05956-5661-11ed-a3b6-dac502259ad0.png

严格来说,目前还没有符合IPU阶段的产品面市。但有一些这方面的趋势:

添加AI加速。NVIDIA在即将发布的Bluefield-3X板卡集成独立DPU和独立AI两颗芯片,而Bluefield-4则是单芯片集成DPU+AI加速器。而Marvell先NVIDIA一步,率先发布了集成AI推理加速引擎的OCTEON 10 DPU。

添加FPGA弹性加速。Intel IPU和Xilinx SmartNIC当前都是FPGA+CPU的架构的,理论上可以通过FPGA编程的方式快速实现。但“用户要的是牛奶,而不是奶牛”,不是简单的把一个完整的FPGA交给用户就OK。而是要像FaaS那样,把基础的环境准备好,用户只是开发主机的加速内核和相应的控制面驱动而已。

3.6 第四阶段,eIPU,任务引擎软硬件均衡,扩展从面成体

ec513914-5661-11ed-a3b6-dac502259ad0.png

在eIPU阶段,把每个Workload均细致的权衡,把它映射到最合适的处理引擎,CPU、ASIC、DSA或者GPU、FPGA。并且,处理引擎间能够实现完全灵活的任务间数据交互,包括对外部提供的接口,就如同软件的IPC/RPC/Restful等交互接口一样灵活。

eIPU是众多Workload的集合体:

在内部,每个Workload均运行在最合适的处理器引擎,可以达到最极致的性能;

在内部,Workload之间的数据交互足够高性能足够灵活;

对外部,提供类似软件的服务API接口。

微服务无处不在,把eIPU融入到微服务体系中去。eIPU既是微服务供其他微服务调用,同时,eIPU也可以调用其他微服务。

4 总结,DPU/IPU成功的关键,平衡好性能和灵活性

ec5d1d7e-5661-11ed-a3b6-dac502259ad0.png

DPU/IPU本质上是在做硬件加速。站在硬件加速的角度,数据中心的整个计算架构跟手机端完全没法比。如上图所示,是高通在2014年发布的骁龙810处理器SOC的布局图。手机端一直都是CPU+各种加速器的混合计算架构。

在手机端已经非常成熟的架构,在数据中心端为何如此姗姗来迟?原因在于,数据中心中业务应用的Workload,具有非常大的不确定性,因此需要提供足够通用和灵活的计算平台:

最开始,性能不是问题,CPU是最优的选择;

随着人工智能兴起后,对算力的需求越来越高。这才有了GPU平台的兴起;

即使对算力如此渴求,DSA类加速的AI处理器依然没有形成大规模落地,支撑AI训练和推理的还主要是GPU平台。

这说明一个道理:在数据中心领域(或者说高速迭代的复杂场景),如果不能提供灵活性(或者说易用性、可编程性),提供再多的性能都是“无本之木”。

反过来,如果想提供尽可能好的灵活性,最极端的做法依然是采用CPU。但这个设计要么性能不够,要么代价太高。

基于平衡灵活性和性能的考虑,最优的设计应该是:在满足一定的成本约束条件下,在提供一定灵活可编程能力的情况下,提供最极致的性能。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DPU
    DPU
    +关注

    关注

    0

    文章

    294

    浏览量

    23968
  • 协处理器
    +关注

    关注

    0

    文章

    70

    浏览量

    17997
  • IPU
    IPU
    +关注

    关注

    0

    文章

    34

    浏览量

    15456
  • SmartNIC
    +关注

    关注

    0

    文章

    17

    浏览量

    3171

原文标题:软硬件融合视角的SmartNIC、DPU和IPU定义

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    英伟达开启的DPU跑道

    也不知是谁想出来的DPU这个名字,要说卖概念的话,“数据处理单元”这样的命名可以说是最模糊的定义了。不过业界基本都产生了共识,DPU主要作为CPU的卸载引擎,释放CPU的算力,用于网络处理一类的工作
    的头像 发表于 05-18 00:08 3091次阅读

    SmartNIC走向DPU,专用加速器的崛起

    的CPU、GPU、APU之外,按照处理对象的不同,在人工智能和深度学习的崛起下,NPU和TPU也纷纷出现。   DPU模糊的定义   不过这些已经定义明确的处理单元并不是我们今天的主角,而是找到了全新
    的头像 发表于 06-25 01:17 4149次阅读

    芯启源首次公开"SmartNIC第四代架构"如何赋能DPU蓝海

    DPU厂商共同参与了智能网卡(SmartNIC)最佳架构小组讨论。   芯启源第四代智能网卡(SmartNIC)   智能网卡(SmartNIC)是具有自身处理能力和内存的网络
    的头像 发表于 05-05 14:53 3882次阅读
    芯启源首次公开&quot;<b class='flag-5'>SmartNIC</b>第四代架构&quot;如何赋能<b class='flag-5'>DPU</b>蓝海

    DPU赛道火热,初创公司赢面更大?

    上回我们提到了SmartNIC,以及这种智能网卡对于数据中心来说究竟起到了何种举足轻重的作用。然而,在英伟达于2020年提出DPU(data processing units)数据处理单元这一
    的头像 发表于 03-04 07:25 3301次阅读

    PCIe的SmartNIC如何改变方案加速规则

    神奇,能以 CXL 和 CCIX 两种新协议的形式允诺在 CPU 与 SmartNIC 或协处理器等加速器之间实现高效的通信。  CXL  我们先谈 CXL。它提供了定义清晰的主从模式。在这种模式下
    发表于 01-07 17:31

    SmartNIC与普通NIC的区别

    XtremeScale 则专注于 Linux 内核旁路。这些控制器的功能非常出色,它们代表了业界最出色的控制器,但它们不能算是 SmartNIC。  在本文中,我们将 SmartNIC 定义为一个允许附加软件的 NIC
    发表于 01-07 17:41

    专⽤数据处理器 (DPU) 技术⽩⽪书

    705.1. NVIDIA BLUEFIELD 705.2. INTEL IPU(MOUNT EVANS) 735.3. MARVELL OCTEON 775.4. FUNGIBLE DPU 815.5. 中科驭数 K2 DPU
    发表于 03-14 17:35

    什么是DPU

    安全的、裸性能的、原生云计算的下一代云上大规模计算至关重要。 DPU:集成到SmartNIC DPU可以用作独立的嵌入式处理器,但通常是被集成到SmartNIC(一种作为下一代服务器中
    发表于 11-03 10:55

    是什么让 SmartNIC 实现了智能化?

    PC 推出后不久便开始投放市场,但我们在过去的几年里才看到 SmartNIC 的出现。这一市场上的每家公司对 SmartNIC 产品的细分市场都有着不同定义。最基本的定义就如同一个可
    的头像 发表于 09-18 09:40 1930次阅读

    关于DPU的那些事

    bluefield改名为DPU。 后来的事情,就超出了老黄的想象,各种DPU公司风起云涌,甚至压过“AI”一头,成为了VC眼中的“新贵”,成为了风口。 对于网卡芯片行业,大家都在讲smartnic(智能网卡
    的头像 发表于 10-13 17:56 2991次阅读

    Fungible和英伟达在​DPU赛道上的进展

    电子发烧友网报道(文/周凯扬)上回我们提到了SmartNIC,以及这种智能网卡对于数据中心来说究竟起到了何种举足轻重的作用。然而,在英伟达于2020年提出DPU(data processing
    的头像 发表于 03-08 13:15 2560次阅读

    如何构建基于DPUSmartNIC

      您应该如何构建基于 DPUSmartNIC ,以及哪种 SmartNIC 对于每个工作负载来说是最好的……好吧,问题在于细节。深入了解哪些数据路径和虚拟化加速可用以及如何使用它们非常重要。
    的头像 发表于 04-19 15:51 1114次阅读
    如何构建基于<b class='flag-5'>DPU</b>的<b class='flag-5'>SmartNIC</b>

    如何使用多个DPU实现云级架构

    为了在数据中心充分实现应用程序的效率,传输卸载、可编程的数据平面以及用于虚拟交换的硬件卸载都是至关重要的功能。根据定义,支持这些功能是 SmartNIC 的重要部分,。但只是 DPU 的最基本要求之一, 并不能将
    的头像 发表于 04-19 15:58 885次阅读
    如何使用多个<b class='flag-5'>DPU</b>实现云级架构

    关于SmartNICDPU之间的疑惑

    随着云网络、人工智能、大数据、5G边缘计算的快速发展,数据流量呈指数级增长。CPU计算能力的增长赶不上网络传输速率的提升,网络侧对专业计算的需求急剧增加,DPU应运而生。
    的头像 发表于 07-07 09:42 713次阅读

    基于FPGA的SmartNIC技术及其在数据中心的应用

    自上世纪80 年代中期首批 PC 机面市后不久,网络接口卡 (NIC) 就已经进入了市场。然而,在过去的几年里,我们看到了 SmartNIC 的兴起。什么是 SmartNIC?按照最基本的定义
    的头像 发表于 08-02 08:03 1802次阅读