查看原文
其他

中国信通院王翰华等:网络计算技术发展情况及应用前景分析

The following article is from 信息通信技术与政策 Author 王翰华,李峰


0  引言
随着物联网、云计算、5G等新技术的普及与应用,网络上承载的数据传输量不断升高。但是,由于摩尔定律的演进速度放缓,中央处理器(Central Processing Unit,CPU)的性能增长脚步变慢,难以匹配不断增长的网络速率,使得计算技术的发展面临挑战[1]。在云数据中心内部,面向人工智能(Artificial Intelligence,AI)等输入/输出(Input/Output,I/O)密集型计算场景,CPU网络数据处理能力的局限性已成为数据I/O速率提升的阻碍[1]。同时,伴随着网络速率的提高,网络数据处理任务也成为CPU的巨大负担,导致主机CPU算力资源无法充分释放[2]。此外,在面向低延迟需求的行业用户时,基于边缘计算的分布式云已成为降低计算时延的有效方案,但CPU对数据包的处理能力同样成为了边缘节点和云数据中心高效传输的阻碍[3]。总体而言,伴随着网络速率的提升,以CPU为中心的传统计算架构已经显现出缺陷。
网络计算(In-Network Computing,INC)技术是以网络设备代替服务器CPU承担特定运算任务的新计算范式,通过将主机上本地运行的应用程序卸载到特定的网络设备或硬件上进行加速,使应用程序能够在网络线路速率下运行,实现比传统服务器更高数量级的数据吞吐量和更低的延迟[4]。当前研究中,被用于实现网络计算技术的可编程网络硬件主要包括可编程交换机和智能网卡[5],主要用于提供网络、存储、安全等加速功能,增强服务器等计算设备在边缘计算、AI、区块链、物联网、工业互联网、移动通信网等应用场景中的服务能力。
1  网络计算技术的产生背景
随着社会对算力需求的增长,为更好地支持各类差异化应用的高效运行,软件定义网络(Software Defined Network,SDN)技术得到了广泛应用。传统的网络仅能通过既定的路由策略转发数据包,而SDN技术能够将网络数据平面与控制平面解耦[6],通过OpenFlow[7]、ForCES等开放接口,基于网络控制器控制网元的数据包转发功能,利用软件定义的逻辑来控制网元的路由策略,能极大提高网络的灵活性,满足不同用户需求。但是,传统的SDN技术下,网元设备仅能提供预定的数据包转发功能,数据平面功能仍被嵌入在设备的硬件和软件中,不能在设备的生命周期内更改,不利于用户灵活使用。
可编程数据面(Programmable Data Plane,PDP)是在SDN基础上进一步演化出的网络范式,不仅可以将网络控制面和数据面分离,还可以对数据面编程,使用户能够自定义数据处理逻辑,进一步提升网络灵活性[8]。网络计算技术正是基于PDP范式,通过可编程交换芯片和智能网卡等专用硬件[9],对数据面进行编程,并在数据传输过程中处理数据,从而在降低主机CPU负担的同时保障数据处理效率。
2  网络计算技术发展情况
2.1  可编程交换技术通常计算机集群系统使用的交换机分为实体和虚拟两类。实体交换机是从物理上连接各个服务器的交换机设备,基于交换芯片实现数据包的转发,具有比基于软件的虚拟交换机更高的交换效率,但传统的交换芯片仅能处理预定的协议,本身不支持数据面编程。而虚拟交换机则是在实体的网络基础上,运行在服务器上的数据包交换逻辑,用于虚拟机、容器的网络接入,例如OVS(Open vSwitch)[10]等。基于软件和服务器CPU实现的虚拟交换机本身就具备良好的灵活性和可编程性,利用数据平面开发套件(Data Plane Development Kit,DPDK)[11]等数据平面技术框架,能够实现数据面编程功能。但是在缺少专用硬件的情况下,基于虚拟交换机的PDP仍需要运行在主机CPU上,消耗大量的CPU资源,数据处理效率也相对较低[12]
协议无关的交换机架构(Protocol Independent Switch Architecture,PISA)提供了一种统一的可编程流水线[13]。基于PISA架构的可编程交换芯片包含解析器(Parser)、匹配—动作单元(Match-Action Unit)、逆解析器(Deparser)等,如图1所示。解析器用于识别数据包种类。匹配—动作单元根据用户编写的程序匹配数据包,匹配成功时执行对应的操作。每个匹配—动作单元包括存储器和算术逻辑单元(Arithmetic Logic Unit,ALU),存储器通常采用静态随机存取存储器(Static Random-Access Memory,SRAM)和三态内容寻址存储器(Ternary Content Addressable Memory,TCAM),负责匹配和存储相应的操作数据;逻辑运算单元负责算术运算或报头修改。逆解析器则负责将被操作过的数据重新序列化到数据包中。区别于传统的固定功能的交换芯片,基于PISA架构的可编程交换芯片能够在不降低数据处理效率的情况下,实现用户通过编程语言自行编程进行网络数据处理的功能。
图1   PISA架构[14]

