来源:内容由半导体行业观察(ID:icbank)转载自公众号「歪睿老哥」,作者:申墨,谢谢。
集成电路》共同出品,欢迎订阅摩尔旗下公众号:摩尔精英MooreElite、摩尔芯闻、摩尔芯球">
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都干些什么东西。
很多刚刚入手固态硬盘的朋友,可能会对于固态硬盘容量标识产生疑惑。以某厂商 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之间的虚拟交换机,原本用软件来实现的。
说到交换机,那就是三板斧,协议解析,表项查找,动作执行。
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)到一个处理单元上来做这个业务。因为本来就是网络的业务,所以卸载到网卡上是最直接的想法。
如图所示,就是软件卸载和硬件卸载的区别。
那么DPU除了除了OVS的卸载,还有哪些卸载?
1:TCP offload;
2:TLS offload;
3:加密offload;
4:压缩的offload;
这些offload,最直接就是降低数据中心税。也有把这些形式叫做IPU,基础设施处理器。
但是,单纯offload,是不能称之为DPU的。
很多人都去过网吧,但是不一定都去过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的地位只是一个计算节点之一。
裸金属 hypervisor通过DPDK的vswitch和SPDK的云存储,替代了所有的计算板所有的IO需求,
裸金属 Hive支持VGA设备,供用户连接到bm guest的控制台,裸金属-Hive的架构不仅允许它无缝地集成到现有的云基础设施中,而且使计算板的设计高度灵活——唯一的硬要求是它支持virtio接口。
这种方案,但是其核心思想是将计算节点抽象出来,更专用,更灵活的参与到整个服务中;
这种思想提出,在AWS的的nitro卡就有了。
AmazonEC2的 hypervisor 专用硬件实现。当然是个精简的hypervisor,它基于Linux内核的虚拟机(KVM)技术构建,但不包括通用操作系统组件。
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提升性能的关键。
DPDK还需要CPU一个进程不断轮询。
而RDMA,则是更彻底的kernel bypass,CPU则直接什么也不做,数据直接送给应用层。
DPU就是承载RDMA的另一个载体。RDMA的协议用的是infiniband(IB)。而为了减低成本,不用部署额外的infiniband(IB)。其底层用了IP来承载,主要有两个分支,用IP/UDP承载IB是ROCEv2。用IP/TCP承载IB
Infiniband(IB)是Mellanox的强项,IB是HPC数据交换的互联协议,高性能计算就是例如超算,全球TOP500里面有60%采用了IB进行互联。
说回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把整个数据中心连接起来,实现高速率,低延迟的效果。
这个模型下,整个结构更类似一个边缘云中心。
不过在老哥看来,更类似超算和云融合的一种解决方案。
基于目前这个意义上,DPU的data还只是搬移,并没有在严格意义上被处理。
某些安全处理也是为了数据搬移过程的安全特性,比如IPsec over RDMA;也就是端到端的安全特性,这些数据处理是保护数据,而非改变数据本质。
这个数据搬移还包括:
1:存储数据DPU搬移:
nvme over fabric,nvme over RMDA。
2:AI数据的DPU搬移:
GPUdriect over RDMA。
低延迟,高带宽,高性能;
核心目标就是像本地数据一样,访问分布式或者池化的资源。
通过DPU实现数据资源池化。
网络是手段,数据才是目的。
只不过这种连接可以是RDMA,也可以是其他技术手段,RDMA只是其中之一。
第一个卸载的故事中,DPU是offload CPU的负载,是“长工”。
第二个管理的故事中,DPU是CPU的hypervisor,是“管家”。
第三个数据的故事中,DPU高效的提供CPU 数据,是“奶妈”。
这些手段的目标都是降低TCO,是因为CPU来做这些工作不经济。
无论如何,DPU都不是替代CPU做计算。
在DPU上一堆处理器,来和CPU比赛干活,这个是不是比CPU更有优势?见仁见智。
DSA只有面向一个领域定制,才能有成本的优势。
所以DPU不需要在通用计算领域来搞事情。
保持数据(data)的本色,才是真谛。
最后一个问题,关于DPU,主要场景用在云上。
云厂怎么想?
当然是自研!
AWS的Nitro系列,以及阿里的MOC等等。都是特殊定制的DPU。目前国内几大云厂,基本上全部都有自研方案或者自研计划。
每家云厂的解决方案都有所不同,特别是DPU是软件和硬件紧密耦合的产物。
云厂对业务更懂,研发能力也不弱。
目前也有很多初创公司做DPU芯片,市场一片火热。
如何把DPU芯片卖给也做这个方面的云厂“竞争对手”?
这是一个比AI芯片更难的难题。
后记
“上周末的智能网卡研讨会,老哥网上听了下各路专家的演讲,云厂面临的问题多,市场能提供的大规模部署的解决方案很少,头部云厂商(阿里,腾讯)都是带着自研方案而来的,FPGA+CPU倒是成了大部分公司的DPU不约而同的系统方案,xilinx和intel的FPGA成为市场的选择,也看出来DPU芯片前路漫漫,且行且珍惜,祝大家国庆快乐。”
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第2816内容,欢迎关注。
『半导体第一垂直媒体』
实时 专业 原创 深度
识别二维码,回复下方关键词,阅读更多
晶圆|集成电路|设备|汽车芯片|存储|台积电|AI|封装
回复 投稿,看《如何成为“半导体行业观察”的一员 》
回复 搜索,还能轻松找到其他你感兴趣的文章!