DPU究竟是个什么U?DPU和CPU、GPU有什么关系?

EETOP专注芯片、微电子,欢迎关注

来源:老石谈芯

回国之后,有投资人朋友给我说,现在国内有20多家DPU初创公司。DPU可以说是当前芯片行业最火热的方向,可能没有之一,风头和声势甚至超过了AI芯片这个“前浪”。

在这个大背景下,资本和人才都在争相进入这个赛道,很多DPU初创公司的估值也因此水涨船高。只要畅想一下DPU的新应用,甚至不需要做出产品,估值就能多加好几个小目标。

不过,这个赛道究竟有多宽、DPU技术的本质究竟是什么、它未来还有怎样的想象空间、DPU与cpu和GPU是怎样的关系,还有最重要的,DPU究竟是为了解决怎样的问题?只有弄清楚这些,才能真正理解DPU爆红背后的逻辑。

从最早的“智能网卡”,到现在的“数据处理器DPU”,我见证并亲身参与了这个东西的发展。虽然性能指标在不断进步,但驱动它前进的内存逻辑并没有发生本质改变。

在这篇文章中,我将努力拨开各种纷繁复杂的迷雾,穿过这几十家公司眼花缭乱的PPT,跳过各种技术指标,和大家一起解答前面所有的疑问。

DPU究竟是一个什么U

随着芯片越造越多,字母表已经不够用了。从APU到ZPU,好像每个“PU”都有芯片与之对应。对于热门的名字,更是僧多粥少,DPU就是其中之一。

在AI风生水起的时候,DPU代表的是“深度学习处理器”,而我们今天的主角还不配拥有名字,当时叫做“智能网卡SmartNIC”。

这个名字听起来既不智能,也不上口,这也注定了它并不能被大多数人所认知。

工程师通常不屑于营销,但不可否认的是,没有营销,再好的产品也卖不出来。

当一个人既懂技术、又懂人心,创造一个新的概念就是顺理成章的事情。

2020年10月,黄仁勋在英伟达GTC大会上正式官宣了一款新处理器,名叫DPU – Data Processing Unit。

这一年,应该可以算是DPU的元年。在此之后,人们再提到DPU的时候,指的都是数据处理器,而非深度学习处理器了。

和智能网卡相比,DPU的本质并没有根本性的变化。很多人尝试将二者区分开,借此说明DPU是一个全新的跨时代产品,这其实并不真实、也没必要。

老黄总结了3个DPU的特点:卸载、加速、隔离。我很认同这个总结,但这只代表了一个维度。

在另外一个维度上,则是DPU的三个主要应用场景:网络、存储、安全。这两个维度结合在一起,才是DPU的完整矩阵,也能很好的解答很多“为什么”、“是什么”的问题,比如:

DPU卸载了什么:数据中心网络服务,比如虚拟交换、虚拟路由;数据中心存储服务,比如RDMA、NVMe(可以把它们理解成一些远程存储技术);数据中心的安全服务,比如防火墙、加解密等等。

DPU加速了什么:上面说的那些服务和应用通常使用软件实现,并在CPU里运行。而DPU可以使用硬件实现并运行这些应用,这样比软件运行要快好几个数量级,这也就是我们常常会听到的“硬件加速”。DPU隔离了什么:由于上面说的应用在DPU里运行,而用户应用在CPU里运行,这样就把二者隔离开了。这样会带来很多安全和性能上的好处。

举个例子,假设我们要玩一个“云游戏”,游戏本身运行在服务器的CPU上,而账号管理、存档、和队友的交互方式、游戏数据的发送和接收等等,这些不需要玩家参与、但对游戏体验有极大影响的内容,都可以运行在DPU里完成。

DPU和CPU、GPU的关系

摩尔定律的发展和芯片行业的发展,究竟是鸡生蛋、还是蛋生鸡,人们已经乐此不疲地讨论很多年了。不管是谁成就谁,亦或是相互成就,有一件事情是确定的,那就是我们需要新的芯片结构,来延续发展的脚步。

一个很重要的共识就是,CPU已经很难做好所有事情了。

要特别注意的是,这里不是“很难做”,而是“很难做好”。一字之差,意思完全不同。

在今年4月的GTC大会上,老黄又分享了他对于数据中心架构变革的理解,一共分成五个阶段。

最早的数据中心里,CPU是绝对的王。不管是一开始的原始架构,再到之后软件定义、分布式的可扩展结构,都是如此。