2.2  智能网卡网卡(Network Interface Card,NIC)是负责将计算机接入网络的部件,网卡通常插在主板的总线插槽上,将计算机输出的数据转换为标准的网络数据包格式,通过线缆传输给交换机设备。传统的网卡主要负责网络的物理层和链路层功能,由主机CPU负责更高层的处理任务[15]。但为了减轻主机CPU负担和提升网络效率,现代网卡已具备卸载部分网络层和传输层的处理逻辑(如校验、分割等)的能力。远程直接内存访问(Remote Direct Memory Access,RDMA)技术甚至能使网卡卸载整个传输层的处理任务。通过DPDK、NetMap等基于内核旁路(Kernal Bypass)的技术,网卡还能有效减少由于网络数据处理产生的CPU中断[16]。传统方式下,网卡驱动接收数据包后需由CPU交给操作系统协议栈处理,并将数据拷贝给应用层程序。此时数据包的处理效率偏低,且随着数据量增大,也将导致CPU任务过重。内核旁路技术能够使网卡驱动直接将数据包存入内存,应用层的程序可以通过接口直接从内存中读取数据,减少了CPU中断,节省了内存拷贝时间。然而,即使各种硬件卸载和内核旁路技术已经能使网卡承担更多任务,极大减少了网络数据处理任务对主机CPU资源的消耗,但主机CPU仍然需要运行OVS等网络虚拟化任务,还要处理数据包的在线加解密或离线加解密、数据包深度检查、防火墙以及各类用户定义的网络数据面处理任务,这导致大量主机CPU算力资源被消耗,网络性能也不能发挥到最佳。
智能网卡(Smart NIC)除了具备普通网卡的网络传输功能外,还能将内置的可编程、可配置的硬件加速引擎直接作为协处理器,更加全面地卸载主机CPU的负担[17]。网卡作为连接各种数据的枢纽,可以通过集成可编程的专用集成电路(Application Specific Integrated Circuit,ASIC)芯片或现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片承载OVS的数据面操作,实现硬件卸载[18],并实现存储加速、数据加密、深度包检测和复杂路由等功能,将原先用于处理这些工作负载的大量主机CPU算力资源释放出来,确保服务器能为应用业务提供最大的处理能力,或提供更多的虚拟机服务,为用户带来更多收益。
数据处理单元(Data Process Unit,DPU)则是在智能网卡基础上加入通用处理器后形成的更加通用、灵活的智能网卡。DPU通常具有“CPU+可编程加速硬件”的架构,可以是两颗独立芯片,也可以是一颗系统级芯片(System on Chip,SoC)。与普通智能网卡相比,DPU能利用自带的通用处理器提供更为灵活的软件定义能力,能够独立运行操作系统,代替主机CPU承担控制平面任务和一些更加灵活复杂的数据平面任务,可以直接代替主机CPU处理OVS任务[19],释放主机CPU算力,提升网络性能[20]。相比之下,传统智能网卡虽然能够卸载基础的数据平面任务,但是由于自身没有集成通用处理器,仍然需要主机CPU进行管理,不能卸载控制面板功能,无法规避由于网络速度提高带来的主机CPU算力资源消耗。
3  网络计算技术产业化情况
随着计算机集群系统对协同能力的要求不断提高,在学术界的引领下,计算和通信领域的诸多头部企业相继投入到了网络计算技术产业化的研究中。
协议无关的编程语言能够降低PDP开发难度,促进网络计算产业化。SDN开创者、美国斯坦福大学Nick McKeown教授在2013年创立了Barefoot公司,并在2013年提出了P4(Programming Protocol-independent Packet Processors)语言[21],该语言是一种声明式编程语言,通过高层抽象自定义数据包处理流程,能够屏蔽可编程交换芯片底层硬件逻辑,使网络工程师可以不必关注底层设备,专注于网络创新。P4语言目前由开源组织P4语言联盟(P4.org)进行标准化,在网络计算领域得到了最广泛的支持,被视为践行PDP范式、实现网络计算的关键编程语言[22]
在协议无关编程语言的基础上,可编程交换芯片实现了产业化。Barefoot在P4语言基础上,于2016年推出了首个基于PISA架构的可编程交换芯片Tofino[23],并促使可编程交换成为了交换芯片厂商的重点发展方向。英特尔公司在2019年收购Barefoot后,延续了Tofino产品技术路线,并在2022年迭代至第三代,最大支持25.6 Tbit/s的交换容量[24],并持续推动P4标准化工作。网络交换芯片传统厂商Marvell也通过收购Innovium公司获得了可编程交换芯片产品线Teralynx,支持基于P4的网络内遥测,目前已演进至Teralynx 10,交换容量高达51.2 T[25]。思科公司作为传统交换机厂商,具备长期的交换芯片开发经验,在2020年也推出了商用的交换芯片产品Silicon One,在技术生态上同样选择了P4语言[26]。而作为交换芯片领域长期的领导者,博通公司也推出了与PISA类似的FleXGS架构[27],并在旗下Trident产品线上采用,且推出了自研的协议无关编程语言NPL(Network Programming Language)[28]
在可编程交换芯片产业化的同期,智能网卡同步开展了产业化,并逐渐普及了对协议无关编程语言的支持。微软公司在2014年提出了基于FPGA构建可重构的数据中心网络[29],经过迭代逐步形成了基于FPGA的智能网卡,并部署在旗下Azure云系统中[30]。微软还提出,相比于编写硬件描述语言(Hardware Description Languages,HDL),P4等抽象的数据包处理语言虽然不能支持复杂的应用程序卸载,但将它们应用在智能网卡上能够明显降低网络开发难度。Mellanox公司在2017年提出了基于“In-Network Computing”的计算架构,并推出了基于ASIC的智能网卡产品ConnectX-6。与基于FPGA的智能网卡相比,基于ASIC的智能网卡牺牲了应用的灵活性,但在成本上更具优势[31]。英伟达公司在2019年收购Mellanox后,在延续原有智能网卡产品线的同时,于2020年推出了基于SoC的DPU产品Bluefield[32],此产品具备更加灵活的可编程性,支持P4语言。但在灵活性增强的同时,DPU基于通用处理器实现的卸载功能,在加速能力上弱于FPGA或ASIC。英特尔公司则通过2015年对FPGA芯片企业Altera的收购,采用了基于FPGA的智能网卡技术路线,并将旗下与DPU类似的产品命名为基础设施处理单元(Infrastructure Processing Unit,IPU),在2022年推出了基于FPGA和CPU两颗独立芯片的IPU方案[33],支持P4编程,并在2023年发布了与谷歌公司共同设计的IPU SoC芯片方案。与SoC方案相比,基于FPGA和CPU的IPU方案能够兼具对操作系统的支持和硬件加速效率,但成本也相对更高。AMD也不甘落后,在2022年相继完成对赛灵思和Pensando的收购,先是通过收购前者获得了基于FPGA的智能网卡业务,又通过收购后者获得了DPU产品线[34],两个产品线均支持P4编程。除上述三家计算芯片领域的龙头企业外,传统网卡厂商博通[35]和Marvell[36]也推出了DPU产品,亚马逊[37]和阿里云[38]等头部云计算厂商也进行了相关网卡的自研工作。主流芯片厂商的DPU方案和采用的架构如表1所示。
表1   主流厂商DPU方案

