Amiya · 2021年10月09日

大话DPU—从网络到数据

2019年,NVIDIA 69亿美金收购了一家以色列的公司,Mellanox。

虽然贵,但是很值。

收购Mellanox之后,老黄把其中Mellanox产品线中一个不起眼的可编程的网卡系列bluefield改名为DPU。

后来的事情,就超出了老黄的想象,各种DPU公司风起云涌,甚至压过“AI”一头,成为了VC眼中的“新贵”,成为了风口。

对于网卡芯片行业,大家都在讲smartnic(智能网卡)的故事,智能网卡已经很高大上了,smartnic,智能网卡。

DPU这个故事一来,smartnic这个名字就从“小甜甜成”了“牛夫人”。

此一时,彼一时。

Mellanox成立于1999年,是以Infiniband产品而起家的,Infiniband主要是是一个用于高性能计算的计算机网络通信标准。Infiniband具有极高的吞吐量和极低的延迟,可以理解成串行化的总线。

infinity 无限的。band  带宽;infiniband这个名字直译“无限带宽”,非常霸气。

和普通人用的计算机网络比起来,Infiniband在带宽和时延上有优势。成本比网络高多了。 但是由于要额外部署的Infiniband交换机,其成本限定了只能在超算和存储领域这些商用领域使用。

Infiniband的HCA卡和Infiniband交换机。对应就是普通组网的网卡和网络交换机,因为Infiniband的HCA卡和网卡基本上外观一摸一样,技术也类似。都是一端PCIe,另一端高速的serdes。所以Mellanox轻车熟路的切入了网卡芯片领域。

在网卡芯片领域,这个和Infiniband不同,这个市场要“内卷”的多,intel在10G网卡时代,凭借82599,X710等多个型号,可以说在服务器网卡市场上,呼风唤雨。和intel的CPU一起配合,成为了各个厂商的首选。

而在网络从10G到25G转换节点上,Mellanox异军突起,成为了市场的佼佼者,Microsoft和Mellanox深度合作,让Mellanox在25G成功上位,取代了Intel和Broadcom在高端网卡的江湖地位。同时Mellanox给网卡带来了ROCE,一种基于ethernet的Infiniband的协议,这个是Mellanox的看家本领。数据中心向25G节点转换上,Mellanox成为了最大的赢家。

在2019年时,Mellanox已经称霸服务器网卡市场,是25G/100G解决方案最重要玩家之一。

Mellanox被intel和NVIDIA同时都看上了,intel开出了55亿-60亿美金的“彩礼”,而NVIDIA开出了接近70亿美金的价格。

最终NVIDIA赢了。

平心而论,intel有自己的网卡芯片团队,收购Mellanox只不过是锦上添花,而NVIDIA在网络这个方面毫无积累,所以NVIDIA更迫切,业务协同性更优,也更志在必得。

事实也证明如此!

从智能网卡到DPU,不仅是名字的称呼的改变。

说到DPU,先讲三个故事,看看DPU都干些什么东西。

1:卸载offload

很多刚刚入手固态硬盘的朋友,可能会对于固态硬盘容量标识产生疑惑。以某厂商 1TB固态硬盘为例,按道理来说1TB=1024GB,但是在电脑上只能看到953GB。

为什么?

因为放了一部分FTL 固件的表项,用于均衡磨损。

简而言之,花了100块钱,只能得到90快钱的东西。

花两碗粉的钱,吃了一碗粉,因为有一个空碗需要承担的开销

问顾客爽不爽。

肯定不爽。

云服务厂商也不爽。

以目前的公有云为例,IaaS:Infrastrure-as-Service(基础设施即服务)
但是对IaaS厂商来说,和普通人买SSD面临同一个情况的窘境。

买了一批处理器,内存,硬盘,机房,空调,成立了一个云中心,作为基础设施提供给各位厂家来用。

买个100核的CPU,只能用80个核.

其他20个核去哪里了?

跑一堆云上的软件,OVS,安全,存储,管理等等。

这些额外20个核的开销部分,叫做数据中心税,datacenter tax。

所以从云厂商来说,就是如何利益最大化。用行业“黑话”,降低TCO(总拥有成本)。

如何取消数据中心税,那就是要让DPU把这些活都干了。

这个故事里面。

DPU就是那个干脏活,累活的角色。

在云中心,什么脏活累活最为典型?

那非OVS卸载莫属了!

OVS的功能说白了,就是虚拟机VM之间的虚拟交换机,原本用软件来实现的。

image.png

说到交换机,那就是三板斧,协议解析,表项查找,动作执行。

image.png

二层交换机,解析MAC转发,

三层交换机,解析IP转发。

OVS虚拟交换机就是解析流表转发。

OVS的流表有三个特点:

