图片来源@视觉中国
文丨亲爱的数据,作者丨谭婧
DPU是人工智能芯片之后的又一大热点。
业内人士笑谈,那些投资人钻研DPU的热情,比造DPU的人还高。
有人在问DPU芯片是啥的时候,创业公司里,飘来一个熟悉的女声:“支付宝到账,人民币一亿元。”没错,就是融资额经常上亿。
别说互联网大厂,国字头大基金也刀背藏身,眼睛直勾勾盯着DPU,伺机而动。
云厂商对DPU芯片的渴望,是歇斯底里的。逼得造DPU的人,鼻孔喷血,双眼冒火。
而坊间有个说法,DPU只有两个品牌——亚马逊云和阿里云,以及其他。
DPU的故事,要从好久之前讲起了。
(一)1998年,美国斯坦福大学的球场上。
尖尖绿草被阳光温柔抚摸,孩子们尖叫雀跃,球衣鲜艳,带风奔跑。
球场外,一些家长等着接孩子回家。他们中有的是斯坦福大学的同事及其家属。
左右无事,家长群里的两位闲聊了起来。
“最近在忙啥?”
“创业了。”
“创业方向是啥?”
“在一台计算机上可以跑多个操作系统。”
提问的这位男士,文质彬彬,听到回答,突然眼睛一亮,脱口而出:“这个想法挺好,很新鲜。”
最怕一流行家,遇见了一流行家,一聊就迸射火花。
两位家长,在球场边,就地达成投资意向。
这位家长,不,这位看准就出手的早期投资人,气质儒雅,风度翩翩。
他就是张首晟,著名华裔物理学家,杨振宁的爱徒,主要从事凝聚态物理领域的研究,斯坦福大学终身教授。
创业的那名家长也不简单,叫黛安·格林(Diane Green),一位天赋型女性管理者,从创业之日起,就担任高管,掌管公司长达十年之久。
后话是,她还管了一阵子谷歌云。
此番操作,把孩子们都看懵了。
另一个孩子的爸爸,黛安·格林的老公,是斯坦福大学教授,孟德尔·罗森布拉姆(Mendel Rosenblum,简称罗教授),是公司的首席科学家,他也是操作系统领域的世界级专家。
彼时创业路上,夫妇俩刚刚动身,公司名叫VMware。
二十多年后,这家公司成为虚拟化技术领域的巨头。
计算机技术的术语,常常闪烁理性光芒,而“虚拟化”这个词,一看就是镜花水月,太虚幻境,把一种仙风道骨的玄幻气质,拿捏得死死的。
不意外,虚拟化技术的一开始:学术研究站C位。
为数不多的高校在研究,美国斯坦福大学、英国剑桥大学。
屈指可数的公司在探索, IBM公司、英特尔公司、微软公司。
上世纪70年代是虚拟化学术研究的黄金年代,有多篇学术论文为这个方向奠定了理论基础。
科学技术这行,光凭论文不行,得拿出东西来,还得用起来。
等有代表性的公司诞生,年年等断肠,从七十年代,到九十年代,一等二十年。
据VMware公司CEO黛安·格林回忆,一天晚上,罗教授回到家,谈起工作,他说:“我想重新审视虚拟化,将隔离引入操作系统,能同时运行新旧代码,又不必构建一个新的操作系统。”
想法像洪水一样从脑中涌出,罗教授非常激动,睡醒的第二天,就开始做原型。
不久之后,澎湃的行动力,让罗教授和他的学生们实现了X86 服务器的虚拟化。
科学家的朋友圈往往光芒四射,创始人集齐五位专家,摆开了阵型,对虚拟化发起冲锋,这一次载入史册。
“攻下”X86,打开虚拟化由守转攻的新局面。
相传,虚拟化技术公司的文化和互联网企业文化不同。
美国斯坦福大学的学生闭眼挑offer的时候说,谷歌的文化吸引年轻人,撸狗上班,睡衣轰趴,而VMware 公司的员工则能在公司安稳地结婚生子。
随后,学术派传球至边路,PC的虚拟化接球。
虽然在小型PC机时代,虚拟化不是刚需,但是开创了硬件新玩法,沸腾了极客的热血。
小心翼翼问一句,虚拟化是不是在骗CPU?
理直气壮回答:CPU有一种被骗的“能力”。
虚拟化技术很厉害,还是要戒骄戒躁,后面的路,还长。
(二)无疑,VMware公司是成功的,当开源世界崛起,软件甩开商业软件的统治,开源极客走上舞台。
请大家记住这两个虚拟化技术的精神小(领)伙(袖),因为他们对DPU的发展,至关重要。
按姓氏笔画排序:安东尼·李国瑞(Anthony Liguori),美国人。张献涛,中国人。
2001年,英国剑桥大学计算机实验室,IanPratt教授带着几个博士生做了一个非常知名的虚拟化项目.
叫Xen project。
Xen的读音和“than”有点像,但不完全一样,发音不吐舌头。
Xen有一个庞大的、活力十足的开发社区,深远地影响了云计算、虚拟化和安全。
两年后,Xen X86虚拟机监视器的第一个稳定版本就问世了。
2004年,张献涛在武汉大学,念博士。多年寒窗,没有少下功夫,他技术水平强,动手能力更强。
技术大神何愁去处,可张献涛还是有些担心,因为虚拟化技术的择业面,太小了。
读博士,勤奋很重要,有一位好的博士导师也重要。
张献涛的博士导师,是全球知名的密码学家卿斯汉。张献涛一定是花掉了很多运气,才遇到了这么一个好导师。
他一脸慈祥地对张献涛说:“虚拟化这个研究方向,我和英特尔有合作,你先去那里实习,别担心,我帮你安排,剩下的,要看你自己了。”
而今看来,卿斯汉教授将张献涛送去企业实习,是完完全全从学生的利益考虑。
(有些博士导师那是死活都不愿意放博士生出去干活,此处省略三千字吐槽)。
于是,张献涛从一名英特尔的实习生做起,一做就是3年。时光飞逝,技术水平飞涨,他于2008年正式入职英特尔。
他可能也没有想到,这份工作一干就是9年。
把镜头摇到2002年的美国IBM 公司,虚拟化的另一个前沿阵地。
一位名叫安东尼·李国瑞的大学生,在学校读书期间一直在IBM实习,每周20小时,连续四年,风霜雪雨,从不间断。
2006年,安东尼入职IBMLinux 技术中心,成为一名软件工程师,这份工作一干就是7年。
人这一生,找到一个真心喜爱的技术作为爱好,然后不计成本地付出时间和耐心,用心打磨,收获的将不只是一个拿得出手的技能。
更重要的,还有一个脱胎换骨的自己。
也许某日傍晚,红霞染尽天边,张献涛在看云,安东尼也在看云,可能会有那么一瞬间,他们都意识到自己要和这个名字极富诗意的技术,打一辈子交道了。
世间因缘,因缘世间。
(三)芯片江湖,有人,有酒,有故事,就有批评英特尔的声音。
PC为王的时代,因为虚拟化不是主流,所以英特尔X86指令集对虚拟化的服务态度很不友好。
这锅,得英特尔背,还背到了2005年。
英特尔在那一年才笑脸相迎,态度友好,在CPU里面做了一些扩展指令集。
这次重拳,扭转了虚拟化的乾坤。
那一年的年11月,英特尔宣布产品支持硬件虚拟化(VT-x,VT-d),AMD也屁颠跟上,宣布产品支持硬件虚拟化(SVM)。
别看姗姗来迟,但是这套技术也足够硬核党,能做出来也很了不起。
但是英特尔“罪名”也很昭彰——低效。
VMware公司眼疾嘴快,把英特尔一顿猛批。
模仿骆宾王讨伐武则天,出了一篇著名的“檄文”,讨伐英特尔。
指责支持虚拟化的扩展指令集低效,还没有自己家做的性能好(这里指VMware公司的“二进制翻译”,binary translation)。
指责别人,趁机夸赞自己,没毛病。
经此一事,也能一窥VMware公司的江湖地位,批评别人,得自己腰杆子倍儿直。
经此一变,虚拟化便有了CPU芯片厂商的全火力支持,仿佛被按下二倍速播放键。
这是虚拟化的短板,第一次被拯救。
那时候,英特尔没有白忙活,蘸着唾沫点钞票,心里乐开了花。支持Xen,跟支持Linux的道理一模一样,虚拟化带动了生态,大家都爱用户黏性。
窗外阳光正好,又是吃饭时间,天上白云飘过,人间没有巨变,云计算悄然巨变。
云计算的第一张门票,亚马逊云抢到了。云计算的号角一吹响,开源迅速占领C位。
Xen底气十足,首席科学官兼剑桥大学计算机实验室教授Ian Pratt说:“微软正处于追赶我们的道路上。”
此言不虚,微软公司的产品确也深受 Xen的启发。
一时间,红帽,Sun Microsystems,Suse Linux,到处都有Xen的身影。
一时间,似乎任何新事物都会在Xen萌发。
Xen被掌声包围,连云巨头都伸出橄榄枝。2006年,亚马逊云(EC2)推出第一个采用Xen的实例类型(m1.small)。
Xen登上了第一朵云,自此,成为云计算的生力军。
虚拟化技术烈火烹油,微软公司好不服气。悄悄收购位于美国波士顿的虚拟化厂商Softricity公司,赶紧公布了,为Windows Server引进新的虚拟机管理产品的时间表。
“别催了,在买了。”
后续是微软公司再露土豪本色,为了虚拟化连续多次出手多家创业公司。
这也从侧面反映了虚拟化这个技术,又小众,又难,又关键,连微软公司也哑巴吃黄连,有苦说不出。
2007年英特尔出了VT-x,增强了很多功能,又反超了VMware公司的二进制翻译技术。
VMware公司内心独白:批评英特尔,草率了。
在2009 年的时候,研究公司Gartner预测,三种技术将主导虚拟化:VMware公司的 ESX Server、Xen 和微软公司的 Viridian hypervisor。
有些技术预(占)测(卜),听一听,别当真。
正面评论大声说,Xen是当时的业界标准之一,非常成熟。
负面评价小声说,Xen的架构非常复杂,代码链非常长,对内核的改动也比较大。
Xen是一个非常好的项目,但是确实太复杂。全球真正搞懂Xen架构的人不超过50人。大部分人,停留在仅仅能用这个层次。
再者,Xen还是传统虚拟化技术。
Xen的传统结构,决定了它身上的担子特别重,要忙于许多事情,保护物理硬件,保护BIOS,虚拟化 CPU,虚拟化存储,虚拟化网络,还有诸多管理功能。
Xen过于笨重,注定退场,但Xen的出现,为虚拟化打开了开源世界的大门。
梦里几十年,长风几万里,才把虚拟化吹进开源世界。
2014年,同样是开源的KVM来了。
作为Linux的家族成员(以组件的形式出现),这个轻巧的超级管理程序,身姿轻盈,席卷世界。
这时候,VMware公司的日子也不红火了,闭源商业软件,花钱不说,云厂商改动也不方便。
不要忘记的是,亚马逊云和阿里云的DPU早期架构,都能看到Xen与KVM的身影。
(四)问世间,是否此山最高,
或者,另有高处比天高。
(手动打节奏:嘿哈!)
开源社区背后的惨绿少年,藏身于开源江湖,苦练绝技。
十多年前的虚拟化技术,并不成熟。
放眼全世界,做虚拟化技术研究的人,真心不多。
开源社区里最有权力、最受人尊敬的人,有一个统一的称谓,Maintainer(软件维护者),也是高级别的代码贡献者,掌管开源项目的设计规划,对全局,有深入了解,对未来,也有独到见解。
世界有时候很大,有时候很小。
安东尼,是QEMU的Maintainer。
张献涛,是KVM跨平台支持以及KVM/IA64的作者和Maintainer 。
QEMU曾是世界上首屈一指的系统仿真器和虚拟器。QEMU支持Xen和KVM,并广泛部署在大多数云环境中。
从Xen到KVM,安东尼和张献涛的技术突飞猛进,天天打破天花板。只要解决性能方面的难题,什么姿势都会。
要知道,那些系统底层,要去解决性能方面的故障或者错误(Bug),都是非常难的,伸出手就能扼住整个项目的喉咙,让人动弹不得。
安东尼和张献涛,身上不断出现“巧合”。
张献涛和安东尼在Xen 和KVM 开源社区都有交集,是享誉社区的极客,令无数开源玩家高山仰止。
经历诸多采访报道,他们在做自我介绍时,都曾说到一句话:“我一直做虚拟化方向的工作。”
同样的话,一个用中文讲出来,一个用英文表达。
只要一有虚拟化安全的新闻热点出现,国外技术媒体都以采访到安东尼为荣。张献涛则是国内第一批参与做KVM的。
巧合的背后,往往是必然。
2013年,安东尼,加入亚马逊云。
2014年,张献涛,加入阿里云。
昔日,在虚拟化开源社区,两位最有“势力”的人。
如今,在头部云计算厂商,主导DPU技术变革。
更巧的是,一个负责Nitro系统,一个负责神龙系统。
亚马逊云和阿里云的DPU,均汲取了开源虚拟化软件Xen和KVM的精华。
云计算带来了虚拟化技术的繁荣,实现了技术的跃迁。
此时,虚拟化的专家,从硬件厂商的宝贝,变成了云计算厂商、大型互联网公司的宝贝。
35岁就淘汰之类的话,在这些人面前,纯当放了一个臭屁。
所有人都意识到,虚拟化技术“值钱”了,蜂拥而至,可惜,门槛很高。
虚拟化是一门非常难的技术,虚拟机是对真实计算环境的抽象,很多人被“抽象”二字难住。
操作系统内核已是扫地僧级别的技能了,虚拟化则是独孤求败。
张献涛说:“以前,我们认为操作系统内核是最难理解的,也是最复杂的系统软件。业界有不少非常资深的内核(kernel)工程师转去做虚拟化,都理解不了,也做不好。”
为什么呢?
因为虚拟化又抽象了一层,其难度大大增加,要用软件去实现硬件(的功能)。
在云厂商没有虚拟化专家的时代,亚马逊云也找英特尔的人去解决问题。
十几年前,英特尔工程师火线救援云厂商的故事,都快被人遗忘了。
2010年,阿里云准备在5月10日发布产品(ECS1.0)。
那时,有三家企业的工程师挤在阿里云攻坚,攻了一个多月,有人都要把头急秃了,眼看到日子了,还有一个坎,过不去。
大概1000台服务器,运行一晚之后,总会发生一件奇妙的事情,硬盘找不到了。
硬盘也很委屈:“我掉线了。”
攻坚小组被死死逼到了墙角,他们拿出了一个负责任的推断:问题要么出在芯片组身上,要么出在芯片身上。攻坚小组在嘶吼,得让英特尔派人来,快点。
命悬一线之际,无论英特尔派谁来,都会被人死盯着,恨不得用秒表计时。
意外的是,英特尔的专家到现场后,看了一下(所有的配置),想了一会,之后说:“改个参数就可以了”。
计时那个人,看了下表,从拿到阿里云的服务器日志到搞定,大约用时3000秒(50分钟)。
这一刻的如释重负,让在场的阿里云工程师一辈子也忘不了。
快拿几条真丝围巾,我们要缠在胳膊上跳广场舞。
这事,让一个外援在阿里云内部,小火了一把。
谁知不久之后,阿里云的章文嵩问了团队一个问题:如果要挖一个虚拟化做得最好的人,应该挖谁?
章文嵩是何人呢?Linux虚拟服务器创始人,开源大神,曾任阿里云CTO,首席科学家。
阿里云的工程师们,双手不离开键盘,头也不用抬,张嘴就有了:张献涛。
无独有偶。
有人告诉我:“二零零几年的时候,亚马逊云还没把安东尼搞过去,虚拟化的问题也解决不了,也得靠英特尔。因为虚拟化的大牛工程师,亚马逊云也缺。”
亚马逊云,有了安东尼。
阿里云,有了张献涛。
寻隐者不遇,那虚拟化的高手到底在哪?
云深不知处,他们就聚集在IBM、英特尔、红帽。
消息灵通人士透露,2008年左右,英特尔公司上海办公室里,虚拟化团队大概十几号人。云计算带动虚拟化技术热门之后,全世界都来挖人。
自此,很多虚拟化的人才就留在了美国,直到现在。
人争一口气,佛受一炷香。为什么云厂商会憋着口气一顿猛搞芯片?
答案是:谁痛苦,谁难受,谁逼疯,谁知道。
张献涛恳切的语气令人印象深刻:“就算不是神龙团队,阿里云也会有另一支团队把DPU做出来。”
众所周知,现在云计算厂商的服务器规模有多大。当规模扩大,用户量增长,对DPU的渴求就变得心切。
几十万台服务器,一天天,嗷嗷待哺。
在安东尼心里,应该也反反复复问过很多遍DPU的本质问题:
“为了得到更好的产品,我们要设计硬件,要设计一个专门用于虚拟化的硬件平台。不是通用软件,不是通用硬件。”
回望来路,已无退路,在技术最佳的更迭期,DPU出现了。用DPU定制化硬件加速,成为最正确的方向。
(五)别怪我没提醒,云计算的虚拟化,和前几代虚拟化,大为不同。
前几代产品与DPU隔着一条深不见底的天堑,跳过去,就是通天大道。
问题来了,怎么跳?
从2012年开始,亚马逊云团队,尤其是EC2虚拟化就开始思考:
那个叫做Hypervisor的“超级管理员”,得胆子再大一点,能力再强一点。那么问题来了,世间能做出比纯软件架构更好的超级管理程序吗?
这是我能找到的,安东尼在外媒采访中谈到的,亚马逊云关于DPU思想萌芽最早的时间点。
但那个时候还没有Nitro的影子。
后来,把Nitro System曝光于公众面前的,是一次知名的收购案。
被收购的公司叫做Annapurna Labs,也就是安娜普尔纳峰实验室,公司在以色列和美国都设有研发中心。
登山爱好者,瞅这个名字很眼熟。
巧了,喜马拉雅山最高十峰之一,安娜普尔纳峰。
角峰锐利,山体挺拔,线条凌厉,冰雪覆盖,云海猛烈翻滚,在向全世界的登山者搔首弄姿:“你过来呀~”
又巧了,公司两位创始人Billy和Nafea也是登山爱好者,以攀登此峰为荣。虽未抵达,但心已至,他们将角峰设计成LOGO,印在了封装好的芯片上。
登山是个人英雄主义,DPU是团队实干集体主义。
安娜普尔纳峰实验室对于亚马逊云来说,就是上天恩赐的礼物。国内云厂商一开始有这个好买卖,半夜睡觉都笑醒。
收购这件事情,光有钞票不行,好的“收购目标”极其罕见。
这家“登山爱好者”公司,除了登山,还有几个绝活。
其一,Graviton芯片,云厂商第一颗Arm芯片。
其二,是一种虚拟机抄近路小能手的技术,ENA。
(ENA,全称是ElasticNetwork Adapter,一种网卡驱动,能用于虚拟机和物理机,是开源项目,发布在GitHub网站上。)
这种技术讲究的是四两拨千斤,使得虚拟机绕过软件(内核和用户空间网络处理程序),直接操作硬件(网卡),如此这般,提升了网络效率。
昔日寂寂无名的ENA,成为亚马逊云网络虚拟化的关键技术,日后是大名鼎鼎的Nitro的一部分。
合作如丝般顺滑,那就买过来,谁叫那时候世界首富掌管亚马逊公司呢。
2015年,收购价3.5亿美元。
别看当时花了多少,要看日后省了多少。这是一场几乎完美的收购,每年都为亚马逊节省大把美金。
因为DPU的特长之一就是很能打,一套降龙十八掌,打败虚拟化损耗,不在话下。
损耗少了,当然省钱。
安娜普尔纳峰实验室开发的这张卡,不仅卸载了VPC网络功能,还卸载了EBS 存储网络功能。
这就是前文提到的,“任务卸载”技术。
据网飞公司技术高管(Brendan Gregg)的说法,Nitro的性能损耗非常小(不到1%),Nitro的虚拟化性能接近裸设备。
亚马逊的文化里,有单向门(The one-way door)和双向门(two-way door)决策的说法。这个翻译,颇为晦涩。
“单向门”的任务,像电影《鱿鱼游戏》,大抵是干活时被人用枪指着脑袋。
只要任务失败,就“嘣”一枪。惊不惊险,刺不刺激。
“双向门”就是这个场景用得不好,搬到别的地方,说不定还能用上,反正不会白忙活,KPI保住了,万事好商量。
DPU是专用的,“专用”意味着,拿到别处“没用”。
Nitro 系统开发的时候,枪和脑袋的距离,几毫米。
失败和成功的距离,一丢丢。
研发团队在描述艰难的开发岁月的时候,像个文科生,一口气用了四个形容词。
他们说:“这次我们做决定,有条不紊,谨慎,缓慢,深思熟虑。”
懂行的心里明白,这不是普通的任务,其要求已经超出了传统虚拟化技术的能力。因为打破传统,就是浴火重生。
研发团队在技术博客里写下:“只有创新才行,但我们没有急着拍脑袋。整个探索的旅程历经五年,仔细、反复试验,每一步都很小心,验证我们前进的方向是正确的。”
喜大普奔的2013 年,亚马逊云研发团队推出了第一款Nitro 卸载卡(C3 实例类型),将网络进程卸载到硬件中。
马不停蹄的2014 年,将 EBS 存储卸载到硬件中(C4 实例类型),这次研发团队首次与一家名为安娜普尔纳峰实验室的公司合作。
Nitro研发团队谈到了研发的时间节点:“2017 年,我们卸载了最后的组件,包括控制面和剩余的 I/O,我们引入了一个新的管理程序,具有 C5 实例类型的完整Nitro系统。”
代码长什么样子,如今已经记不清了,但工程师依然记着当时的心情:
“这是投入的挥金如土,是身心的殚精竭虑,是承诺的使命必达,是不可思议的时刻。当Nitro系统推出时,五年辛勤,此生难得。”
Nitro给亚马逊云带来什么?
Nitro的迭代推动亚马逊云最核心的EC2产品家族不断往更大、更快、更安全、更稳定、更多类型、更高性价比方向演进。
Nitro 系统让亚马逊云有能力提供100 Gbps 增强型以太网网络的云,支持更高吞吐量或受网络限制的工作负载(如 HPC 应用程序)。
借助 Nitro 系统,将虚拟化功能卸载到专用硬件上,将 EC2 的架构分解为更小的块。这些块以多种不同的方式组装,能够灵活地设计和快速交付EC2 实例,并提供越来越多的计算、存储、内存和网络选项。
亚马逊云 CTO 沃纳·威格尔(WernerVogels)曾经说过,“在亚马逊云,90%到95%的新项目,都是来自于客户给我们的反馈,剩下的5%也是从客户角度出发所做的创新尝试。”
而Nitro 系统正是这种项目之一,它诞生于2013年,成熟于2017年,到现在还在不断进化中,2021年已经迭代到第五代。
(六)最重要的一点,亚马逊云科技的团队看到了,阿里云神龙团队也看到了。
安东尼看到了,张献涛也看到了。
把传统的虚拟化技术直接移到云计算,缺陷极其明显,毕竟不是为了云计算的服务器而生的。
把时间花在最值得思考的问题上。
2016年左右,张献涛博士,天天都在思考同一个问题:什么样的虚拟化技术,才适合云计算?
得从根本上解决传统虚拟化应用到数据中心里面存在的缺陷(也就是性能、资源、隔离方面所有的问题)。
他脑中的“神龙系统”慢慢清晰。
那一年里,张献涛博士密集、低调往返于北京和杭州两地,意在劝说多位大咖级芯片主架构师加入阿里云。
有这样一句话,很打动人心,日后实现的时候,更激动人心:
“外界无法理解互联网公司要做DPU的决心,这件事情绝对是前人没有做过的,它可以改变云计算里面最核心的技术。”
神龙芯片给阿里云带来什么技术价值?
张献涛认为,第一,解决CPU和内存完全隔离的问题。这里的隔离有两个层面意思,一个是安全方面的隔离,一个是性能的隔离。
第二,IO链路上最容易出安全漏洞。QEMU这个模拟器是从传统的虚拟化带过来的,在神龙芯片第一代的那个时间点上,它是完完全全过时了。
所谓的过时了,包括两点。其一,代码是开源的,人人皆可见。其次,安全漏洞多,常发生一些虚拟机逃逸的情况。
在公共云的世界里,“虚拟机逃逸”五个字,还没有说出口,就有一群人扑上去,捂住你的嘴。
虚拟机逃逸=绝对不允许。
DPU解决了性能,同时也解决了安全方面的问题。
神龙芯片一开始就想好了,多张卡解决问题,强调多合一,多种功能在一张卡上实现,复杂度下降,稳定性增强。
两架马车,解决的问题一样,实现的思路不同。
佛山无影脚,神龙无影刀。
DPU的一个关键就是,“从哪里切”与“切到何处”,答案充满玄机和禅意。
这让人想起庖丁解牛,若要回答:骨在哪,肉在哪,骨肉相连又在哪;
恐怕要稔知全牛结构,全凭手感,刀法在脑海里,在肌肉里。
这还不够,难题在于,每一家云厂商的软件是不一样的。
怎样处理分布式存储和分布式网络的软件接口?
哪些应该放在控制路径?
哪些放在数据路径?
如果不懂虚拟化,你就不知道怎么切,或者切完后性能也不好。
DPU团队表面生气,心里憋闷,谁出的破题?
再或者,有的DPU团队,还没有看到牛在哪里。
DPU这个东西,光有硬件思路,或光有软件思路,一定会出大问题。
当故事讲到这里,虚拟化的知识就不够用了,要细聊张献涛在英特尔的另一段经历。
上海虹桥作为著名的交通枢纽,周边房价,一直看涨。
2005年的时候,张献涛刚到英特尔实习,工资不高,钱包不鼓,在大虹桥地段找房子住,选来选去,选了仙霞路附近的茅台路,一个叫做天山五村的老式小区。
大虹桥的房价,逼得张献涛和师兄合租了一个单间,逼仄的房间里,摆了两张单人床,已经够局促了。没想到,更局促的在后面。
一进英特尔,张献涛的压力值就爆表了。
为什么?他发现,六年的计算机专业白读了,妈耶,英特尔大牛们说的话,居然听不太懂。原因是他们讲的那些东西,都牵涉到芯片内部的专业知识。
能主宰一个时代的门派,半导体产业链的顶端,还是有很多秘籍的。
脑袋混沌了几天之后,张献涛那股子不服输的劲儿,上头了。
经高人指点,他冲到藏经阁就找宝典。
《英特尔系统编程手册》(System Development Manual)是这样一种存在,你看第一遍,包你根本看不懂。
照理说,计算机的操作系统,是按此写出来的。比如,英特尔的64位处理器用的是IA 64,配套的《手册》有好几卷。
《手册》也诚不我欺,卷卷厚如板砖,就不信你能读完。
晚上,师兄睡了,张献涛不敢开大灯,从枕头下面摸出一样东西,手电筒。于是,咳嗽放屁都在一个被窝里,用手电筒的光,照着看《手册》。
老旧小区的黑瓦和夜色融在一起,楼层里闪烁着零星的光,从窗口的方格里冒出来,张献涛屋里的光,从被子里透出来。
开了头才知道,痛苦是一层套一层的套娃。
每日不辍的翻读,还要看操作系统的内核代码。这行代码为什么这么写,他要到编程手册里找答案。这还不够,要看Linux和Xen的代码。
看不懂怎么办,英特尔还有一个“师兄帮扶”机制,类似学霸红领巾,不懂问师兄。
左手一本软件编程手册,右手一本硬件编程手册,外加Linux内核代码,一行一行去理解。
再看不懂怎么办,去找美国的工程师请教。
张献涛吃一口编程手册,蘸几行Linux内核代码,成为每日的例行动作。
日复一日,张献涛对CPU、对操作系统的理解,加深加深,再加深。
在英特尔公司,张献涛知道了一个“冷知识”。
任何一颗芯片,从英特尔公司“走”出来之前,内部员工可能提前三到五年就已经拿到了“未出厂的芯片”。
工程师们要把 CPU所有的新功能用软件“用”起来。
说白了,到手的芯片还没有正式量产。芯片里面会有各种各样的毛病。你要去理解“问题”来自于软件,还是硬件。
不了解这点,你永远不会怀疑CPU会出问题。
DPU的技术领袖,需要对芯片、对芯片组、对PCIe总线、对操作系统、对虚拟化的了解,到达一种境界,关灯取物,如同开灯取物一样自如。
看似行云流水的判断,是在日复一日、年复一年、无声无息中形成的,就像火山爆发后,热风里从早到晚飘落的火山灰,把一切技术难点都掩埋。
从火山灰中醒来,看到一个重塑的新世界。
DPU的部署,无异于完成了给高速飞驰的列车换防风材料,给深海作业的潜艇换防水材料。
2017年到2021年,亚马逊云和阿里云均已跑步进入了DPU产品迭代良性循环的新世界。
2021年的夏天,张献涛博士对我说:“以前,没有人相信互联网公司需要芯片技术。现在,大家都相信了。”
(七)裁判一声长哨,男主持人富有磁性的声音播报:观众朋友们,这里是数据中心赛场,IaaS层终场,云计算基础设施最后一场比赛。
当优秀DPU问世的时候,国内云计算厂商在IaaS层,这轮的战斗,宣告结束了。
自研出DPU的云计算厂商说:“我摊牌了,我赢了。”
哪怕五年前,放眼找工作的网站,就算云计算厂商“放出”招芯片专家的岗位,谁敢去?去干啥?再资深的HR一看岗位说明,都懵了,就没接触过搞芯片的人。
软件开发周期何其快,硬件开发周期何其慢。旁人都说,这恋情看上去就不长久。
老牌芯片公司一扭头,眼角余光里都是质(鄙)疑(视)。
云厂商只擅长软件,如何面对芯片?
云厂商面对的场景极其复杂,用芯片怎么搞定?
谁出的题,这么难。
问题是复杂中的复杂,需求是刚需中的刚需。
很抱歉文章科普得迟了,DPU是一种云上服务器的专用芯片。
这句话,有两个关键词,“云上服务器”和“专用芯片”。
先讲,云上服务器。
云上服务器有些像公共澡堂,可以一个人用,也可以多人共用,麻烦都是“一起用”带来的。
公共澡堂“一起用”,最好有隔板。我看你,你看我,这样不文(安)明(全)。
可口可乐和百事可乐要在一朵云上,还能互相看文件,立马就翻脸了,肥皂也不捡了。
那怎么办?
答案是:得插DPU,而且是每台服务器都得插。十万台服务器,插十万张DPU。杀毒软件是用软件保护安全,DPU的作用之一是用硬件保护安全。
说到安全,硬件比软件更能打,这个就不赘述了。
再讲,专用芯片。
提到专用芯片,挖矿炒币赚到钱的人兴奋了,抢着说:“我最内行。”因为不同的加密货币,要不同的矿机。矿机越对口,挖币越赚钱。
金钱的铜臭味,告诉我们:专门的事情,让专门的芯片去做。
现在还有争议,但是未来,会看得清楚,DPU是云计算的标配。
摩尔和登纳德两位老先生,无情指出“现实之无奈”,CPU成了最昂贵的“打工人”。
所以,DPU作为专用硬件,除了安全,还要来给CPU减负。
几条街之外,都能听见DPU的唠叨:“哎呦,CPU我的祖宗,快放下,您哪敢动这,可不能把资源浪费在网络和存储的负载上。”
CPU则说:救救孩子吧。我太南了。
(CPU大声呼救的原因是:CPU既要处理大量的上层应用,又要维持底层软件的基础设施,还要处理各种特殊的IO类协议,不堪重负。)
把“负担”从CPU上卸载下来,DPU将有望成为承接这些“负担”的代表性芯片。
CPU也很高兴DPU的出现,你行,你上呀。
的确,有人夸DPU是继CPU和GPU之后的“第三颗”主力芯片。
不要因为鲜花和掌声太多,就对DPU的能力有什么误会。
CPU稳坐“主咖”宝座,CPU可以当DPU用,CPU也可以当GPU用,但是反过来不成立。
DPU的事情CPU能做,但是,CPU比DPU昂贵老多了。牛刀太贵,杀鸡的人自然不舍得。
云厂商想实现“一起洗澡(一起用)”,得靠虚拟化技术。虚拟化虽好,但是会引发一堆“糟心事儿”,比如性能损耗,甚至有人把这种损耗比喻成“交税”,搞不定当然多交税。
这种损耗也相当于,还没有开始洗澡,一半水在水管里就浪费光了,肥皂沫都没有来得及冲掉。
技术问题越难,极客们越兴奋,不自觉扬起了手里的小皮鞭。
虚拟化是DPU的精髓,虚拟化的历史几乎和计算机一样悠久,是计算机科学史上最伟大的思想之一,造就了伟大的云计算技术和市场。
“制造假象”“隐藏细节”(给上层应用提供一种假象,降低上层应用使用下层资源的复杂度)。
我们天天在用的操作系统,也是一种虚拟化的“思想”,是对硬件资源的虚拟化。
PC机的虚拟化,把计算的核心“变成”进程。把存储介质“变成”文件系统。
云计算的硝烟战火中,虚拟化这个喷涂了迷彩伪装的弹药库,终于藏不住了。
(八)说它低调,谁料想,DPU直接冲破了次元壁,在弹幕里打出“火钳刘明”。
有人造出来DPU的时候,DPU还没火,它们就是,阿里云的“神龙芯片”,亚马逊云的“NitroSystem”。
两者,都优秀。
不仅造出来了,还规模化用起来了。
不仅规模化了,在云的场景中收益还巨大了。
阿里云在国内云计算厂商技术团队里是最拔尖的。
亚马逊云在技术上从来没让人失望过(公关广告投入就另说了)。
他们造DPU的团队,犹如雄师过江,天翻地覆慨而慷。
自此,云厂商分成两列纵队:有DPU的,没有DPU的。
中国男足,笑而不语,大比分落后,说的就是那些没有DPU的云厂商。
亚马逊云和阿里云都是革命者,且心有灵犀,选了相同的技术方向。
云灿霞铺,同是天涯得意人。
亚马逊云的SA是解决方案架构师(SolutionsArchitect),很能打,一言不合就秀(show)代码,简直人人都匹敌创业公司CTO。
一位SA私下里告诉我:“简单来讲,DPU就相当于是把虚拟化不同的工作负载,下放到不同的卡上。”
留意“下放”这动词,得体会了一阵子,才想通。这个词,用得妙啊,它背后的专业术语是“任务卸载”。
“Nitro是一张卡,把负载(Hypervisor虚拟层,存储,网络)都绑上去。也就是把影响虚拟化安全、性能、稳定性的那些东西都装进板卡里去。”
“它不是一张卡,是一套卡。每张卡片有不同的目标。”
“Nitro System之所以称为是一个系统,它包含三个独立的部分:Nitro 卡、Nitro 安全芯片和Nitro 管理程序。
以前嘴馋,必须自己会烧两个小菜,但是,现成的API准备好了。
不仅会烧菜,还会自创新菜。
学(搞)烧(创)菜(新),没那么难。
因为Nitro系统是一个“基础组件盒子”,有许多不同的组装方式,从而使AWS能够灵活设计和快速交付(EC2实例类型),计算、存储、内存和网络都可以成为组合的选项。
选择困难症患者看到后,赶紧喝了一口咖啡,压压惊。
亚马逊云员工也谈到,这种做法能够将云计算微服务架构扩展到硬件,方便“创新API”。
2017年的时候,爱看热闹的人,围观神龙MOC卡,但,万万没有想到,围观的就是DPU。
一位阿里云异构计算团队的员工私下里告诉我:“MOC可以理解为一台小服务器。物如其名,卡上微系统(Micro-servicer On Chip)。但是,2021年,我们对外口径统一用神龙芯片,不叫MOC卡。”
阿里云员工还说:“对于神龙芯片的细节,公司希望对外少谈。有不少人,在打听。”
2021年10月20日,神龙推出第四代,江湖人称神龙4.0。
比起第三代神龙,关键性能指标提升了多少呢?
说两个关键的,网络关键性能指标提升一倍以上,存储关键性能指标提升两倍。
神龙4.0全球首次搭载大规模弹性RDMA高性能网络,网络延迟整体大幅降低。
RDMA作为网络通信技术,不是一个新技术,但是,阿里云弹性RDMA,让RDMA这项技术,从高性能计算(HPC)这个小众领域,走向公有云。
曾经RDMA大规模组网的能力,是整个业界都解决不了的问题。
弹性RDMA将对云原生微服务、无服务计算应用的性能提升大有帮助,甚至是Java 中用Netty 网络编程框架的应用程序,都会从中受益。
2021年的秋天,张献涛对我说:“神龙芯片是目前业界最出色的DPU,没有之一。”
DPU要才华有才华,要颜值有颜值,但是还有“两大怪”。
一大怪,亚马逊云和阿里云的DPU,不外卖。
DPU作为专用芯片,不要你懂,只要自己懂自己。
另一大怪,不少云计算厂商,一提自研DPU,就说拜拜。
何况青云和UCloud上市了,也都在亏损。
更何况,造DPU,怎么着,得拍出三个亿人民币来。
(九)村口的土墙上,刷上了白底红漆的广告语:
DPU,早拥有,早致富。
DPU,保安全。
DPU,隔离好。
DPU,省大钱。
一定得用,又没钱自研,可以用英伟达的DPU呀。2020年,英伟达69亿美金收购Mellanox,剑指DPU。
可惜不是“量体裁衣”,用起来不称手,很痛苦。有专家毫不留情地批评,对英伟达现有的feature(功能),都不满意。
树上叶子,绿了又黄,云计算厂商给博通公司提交的工单,在排队。
北风吹来,枝头秃秃,工单仍在排队。
阿里云和亚马逊云的DPU都是2017年发布的。
事隔多年,有没有哪家云厂商跟上了?
众人摇头,鸦雀无声。
亚马逊云和阿里云则可能会说:“原谅我,没忍住,笑出了声”。
非公开产品市场,急需“消息灵通人士”。
巧了,有一家著名的国内云厂商,跑到客户那里宣(吹)传(牛),DPU不就是智能网卡嘛,我厂2012年就有了,比神龙和Nitro快多了。
懂行的客户发出灵魂一问,瞬间“社死”现场。
“你家DPU果真如此,那你为什么不用?”
吹牛牛逼症,出现人传人的现象了吗?
又巧了,笑傲江湖的转身,余下的DPU产品,要么停留在“并不怎么好用”的水平上。
要么只摸索着做了个原型出来,停留在验证概念(Proof of concept)的水平上。
中国男足,笑了笑说,抱歉,打不开局面。
球迷火了:“花了这么多钱,你想说重在参与?”
太巧了,有人告诉“亲爱的数据”,多家公司暗地里派出员工,天天找阿里云的人套话,这个为啥这样做,那个接口为什么这么设计。
芯片的水很深,总会从供应链拿到一些“内部消息”,还有一家云厂商抄了好几年,像素级别地抄,也没有抄出个像样的。
更糟糕的是,规模越做越大,快撑不下去了。
那些有DPU的云厂商,热升级,多Happy,迭代速度嗖嗖滴。
那些没有DPU的云厂商,可惨了,听说其中一家,得一个月重启一次服务器。
(曾以为重启仅仅是文科生的常用操作,别问我怎么知道的。)
DPU是朋友圈凡尔赛的神器。
云厂商发朋友圈,祝友商早日建成世界一流DPU。
意识到友商已经建成世界一流DPU,默默删掉上一条朋友圈。
Fungible公司在朋友圈写下,2019年,我们定义了DPU。
楼下评论:“公司挺值钱,软银愿景基金大手笔投了。”
可惜,产品做得一般,对云计算的理解不到位,无法向其评论竖大拇指。
英特尔坐不住了,发布了IPU基础设施处理器,来表达对“DPU”这件事情不同的看法。
希望朋友圈获得高赞。
云厂商楼下依次排队点赞,但内心唏嘘不已,DPU的世界,英特尔也不能一声令下“一统江湖”了。
(十)投资DPU,至少有两个“不投”。
一不投,那些不熟悉云业务的需求的团队。
二不投,那些对软硬件融合部分理解得比较粗浅的团队。
可惜,投资DPU这潭水,没有水最混,只有水更混。
DPU身上有两桩著名的冤案。在没有DPU之前,SmartNIC(一种智能网卡)先一步问世,给网络减负。
第一印象最深刻。所以,有些人至今误认为,DPU就是SmartNIC。
SmartNIC是对网络进行加速,但解决的问题比DPU小多了。
这时候,ETC自动抬杠机(精)上线了:“你就回答我,DPU最基本的功能是不是一张网卡?”
哪怕是人民群众,都对新闻里的“5G”“千兆光纤”耳熟,更别说工业互联网、车联网。
对网络的要求越来越高了,云计算的网络带宽从主流的10Gbps,闭着眼睛,就朝着100 Gbps一路狂奔。
可惜的是,DPU虽然能给网络帮上忙,但不是智能网卡。
当一个产品已有翻天覆地的变化,我们不妨叫它的新名字。
遗憾的是,沿着智能网卡的道路一意孤行,永远也到达不了DPU的绿洲。
不过,在“2021年智能网卡峰会”上大谈特谈DPU,也是特定时期的特色。
所有误解,皆是云烟。
“智能网卡是不是DPU的必经之路?先一步造智能网卡,做扎实了再做DPU这种思路,您怎么样理解?”
电子工业出版社出版的《软硬件融合:超大规模云计算架构创新之路》一书的作者,原UCloud(优刻得)云计算厂商芯片及硬件研发负责人黄朝波这样认为:
“站在功能的层次,肯定是从简入繁的过程,这个说法是对的。”
转折之后,往往是重点。
“站在实现的角度,这个说法,值得商榷。智能网卡的路子,往往跟着英伟达(NVIDIA)的做法,先NIC,再SmartNIC,再SOC。网络功能的实现,是定制ASIC(专用集成芯片)。然而,亚马逊云和阿里云‘没走寻常路’。从一开始,就只有CPU来实现,再逐步加入各种加速。总之,这条DPU的演进之路是,从CPU到DPU。”
正如前文所述,亚马逊云和阿里云是相同的技术方向,走法却不同。
你品,你细品:英伟达的技术路线是从定制加速,到通用。这和亚马逊云和阿里云那种,从通用到加入定制,完全是两个相反的技术演进方向。
另一个冤案,是按字面意思理解DPU。
果然不能仅看表面。
DPU的全名,叫DataProcessing Unit,是数据处理器。自赛博开天辟地,就有数据。
CPU不能处理数据吗?GPU不能吗?既然不是,那凭啥就你叫数据处理。
CPU和GPU攥紧了拳头,强忍着扇耳光子的冲动嚷嚷:“今天,谁来都不好使。”
更别说,《数据安全法》砸得门板咚咚直响:“临时检查,听说,你们这里有数据,还是底层数据?”
这样下去,保安拉起黄色警戒带,场面恐怕要失控。
冤案掩盖了难点。
DPU是软件定义硬件,是用硬件适配软件做加速,想懂DPU,要懂很多东西:芯片,系统软件,计算机体系结构,云计算服务,虚拟化。
两个云厂商的成功故事,也淡化了难点。
投资人常听人说:“阿里云和亚马逊云的DPU都造出来了,留给创(中)业(国)者(队)的时间不多了。”
2021年,一堆国产DPU公司接二连三拿到融资。
双手一伸,数一下,云豹智能、益思芯、合肥边缘智芯、星云智联、青云半导体、大禹智芯、中科驭数、芯启源、深存智能等。
DPU创业企业,存在于北京、上海、珠海等地。
公开工商资料上可查的是,互联网大厂也已刷刷出手:
腾讯投资,云豹智能。
美团投资,星云智联。
字节投资,云脉芯联。
DPU的利好点很多,中国的云计算市场,是一个多云的市场。比如电信云为代表的行业云出现后,金融云、物流云等更多的行业云逐步涌现。
甚至会有“地方云”“某官僚部门云”。
头部的云计算厂商,不是DPU唯一的客户。
再者,中国计算机学会专家曾估计,用于数据中心的DPU的量将达到和数据中心服务器等量的级别,每年以千万级新增,算上存量的替代,5年总体的需求将突破两亿枚。
这一下就超过独立GPU卡的需求量。
甚至可以说,一台服务器可能没有GPU,但不能没有DPU。
好比酒店每个房间都要有WIFI,否则前台客服电话就会被打爆。
目之所及,一片形势大好,欣(浪)欣(费)向(金)荣(钱)。
实际上,小众且专精的关键技术,难以一窥其全貌。
DPU存在的本质,是解决传统虚拟化应用到云计算中的诸多问题的。因为早期的虚拟化技术更多用在桌面系统,把传统的用在桌面上的虚拟化直接搬来用,用起来不顺手。
DPU设计的本质和虚拟化紧密相关,是为了解决虚拟化带来的“糟心事儿”(性能、资源、隔离方面等等)。
简单地说,虚拟化主要分成四种:CPU虚拟化,内存虚拟化,网络虚拟化,存储虚拟化。唯有DPU才是从根本上解决传统虚拟化应用到数据中心里面存在的缺陷的最后一站。
英特尔VT-x,只解决CPU虚拟化和内存的问题。网络虚拟化和存储虚拟化的问题是个历史遗留问题,一直没有得到有效的解决,尤其在云计算场景里。功能上能实现,但是性能、可扩展性、隔离性老是处理不好。
部分问题解决了,其他的怎么办?
DPU来解决“其他的”,也就是说,DPU是解决虚拟化短板的最后一站。
DPU是瞄准了云计算里硬件虚拟化的真实痛点来做的。
这么强,那DPU到底都牵扯哪些技术?
这么说吧,因为涉及的技术领域非常之广,阿里云弹性计算负责人张献涛说:“为了神龙芯片,我几乎动员了阿里云全线的一流专家。”
可能在一些造CPU的人的眼里,造DPU比较简单。我CPU这么复杂都能造,玩转DPU算降维打击。
可是,DPU真的好造吗?
如果不懂虚拟化,不懂系统软件,不懂云计算的场景,光懂芯片就想做DPU,那么可以送出五个黑体大字:无知者,无畏。
DPU是多流派技术的集大成者,有软件,有硬件,有计算,有网络,有存储,有虚拟化,有安全,有加速器,有驱动,有框架,有应用,精粹交织。
也许有一天,DPU会“号令”CPU(不是替代)。
最后,让我们为那些真正的技术革命者,起身致敬,鼓掌欢呼。
毕竟一次局部技术革命,可比一场球赛更带劲儿。
“带球队员距球场小禁区还有几步之遥,队友在不远处大喊,传中!传中!守门员面色一动,似乎在犹豫。抓住机会,小角度大力抽射,破门!”
“还愣着干啥,进球了,鼓掌啊。”
(完)