国际主流芯片企业的网络计算硬件产品布局如表2所示。
表2   主流芯片企业的网络计算硬件产品布局

4  网络计算技术应用前景分析
网络计算技术能够切实解决当前计算系统演进面临的关键问题。随着以太网网络速度从25G演进到100G,再到200G/400G,甚至向800G发展,在以CPU为中心的网络数据处理方式下,几乎近半的服务器CPU算力都被消耗在处理网络数据、运行安全功能(如网络虚拟化功能、数据加解密等)等网络相关任务上。通过网络计算技术能够有效卸载主机CPU负担,释放服务器算力,提升用于应用业务的算力资源量,提高运营商经济收益。此外,在网络计算技术快速演进的今天,相比于传统的固定功能的网络硬件平台,网络计算概念下的网络设备具备更灵活的可编程性,部署新的网络功能不再需要更换网络硬件设备,网络功能部署成本和部署周期都能显著降低。同时,相比于定制化开发模式,通过使用网络计算设备,运营商可以根据需求自行定制相关网络协议和应用程序,构建有特色的差异化服务功能,不需要与芯片或设备供应商共享技术细节,能够更好保护自身商业秘密。
近年来,DPU还展现出更多应用场景。由于DPU具备通用处理器核,支持运行操作系统和更复杂的应用程序,通过将基础设施层的任务从主机CPU卸载到DPU,能够使CPU算力完全用于业务应用,并通过DPU实现物理隔离,提升裸金属服务能力。AMD也通过与VMware公司的合作,使自身DPU产品支持VMware vSphere虚拟化平台的卸载。此外,英伟达提出了以DPU为基础的DOCA(Datacenter Infrastructure On A Chip Architecture)软件架构,以DPU为核心对数据中心设备进行整合,为网络、安全、存储、高性能计算、电信、多媒体等数据中心应用程序提供统一的软件开发接口,实现服务器间的高效协同。惠普公司旗下Arbua和国内星融元数据技术有限公司则推出了集成DPU的交换机产品,使用DPU作为协处理器,负责防火墙、网络遥测、应用层协议匹配等高级业务处理功能,提升了交换机的灵活性。
网络计算技术已经被多家云运营商采用。国内UCloud、阿里云公司都表示使用了Tofino可编程交换芯片。微软、亚马逊、谷歌、阿里云、百度云等全球云服务商都有或购买或自研的智能网卡,谷歌更是和英特尔开展联合研究,构造了IPU芯片产品。UCloud、百度云等厂商也已将英伟达或英特尔DPU产品用于裸金属服务。
5  结束语
在网速飞速提升、网络处理开销愈发增加的背景下,网络计算技术成为了解决网络发展瓶颈的关键技术,在云计算和边缘计算领域受到广泛关注。网络计算技术主要依赖可编程交换芯片和智能网卡两类硬件设备,在网络协议处理卸载、网络功能虚拟化、特定应用加速等应用场景中发挥着重要作用。同时,网络计算技术提供的可编程性能够更好地满足用户的定制化需求,降低部署成本,保障商业秘密。而DPU作为智能网卡的进一步演进产品,能够从主机CPU上卸载更为丰富的功能,进一步释放CPU算力,管理计算集群,具有更广阔的应用前景。