1:表项长。
从五元组,7元组,到更多元组;从端口号,源MAC,目的MAC,VLAN,源IP,目的IP,源端口号,目的端口号等,这还不算完,还有更多项需要参与转发。

2:表项多。
从几十K到几百K的表项。随着从虚拟机到容器这些更细粒度的划分,表项也是直线增加。

3:查找时间短。
从10Gbps小包查找大约需要60ns,到100Gbps小包查找需要6ns查找到。

有一种说法, 如果是CPU软件来实现OVS,25Gbps开销需要大约20%处理器核处理,100Gbps大约需要80%的处理器核来处理,数据中心税高了,留给业务的就更少了。

简而言之,随着网络的发展,处理器的能力跟不上了。

解决这个问题核心就是,将OVS 卸载(offload)到一个处理单元上来做这个业务。因为本来就是网络的业务,所以卸载到网卡上是最直接的想法。

image.png

如图所示,就是软件卸载和硬件卸载的区别。

那么DPU除了除了OVS的卸载,还有哪些卸载?

1:TCP offload;
2:TLS offload;
3:加密offload;
4:压缩的offload;

这些offload,最直接就是降低数据中心税。也有把这些形式叫做IPU,基础设施处理器。

但是,单纯offload,是不能称之为DPU的。

2:hypervisor管理

很多人都去过网吧,但是不一定都去过VIP包房。

VIP包房和大厅不一样。

独立,安全,隐私性好。

VIP身份不会有和普通客户一样的待遇。

这样的客户给网吧老板带了非常高的收益。

所以要服务好VIP客户。

赚钱吗?不磕碜!

个人用户赚钱还是企业用户赚钱。

大多数是企业用户赚钱。

作为云服务厂商,天生有两个用户,个人用户,企业用户。

个人用户登录,是一个虚拟机,虚拟机好处就是一个CPU拆开来卖,分时复用,分区复用,没钱就忍了。

企业用户和普通用户不一样,肯定是VIP服务。

企业用户需要什么VIP云服务?

  • 极强的计算性能,具有和普通物理机一样的计算性能;
  • 安全隔离,物理隔离,资源独占;
  • 快速交付,物理机资源标准化和池化,随取随用;
  • 和云产品连通,如果需要可以和云主机、云存储、云数据库打通,方便业务使用。

什么是云上的VIP服务,那就是裸金属云。

裸金属云就是为企业用户的量身打造的VIP包房;

从物理机到虚拟机,容器这些技术是演进的方向。

但是没有想到。重新包装好的物理机又成了香饽饽。

还换了一个高大上的名字,裸金属云。

云服务商把全部的CPU资源都给用户去用了。

但是也不能放手不管。

怎么管,放在哪里来管。

用了一个hypervisor的卡来管理。

如果把CPU比喻成一个宾馆大楼,每个楼里的房间就是一个CPU core,住客就是虚拟机,hypervisor可以认为这个楼的的管理员,只不过这个管理员也要住在宾馆大楼里面,占用一个到几个房间(CPU core)。

现在VIP来了,整个宾馆大楼直接都给了VIP租下来了。

当然管理员(hypervisor)也不能在大楼住了,但是管理员(hypervisor)还是需要的,就得给管理员(hypervisor)找个家。

CPU里面不能住了,这个家就放在了DPU里面;

阿里云的裸金属云的建设中,提出了一种裸金属bm-hive(bm baremetal 裸金属的缩写),直接把bm-hypervisor 放在了一个网卡形态的设备上,在这种形态下,所有的计算资源都是计算板的一部分,这个可以是X86的E5,core I7,AMD ,甚至可以是ARM。也就是说,在这种结构下,X86的地位只是一个计算节点之一。

image.png

裸金属 hypervisor通过DPDK的vswitch和SPDK的云存储,替代了所有的计算板所有的IO需求,

裸金属 Hive支持VGA设备,供用户连接到bm guest的控制台,裸金属-Hive的架构不仅允许它无缝地集成到现有的云基础设施中,而且使计算板的设计高度灵活——唯一的硬要求是它支持virtio接口。

这种方案,但是其核心思想是将计算节点抽象出来,更专用,更灵活的参与到整个服务中;

image.png

这种思想提出,在AWS的的nitro卡就有了。

AmazonEC2的 hypervisor 专用硬件实现。当然是个精简的hypervisor,它基于Linux内核的虚拟机(KVM)技术构建,但不包括通用操作系统组件。

3:从网络到数据

DPU的核心是data。

为什么从网络到数据?

简而言之,TCP/IP的处理效率受到了极大的挑战。

对于10Gbps的网络来说,最大处理约14.88Mpps的包(64byte).

  10 000 000 000/(64byte + 20byte)*8 = 14.88Mpps。

