|
中科院计算所研究员鄢贵海: |
详解DPU发展的四个关键问题 |
|
在DPU概念诞生之初,人们争论它“应如何定义”,但后来发现,只有定义,还远不能说明 DPU能做什么、有什么作用、如何与现有系统更好地协同。
从实践中来,我感到,要讲清楚DPU的技术发展和应用价值,需要触及关于DPU的4个关键问题:DPU是什么?DPU可以标准化吗?DPU产业化面临哪些挑战?是否有中国化方案?下面我对这4个命题作一简要介绍。
DPU是什么?
DPU是面向基础设施层的数据处理单元。所谓的基础设施层,是有别于应用层而言的、为了给“应用”提供物理或虚拟化资源、甚至提供基础服务的逻辑层。现有的计算系统,被人为地分为基础设施层(IaaS),平台层(PaaS),软件层(SaaS),最上层就是应用层。鉴于此,Intel也把自己的DPU称之为“IPU”。
从优化技术的侧重点来看,越基础层的组件越倾向于以性能优先为导向,存在更多的“机器依赖”;越上层的优化越以生产效率为导向,通过层层封装,屏蔽底层差异,对用户透明。
为什么会有面向基础设施层的DPU?难道是说现有的数据中心的CPU、GPU、路由器、交换机,不能继续作为“面向基础设施层的数据处理单元”了吗?
在计算系统的研究,很大程度上是“优化”的研究;现有的基础设施不是不能,而是不够“优化”。如果没有新技术的发明和引入,最终需求和供给之间的矛盾就会越来越突出。
DPU的出现首先要解决的就是网络数据包处理的问题。随着核心网、汇聚网朝着100G、200G发展,接入网也达到50G、100G时,CPU无法提供足够的算力来处理数据包了。而且,网络带宽的增速来自于应用的丰富、数据中心规模的扩大、数字化进展的驱动,而 CPU 性能增速却随着摩尔定律的放缓而下降,这进一步加剧了服务器节点上CPU的计算负担。
另外一个例子是云计算场景下的“虚拟机之间的数据转发”问题,即OVS。通常,20个虚拟机需要消耗大概至强多核处理器5个核的算力,这是一笔比较大的开销,同时也是可用DPU的一个原因。
此外,目前的系统结构并不是为处理网络数据而生的,在高带宽网络、随机访问、高并发度收发的场景下效率并不高。现有技术开辟了用“轮询”替代中断来处理IO操作的方法,但这些在现有体系基础上的“修修补补”只能当做权宜之计,本质上是经典技术在新场景下的不适应。
有人把DPU单纯的理解为给CPU“减负”,把DPU作为一个网卡的“变种”,将其视为一个单纯的算法硬件化的载体,以“头脑简单,四肢发达”的形象示人。但如果我们重新审视一下系统功能的载体分布情况,就会看到DPU并非是一个单纯的加速器,而是与CPU全方位配合的一个关键组件。
从主机负责所有的管理、控制、数据面的功能,到逐步“卸载”这些功能分别迭代出异构计算、智能网卡、DPU,DPU的价值愈发彰显,人们甚至可以以DPU为中心来构建计算系统。前不久,阿里云公布的CIPU宣称替代CPU成为新一代云计算核心硬件,可以说是把DPU推向了舞台中心,虽然尚有争议,但这也许正是DPU发展的方向。
DPU可以标准化吗?
在回答DPU是否可以标准化之前,需要明确标准化的确切含义是什么,以及为什么要标准化。我认为,DPU的标准化涉及两个方面: DPU的架构是否可以标准化,这影响到DPU的研发成本问题;DPU的应用是否可以标准化,这影响DPU的应用生态的问题。
现在广泛存在一种认识的误区:笼统的认为DPU是一种专用处理器,既然是“专用”,那么就不可避免的采用“定制化”才能实现,一旦“定制化”,那么“标准化”也就无从谈起了,从而得到了一个武断的结论:DPU没有产业化价值。
其实专用化、定制化、标准化这三个概念,并没有直接的因果关系。
专用化强调的是应用场景是否值得专用化,取决于需求的的刚性;定制化是技术实现的路径选择,经常是创新和核心技术的“发源地”;标准化是为了降低边际成本,通常通过建立或融入产业生态、创造规模效益,实现创新技术的价值变现。
比如,GPU无疑是一种“专用”处理器,因为人们对图形图像这种信息交互方式是绝对的刚需;GPU中通过定制化来实现光栅操作处理器(ROP)、纹理处理器(TPC)等高度定制化的功能单元,及其超大规模的数据集同步并行处理技术,都是面向像素级海量数据处理的定制化技术;最后,GPU还通过OpenGL、DirectX等图形操作API和CUDA通用编程框架来做标准化。所以,“专用”并不比“通用”低人一等,“定制化”甚至是解决一些应用刚需必须采用的技术选择。
我们团队在DPU标准化工作上也作出过一点贡献。首先是组织编写了行业第一本DPU技术为主题的技术白皮书,今年在以往的基础上,又组织编写了第二部技术白皮书,但关注的重点从DPU参考设计迁移到了DPU的性能评测方法,作为后续细分应用设计基准测试程序的参考。
我认为,DPU标准化是一个过程,而不是目的。标准化的进程很大程度与市场化程度相互作用。因此,标准化的目的是市场化,而市场化的进展也将反过来促进标准化的工作。
DPU产业化面临的挑战
DPU主要在基础层和平台层发挥作用,这决定了现阶段DPU的优化主要是性能导向。这其实一块“硬骨头”。现在有些DPU的设计过于依赖通用核的使用,尽管灵活性得到了保证,但是性能往往上不去,根本就不可能有客户买单。
还有一个行业更切身体会的挑战——产品适配。DPU需要适配不同的CPU平台、不同的操作系统。“适配”说起来容易、做起来难,面临工作量“指数爆炸”的适配困境。
鉴于此,我们提出了一套自动化多生态环境的编译、发布、测试系统平台(ADIP),把适配工作系统的分解为两条、四个阶段的流水线,分别针对主机侧的软件适配和DPU侧的软件适配。这个开发集成平台已经支持了中科驭数的DPU在多个国产CPU和OS的适配工作,目前还在快速完善过程中。尽管ADIP流程自动化程度还有待提高,但对于流程阶段的划分,已经可以非常高效地指导过百人的工程师团队来协作开发。
DPU还面临一些其他的挑战,一些是属于目前国内集成电路设计行业面临的共性问题,比如芯片制造的供应链问题、高水平研发人员短缺问题等等;也有DPU赛道的特性挑战,比如存在需求多样化与DPU设计功能出现失配、DP的软件生态不够成熟等问题。
DPU的发展是否有“中国方案”?
DPU的发展是否有适合我们自己的道路或“中国方案”?这也是我们一直在思考,但尚无定论的问题。虽然DPU虽然不分“国界”,但是DPU的产业化可能还是要找到适合我国国情的途径。
在计算系统发展的历程中,大体有三个重要的因素决定了一类产品/技术的是否能取得商业化的成功。第一是“性能”,取决于创新结构、算法的发明,创新技术、工艺的采用等。第二是“生产率”,与开发效率、系统与现有系统的兼容性及学习成本等因素有关。第三是“成本”,涉及到规模效应、工程化水平、供应链以及服务成本等。
DPU的性能问题一方面是设计问题(结构是否优秀、功能是否完善等),另一方面是DPU芯片生产制造的的问题。从综合产品力上来看,我们在局部技术上的优势,还难以与西方芯片巨头如英伟达、迈威等所具有的综合优势相比拟,因此,现在DPU的整体格局还是典型的“西强东弱”。
但是,中国目前算力需求是全球最强劲的。服务器的需求增速是全球第一,国家层面还有“新基建”中的“算力基础设施”的宏大布局、今年2月份启动的“东数西算”战略布局、运营商开始广泛投入的“算力网络”的建设等等。这不仅为DPU的发展提供了机遇,还给整个信息技术、计算技术的发展都提供了新的机遇。中国人擅长“摸着石头过河”,我们坚信、甚至笃信,更期待与全行业的同仁,通力协作,探索出一套“中国方案”,引领DPU这样一个新技术的发展。
(作者系中科院计算所研究员、中科驭数董事长,本报记者赵广立根据其在中国计算机学会第一届芯片大会上的特邀报告整理)
版权声明:凡本网注明“来源:中国科学报、科学网、科学新闻杂志”的所有作品,网站转载,请在正文上方注明来源和作者,且不得对内容作实质性改动;微信公众号、头条号等新媒体平台,转载请联系授权。邮箱:shouquan@stimes.cn。