作者简介

王翰华 

中国信息通信研究院信息化与工业化融合研究所先进计算与ICT产业研究部工程师,博士,主要从事先进计算、移动通信等方面的技术和产业研究工作。

李峰   

中国信息通信研究院信息化与工业化融合研究所先进计算与ICT产业研究部工程师,长期从事人工智能、先进计算、数字经济、行业信息化等研究工作。


论文引用格式:

王翰华, 李峰. 网络计算技术发展情况及应用前景分析[J]. 信息通信技术与政策, 2023, 49(6): 47-54.



本文刊于《信息通信技术与政策》2023年 第6期



主办:中国信息通信研究院


《信息通信技术与政策》是工业和信息化部主管、中国信息通信研究院主办的专业学术期刊。本刊定位于“信息通信技术前沿的风向标,信息社会政策探究的思想库”,聚焦信息通信领域技术趋势、公共政策、国家/产业/企业战略,发布前沿研究成果、焦点问题分析、热点政策解读等,推动5G、工业互联网、数字经济、人工智能、区块链、大数据、云计算等技术产业的创新与发展,引导国家技术战略选择与产业政策制定,搭建产、学、研、用的高端学术交流平台。



《信息通信技术与政策》投稿指南


为进一步提高期刊信息化建设水平,为广大学者提供更优质的服务,我刊官方网站已正式投入运行,欢迎投稿!








校  审 | 谨  言、珊  珊

编  辑 | 凌  霄


推荐阅读

中国信通院梁林俊等:光计算技术发展与应用研究
专家谈



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存