唯一有所区别的,是应用的实现方式。算力和应用更是鸡和蛋的关系,CPU计算能力的提升,就能带来应用的爆发,人工智能就是如此。应用的多样化,又会对算力提出更高要求。比如现在同样火热的超大规模神经网络,动辄上千亿甚至上万亿参数,就好像底层算力都是白给的。

英伟达的春天,就这样到来了。

人们发现,单纯使用CPU并不能满足AI工程师和调参者对算力的野心,而GPU特别适合这类计算。GPU上有成千上万个小型计算单元,他们可以同时计算一个难题里的不同部分,然后再把结果结合起来,也就是“并行计算”。在处理很多问题的时候,这种人海战术比CPU的“串行计算”不知道要高到哪里去了。

从此,CPU不再是数据中心里唯一的王。英伟达也成了世界上市值最高的芯片公司。

旧时代落幕,新时代开启。GPU的登场,只是这场大秀的序曲。

把CPU的一大部分算力卸载给GPU之后,人们发现可以把很多其他功能也外包出去,于是又有了智能网卡,或者叫做DPU。

人们又发现,给CPU卸掉这些包袱之后,反而表现的更好,再次焕发了第二春。因为不管是GPU还是DPU,都需要CPU居中调度和管理,这恰恰是CPU最早的设计初衷。

就这样,CPU、GPU、DPU组成了现代数据中心的铁三角。

未来是否就这样?我看未必。未来何时才能到来?或许很快。至少在下周的GTC大会上,应该就有下一代DPU的最新进展。但不管怎样,这种三位一体的架构解决了很多现有的问题,这就足够了。

没有软件,芯片就只是昂贵的沙子

很多年前我做学术的时候,有一类很流行的领域,名曰“算法加速”。去看这个领域的论文,都写的极其振奋人心,甚至有些惊悚。在这个领域里,CPU就是悲催的存在,它为所有工作奠定了一个基准。相比于CPU,每个工作动辄几倍、几十倍、甚至上百倍的性能提升。

这么多年过去了,CPU在数据中心的王座依然挺立,只不过旁边多了GPU,还有一个DPU蠢蠢欲动,仅此而已。

我并不是否定这些工作的学术贡献,只是很自然的会问:既然这些工作这么牛逼,它们都去哪了?

归根到底,没有软件、没有生态、没法落地。

温室里的苗,需要经历风雨的洗礼,才能知道是否能长成大树。

开发者从来都是用脚投票,谁的东西好用,就用谁的。性能固然重要,但如果没法使用、不好用,性能再强的芯片也不过是昂贵的沙子。

多年前,英伟达凭借CUDA,一举帮GPU打开局面,吸引了大批软件开发者。而FPGA的开发者,还在纠结Verilog怎么写、时序怎么调、引脚怎么分配。

现在DPU来了,开发者怎么办?

今年4月的GTC大会上,老黄正式官宣了一个名为DOCA的SDK,这也是英伟达为上面的灵魂拷问给出的答案。

DOCA全名叫Data Center Infrastructure-on-a-Chip Architecture。作为一个SDK,它包含了DPU支持的所有软件功能:各种库、各种服务、各种驱动、各种框架、各种OS……

有了意大利炮,还需要一发炮弹。DOCA并不是炮弹,而是用来造炮弹的工厂。有了软件和生态,DPU就不再是昂贵的沙子,而是数据中心的“大杀器”。

如果要用一个词总结DOCA的特点,就是“兼容”。新生事物大都需要兼容现有体系,然后才能慢慢发展壮大。这片江山,朕不给,你不能抢。

即使大如英伟达,也意识到很难从零开始自建一个数据中心生态。况且,这也根本没有必要。

除了兼容,还有开放、合作。只有把蛋糕做大,每个人分到的那部分才会更多。大家好,才是真的好。当一个人既懂技术、又懂人心,做出这样的决策也是顺理成章的事情。

在DOCA里,你可以看到几乎所有常见的数据中心基础设施技术、厂商,英伟达也在打造开发者社区,积极建设生态。在11月马上要举行的GTC上,预计会发布DOCA的最新进展。DOCA和CUDA,总有一个会是英伟达未来发展的支柱。

结语

DPU的出现,是时代的必然。但它未来的发展,还有无限种可能。DPU里集成的技术,肯定会有更多的变化。我们需要做的,除了跟随这些变化,更应该透过现象看到本质。只要底层逻辑不变,发展的趋势就不会变

未经允许不得转载:我爱VPS » DPU究竟是个什么U?DPU和CPU、GPU有什么关系?

相关文章