那么对于100G的网络来说,需要处理器包的数目是148.8Mpps(64byte)。

而linux的kernel能够处理的能力也就是1M到几MPPS量级左右。

需求和现实,巨大的落差。

要想满足需求,bypass掉kernel,是一个所有人看到的方向。

很多kernel bypass的手段被提出了。

例如DPDK。DPDK就是一种kernelbypass的框架。DPDK通过应用层的PMD的程序不断的轮询。不用中断,而是用轮询,这个是DPDK提升性能的关键。

image.png

DPDK还需要CPU一个进程不断轮询。

而RDMA,则是更彻底的kernel bypass,CPU则直接什么也不做,数据直接送给应用层。

image.png

DPU就是承载RDMA的另一个载体。RDMA的协议用的是infiniband(IB)。而为了减低成本,不用部署额外的infiniband(IB)。其底层用了IP来承载,主要有两个分支,用IP/UDP承载IB是ROCEv2。用IP/TCP承载IB

Infiniband(IB)是Mellanox的强项,IB是HPC数据交换的互联协议,高性能计算就是例如超算,全球TOP500里面有60%采用了IB进行互联。

image.png

说回RDMA,那么RDMA到底干了什么?

除了传统的send receive。最重要的就是 read,write。

read,write的是什么。

是数据。

一台主机直接直接向另一台机器的虚拟内存的地址上读或者写。

这个意味着,使用外部资源就如同本地资源一样方便。

没有比这个更简单的操作了。

大道至简!

read和write的都是data;

基于这个意义上,DPU的D才开始有点意思了。

有趣的是,RDMA(IB)是在超算中发展起来的。

超算的架构都是CPU+GPU的异构。

超算的底层互联从来不是以太网,原因无他,以太网的效率太低了,以太网只在超算边缘作为管理网络来使用。

而DPU的设想中,很多资源池化的想法,和HPC有一些异曲同工之妙;

2020年hotchips上初创DPU公司,Fungible就有非常准确的描述。通过DPU将X86计算资源,GPU/AI资源,SSD/HDD等存储资源,作为池化资源的构成一个整体,提供外部使用。

Fungible用的技术叫做TrueFabric。其与RDMA的优劣不是本文要讨论的部分。

但是通过DPU把整个数据中心连接起来,实现高速率,低延迟的效果。

image.png

这个模型下,整个结构更类似一个边缘云中心。

不过在老哥看来,更类似超算和云融合的一种解决方案。

基于目前这个意义上,DPU的data还只是搬移,并没有在严格意义上被处理。

某些安全处理也是为了数据搬移过程的安全特性,比如IPsec over RDMA;也就是端到端的安全特性,这些数据处理是保护数据,而非改变数据本质。

这个数据搬移还包括:

1:存储数据DPU搬移:nvme over fabric,nvme over RMDA。
2:AI数据的DPU搬移:GPUdriect over RDMA。

低延迟,高带宽,高性能;

核心目标就是像本地数据一样,访问分布式或者池化的资源。

通过DPU实现数据资源池化。

网络是手段,数据才是目的。

只不过这种连接可以是RDMA,也可以是其他技术手段,RDMA只是其中之一。

4:谁来用DPU?

第一个卸载的故事中,DPU是offload CPU的负载,是“长工”。

第二个管理的故事中,DPU是CPU的hypervisor,是“管家”。

第三个数据的故事中,DPU高效的提供CPU 数据,是“奶妈”。

这些手段的目标都是降低TCO,是因为CPU来做这些工作不经济。

无论如何,DPU都不是替代CPU做计算。

在DPU上一堆处理器,来和CPU比赛干活,这个是不是比CPU更有优势?见仁见智。

DSA只有面向一个领域定制,才能有成本的优势。

所以DPU不需要在通用计算领域来搞事情。

保持数据(data)的本色,才是真谛。

image.png

最后一个问题,关于DPU,主要场景用在云上。

云厂怎么想?  

当然是自研!

AWS的Nitro系列,以及阿里的MOC等等。都是特殊定制的DPU。目前国内几大云厂,基本上全部都有自研方案或者自研计划。

每家云厂的解决方案都有所不同,特别是DPU是软件和硬件紧密耦合的产物。

云厂对业务更懂,研发能力也不弱。‍

目前也有很多初创公司做DPU芯片,市场一片火热。

如何把DPU芯片卖给也做这个方面的云厂“竞争对手”?

这是一个比AI芯片更难的难题。

作者:申墨-歪睿老哥
原文链接:https://mp.weixin.qq.com/s/r3hyMZy56oYpkecydPqoSA

推荐阅读

微信公众号:
歪睿老哥公众号二维码.jpg

更多IC设计技术干货请关注IC设计技术专栏。

推荐阅读
关注数
20179
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息