芯东西(公众号:aichip001)
作者 | 心缘
编辑 | 漠影
如果细数最近火爆的科技概念,DPU必然位列其中。
这是英伟达一手捧红的新造富故事,是2021年SoC领域最热火朝天的创业赛道,也是数据中心继CPU、GPU后的又一大“台柱子”。
尽管在云计算领域已经培育多年,但对于外界来说,DPU并不是一个容易理解的概念,各路玩家的产品定义和结构设计也不尽相同。
总体来说,DPU是个软硬一体的数据处理单元,通常以架构的形式存在,可以帮CPU“减负”,解决一些CPU处理数据方面的短板问题,并提供硬件加速的网络、存储、安全、基础设施管理等服务。
而追溯DPU的源头,真正实现大规模商用DPU架构的,历数全球,主要有两家云计算巨头——西方的亚马逊云AWS,东方的阿里云。
2017年10月,阿里云的神龙架构横空出世;仅1个月后,AWS的Nitro也走到了历史台前。这两个为了解决虚拟化问题而相继问世的创新产品,被业界视作迄今最成功的两款DPU。
一手促成神龙架构诞生的张献涛,也是国内最懂DPU的人物之一。
如今,第四代阿里云神龙已经开始支撑阿里云的大规模云上业务,并在计算、存储、网络、安全四项关键指标达成业界最高水平。
近日,芯东西独家对话阿里巴巴集团研究员、阿里云弹性计算产品线负责人张献涛(花名旭卿),听他讲述云端业务需求变化、持续创新的研发心得,以及对DPU热潮的独到思考。
在他看来,这不是一类适合走通用路线的芯片,对于云厂商而言,DPU是一个软硬件技术栈结合极其密切的工作,是软件定义的计算架构,DPU必须以自研为主,做到相关软硬件技术栈完全可控,且经过超大规模验证。而做通用DPU的公司很难满足云厂商的需求,被收购或许是最佳结局。
DPU的新风口来得突然。
2020年10月,在NVIDIA GTC 2020大会上,NVIDIA创始人兼CEO黄仁勋宣布推出一种全新数据处理器——DPU。
这颗被称作“未来计算三大支柱之一”的处理单元,赫然闯入大众和资本的视野。
此时,距离阿里云软硬一体虚拟化架构「神龙」的诞生,已经过去整整四年。如今,其被市场视作阿里云的DPU,而这个颇具开创性的创新架构,当初是为解决传统虚拟化技术应用到云计算带来的成本、性能、服务质量以及安全问题而生的。
张献涛是负责阿里云神龙的核心人物,于2014年加入阿里云,彼时他已经从事虚拟化技术研究约十年,阿里云刚走到第五个年头。传统虚拟化架构的种种缺陷,日渐成为掣肘这家云计算公司降本增效、提升服务质量的顽疾。
虚拟化技术是云计算的基础,它将原本不可分割的硬件资源抽象成共享资源池,按需分配和共享计算、存储、网络资源。
而管理资源,就需占用掉一些原本用于运行业务负载的CPU和内存,也就造成了资源损耗。
比如一个工厂有100位工人,如果他们全部去流水线上干活,那么资源利用率是100%;但如果从中抽出10人负责统筹管理,那么余下只有90人在流水线上干活,利用率则降为90%。
随着云计算业务规模持续扩大规模,资源争抢、算力损失、性能瓶颈等问题日益严峻,寻求解局之道已然迫在眉睫。
经过两年摸索,阿里云的稳定性不再是问题。2016年,张献涛开始思考下一代虚拟化技术方案在哪里?什么样的方案,才能符合阿里云未来长期的发展?
神龙(X-Dragon)应运而生。
这是团队头脑风暴的结果。假如造出一个专门负责做虚拟化的架构,那么CPU的算力资源就被释放出来,能够更聚焦于运行云上业务。
第一代神龙正式立项的时间是2017年4月1日。 将问题定义出来后,张献涛开始组建团队,从系统架构设计到芯片及硬件开发,到服务器开发,再到系统软件的研发适配,初始团队总共二十几个人干了半年的时间,成功于2017年10月将神龙上线。
自此以后,作为处理高速数据流的高手,神龙架构从CPU手头接过虚拟化的重任,一路带飞存储、网络、安全等关键性能。
一开始,张献涛其实不太接受「DPU」这个命名方式。
DPU的“D”有几种常见解释,包括“数据”、“数据中心”、“以数据为中心”等。可严格意义上来讲,数据中心的哪个主力芯片(如CPU、GPU)不符合这些特征呢?
因此,阿里云对神龙架构的阐述是,真正为云而生的、软硬一体的技术架构。在他看来,未来是一个云的时代,需要这样的技术架构来全面解决成本、性能、安全等问题。目前来看,DPU想做的似乎是类似的事情,市场也认为阿里云和AWS做的就是DPU。
阿里云和AWS之所以近乎“同步”地推出DPU,最直接的原因是云计算发展到一定阶段后,研发人员意识到,有了这样的数据处理架构,成本将大幅下降,同时性能会大幅提升,再加上云厂商的规模化优势能为客户提供更有竞争力的高性价比服务。
无论是阿里云的神龙,还是AWS的Nitro,早期都主攻虚拟化的性能损耗、资源损耗问题,即成本和性能问题。
张献涛给我们算了一笔账,那时阿里云营收规模已经达到上百亿元,如果存储、网络占用约10%的CPU资源,则意味着年损失10多亿元。无论从提升性能还是优化成本的角度,研发神龙都势在必行。
取得技术突破只是第一步。神龙上线后,如何大规模应用成为新的挑战。
阿里云先在内部业务试水,2017年双十一期间部署了1000台支撑天猫大促业务,成功验证没有问题。上汽集团是第一家吃螃蟹的外部客户,提出愿意尝试这个新产品,与阿里云共担风险。双方一起磨了近两个月,到临近春节,终于将稳定性、性能等问题通通解决。
在此类种子客户的支持下,阿里云神龙打磨出大规模上云的功底,并开始成长为阿里云最核心的竞争力之一。
从2019年起,阿里巴巴集团的所有业务、包括阿里云的计算类服务全部迁至神龙架构。到2021年10月,第四代神龙架构问世,其存储IOPS高达300万、网络PPS达5000万、网络延时最低5微秒等多项指标刷新业界最高水平。
根据知名国际市场研究机构Gartner公布的2021年度全球云计算厂商整体能力评估报告,阿里云IaaS基础设施能力超越AWS拿下全球第一,并在计算、存储、网络、安全四项核心评比中获得最高分。
▲Gartner Solution Scorecard 2021报告显示,阿里云四项能力超AWS
云计算市场正在飞速扩容,当每台云服务器中都需要一个DPU,谁能跻身头部,谁就可能享受到难以估量的市场红利。
仅在2021年,获得新融资的国内DPU企业就有不少于7家,包括湖州芯启源、北京大禹智芯、珠海星云智联、上海益思芯科技、深圳云豹智能、上海云脉芯联、北京中科驭数等。
其中多数企业单笔融资额达数亿元,且投资方不乏知名科技企业身影。比如,星云智联A轮融资由美团独家投资,腾讯投资了云豹智能,云脉芯联的投资方有字节跳动、壁仞科技……
但资本只看见热度,未必能看清里面的坑。
在张献涛看来,DPU不应该被视作「智能网卡」的继任者,智能网卡只解决网络加速问题,而DPU的功能远比智能网卡丰富。
有些DPU创企其实仍在做智能网卡,也有创企想在智能网卡的基础上做演进。但他认为:“在一个智能网卡上打补丁是解决不了的,因为本身设计理念是不一致的。”从架构层面来讲,DPU的架构是在DPU系统上插入一台服务器从而解决整台服务器相关的数据处理加速和安全及管控问题,而智能网卡架构则是在服务器上插入一个网卡解决网络加速的问题,二者有本质性的区别。
形虽差之毫厘,神却谬以千里。
自2017年推出神龙后,张献涛印象中,几乎所有DPU公司的DPU架构、接口、功能模块、能力实现等,都是仿照神龙已公开的架构来设计。
可为何仿照神龙设计,仍然很难做好DPU?
核心问题出在对云业务的理解。张献涛说,第三方厂商通过跟客户、工程师沟通,只能得到对云业务需求的片面了解,所以最终做出来的效果很难满足客户需求。
他坚信,云厂商必须自研DPU架构。“如果不熟悉软件架构和系统软件栈,不熟悉自家技术栈中哪些地方才是瓶颈,很难把它设计得很好,而这些都是外部DPU公司很难拿到的技术信息。”
换个角度来看,对云厂商而言,只有从硬件架构到固件到软件栈都自研,才能做到整个技术链路的可控,它才能成为一个负责任的云厂商。
近年云计算厂商的动向印证了张献涛的判断。京东云研发基于自研智能芯片的虚拟化架构京刚,谷歌云与英特尔合作研发基础设施处理芯片IPU,字节跳动宣布其自研DPU将通过火山引擎云产品对外服务……
“从终局上判断,今天DPU的创业公司没有太好的出路,最好的出路就是把相关业务出售,卖给有需要的云计算公司,通过被收购变现。”张献涛说,如果对云计算业务不够了解,一味想把DPU做成通用架构是很难成功的,做DPU的公司,最终都要和云厂商做产品和技术的共建合作,这样成功的可能性才会提升。
“业界投资的DPU都想尝试着做一颗通用的DPU,有的甚至想推配套的软件技术栈作为业界标准,其实出发点就是有问题的。”
这是因为DPU完全由软件定义的架构,由客户需求或业务发展形态驱动,与客户整个后端软件栈结合非常紧密,很难做到通用的程度。
在张献涛看来,真正做出DPU,并且让客户规模化用起来,其实比AI芯片还要难。
关键难点在于,它的软件生态注定培养不起来,因为各家公司的软件技术栈都发展多年,很难废掉去适配一个难于自控的外部厂商推荐的技术栈,所以在三年之后,DPU领域一定会出现整合,一些公司可能会消失或者被卖掉。
DPU的使用者通常是云计算公司或做虚拟化软件的公司。如果只是针对某一个软件栈来做,无法实现通用,如果想做得非常通用,“因为各家的软件栈都不一样,整个安全机制的设计也都不一样,则很难和云厂商进行适配”。
这与GPU+CUDA的逻辑不同。英伟达花了十多年研发,又遇到深度学习爆发的契机,才将这样的生态稳固下来,成为业界的标准。
而在DPU领域,各家公司的软件栈已经存在,互不相同,强行标准化很难实现,并且研发周期长、固件很难开放、接口的定义不一致等都是不可控的因素。
“如果想做一个统一的标准,放之四海而皆准的标准或者软件生态,是非常难的。”张献涛解释说,当每家软件栈不一样时,DPU要处理的数据格式也都不同,因此很难将这样的一个完全固化、做出统一的东西。
▲阿里巴巴集团研究员、阿里云弹性计算产品线负责人张献涛
经过四年的历练,神龙架构积累了哪些优势?又如何取得超越AWS Nitro的性能?
张献涛首先提到「快速迭代」。
做软硬融合,需要架构随着软件迭代而升级改造。研发一颗ASIC的周期大概是24个月起步,这对于互联网软件迭代的节奏来说,实在太久了。
因此,阿里云神龙采用FPGA的模式来做,并且做到了FPGA和配套系统软件全面在线实时热升级的能力,以便每周均可升级,通过灵活地持续优化,最终实现更极致的性能。
“到今天为止,最适合做DPU的还是可编程可升级的FPGA。”张献涛亦谈到选用FPGA的局限性,随着将更多功能做到DPU里,FPGA的逻辑单元数等可能会制约DPU的发展,这就更需要技术人员不浪费每一个逻辑单元把必要功能和性能做到极致。
要做出好的DPU,对于「软硬件融合设计的理解」也必须到位。这是一个从软件、硬件到对应固件和上层系统不断迭代的过程。
软硬件之间的接口甚至寄存器的设计,都需与软件充分融合,如果企业对自己的软件掌握程度很高,又对软硬件协同的思路、对架构和相关协议理解深刻,才能逐步打磨好性能。
第一代神龙的网络转发做到了每秒600万数据包,当时Nitro大约为每秒300万;经过更多数据链路上的任务改用硬件加速,第三代神龙做到2400万,最新一代更是做到了5000万。传统RDMA组网能力通常为千台规模,而第四代神龙的eRDMA组网能力可至数10万台,真正实现了RDMA能力的通用化和平民化,助力高性能计算以及当前流行的云原生软件架构的发展需求。
此外,新一代神龙加入了对「可信计算与加密计算」的支持,实现系统可信防篡改与数据可用不可见,确保客户对「安全」的要求。
后续阿里云计划在所有数据链路经过神龙架构时做更多预处理,从而大大提升DPU的计算效率。原来计算1万条数据,所有数据都落到内存里挨个算,现在做预处理后可能只需要计算50条,这样一来,效率就提升了数倍。
据张献涛透露,接下来,除了做到速度更快、带宽更高、延迟更低、每秒IO次数更多外,神龙架构还将在性能、稳定性、安全性方面层层加码,推动神龙作为加密计算的载体。
随着DPU一路走俏,云计算厂商陆续通过自研或投资的方式谋篇这一赛道,一些DPU设计创企亦开始崭露头角。
“我们2017年神龙的架构就公开了,大家都在follow这个标准来做,今天发展到这样的程度,我们觉得还是挺欣慰的。”张献涛认为,DPU发展正在走入正轨,更多人意识到它的重要性对于业界是一件好事,它将提升整个云计算的效率。
DPU本质上是一种基础软硬件协同设计的系统,从研发出来到一些种子用户去用起来,需要两三年时间。他相信,未来两到三年内,DPU的热度都将持续,但到一定的阶段,它会像今天做AI芯片一样走向收敛,一些不正确的思路将被逐渐淘汰掉。
面向未来,DPU领域可做的东西还很多。
比如新兴的存内计算,本质上要解决的问题与DPU是一致的,即如何减少数据搬移,从而提升计算效率和降低功耗。所有数据经过DPU时都可以进行一次存内计算过滤,只有有效的数据才会进入主CPU内存,这样整个计算系统的性能也将会数倍的提升。
“纵观未来,你会发现尤其是今天异构计算变成潮流的情况下,几乎所有DPU努力的方向都是为了解决掉内存墙带来数据处理效率下降的问题。”张献涛相信,未来DPU的发展值得期待,并将一定和某种业务结合度越来越高。