DPU的风口,还会吹多久?

雷总有两个名言,一个是在B站播放了4000多万次的“Are You OK”,另一个就是:

在风口上,猪也能飞起来。

这句话想要传达的本意,其实是选择的重要性。在很多时候,选择大于努力。我们常说,要做长期而正确的事情,但如何选到正确的事情,是很吃经验和功夫的。

一两年前,芯片领域最大的创业风口,非DPU莫属。但是当二十多家DPU公司扎堆冲进来,人们自然就会问:这股风,还能吹多久?

而我更关心的问题是,这股风,是怎么吹起来的?

 

CPU不够用了

任何产业的发展,其实都遵循两条主线:技术和市场。说白了,产品不仅要好,还要能卖得出去。

如果产品很优秀,但没人愿买,这就像练就一身屠龙绝技,只是缺少一条龙来试试身手,反之亦然。

这个规律在芯片产业同样适用。技术的发展不能闭着眼一路狂飙,而是要把握市场和应用节奏,同步发展。过去几十年,我们经历了互联网产业的三次飞跃:传统互联网、移动互联网,再到今天的万物互联,以及未来若隐若现的元宇宙。驱动这些变迁的根本性力量,就是芯片,特别是通用芯片CPU:中央处理器。

曾几何时,CPU是绝对的王。从传统互联网时代的x86 CPU,到移动互联网时代的ARM CPU,它们几乎靠一己之力支撑起了互联网的技术变革。然而到了万物互联的时代,人们突然发现一个重要的问题:

CPU的性能不够用了。

万物互联只是表象,它背后其实是对超大算力的需求。而提升CPU算力的主要途径,就是堆料,说白了就是不断增加内核的数量。从最初的单核、到双核、四核,再到现在夸张的128核,这种简单粗暴的堆料方法已经走到了尽头。

最主要的原因,就是功耗的限制。之前文章写过一个著名的“暗硅效应”,说的就是芯片上的内核就像大楼的房间,当大楼电力有限的时候,这些房间的灯光不能同时开启。因此即便房间很多,能用起来的并不多。

反映在芯片上,道理几乎完全相同。由于单个芯片的功耗并不能无限制增加,所以即便堆了很多内核,它们也无法同时高效工作,这就造成了CPU的性能瓶颈。

 

半导体产业的摆钟

失之东隅,收之桑榆。20世纪80年代末,日本科学家牧本次夫发现了一个半导体行业的发展规律,也就是通用芯片与专用芯片之间,存在着10年的周期性交替,这就是著名的“牧本周期”,也叫做“半导体产业之摆”。

它就像一个摆钟,通用芯片在左,专用芯片在右,两者以10年为周期,交替主导半导体产业的发展。

没错,现在就是专用芯片主导的时代。

只是这里的专用芯片,和传统意义上的“ASIC”又有那么亿点点不一样。和完全定制化的芯片不同,现在流行的是领域专用架构(Domain Specific Architecture),也称作DSA。包括人工智能芯片、自动驾驶芯片、以及这篇文章的主人公DPU,都属于DSA的范畴。图灵奖得主Hennessy和Patterson也发出了著名的论断,DSA将开启计算机体系结构的黄金十年

DSA的核心思想,是针对特定领域做芯片架构的优化,从而实现性能和功效的双重提升。而DPU的大火,正是因为顺应了这个思想,从而解决了现代数据中心里CPU解决不了的一系列难题。总结起来,DPU做的优化有以下三点:架构优化、场景优化、软件优化。我们以英伟达BlueField系列DPU为例,一个一个来看。

 

DPU架构的蜕变

DPU的架构和CPU、GPU等数据中心常见的芯片有本质区别。DPU的基因里仍然深深刻着通信芯片的烙印,它肩负着海量数据传输的重任。从BlueField-2的200Gbps以太网或InfiniBand、PCIe Gen4x16,到BlueField-3的400Gbps、PCIe Gen5x32,DPU数据传输的吞吐量仍然在线性增长,这在摩尔定律全面放缓甚至停止的大背景下,是难能可贵的。

但是和传统网卡、交换机、路由器里的数据传输不同,DPU还肩负着另外一个重任,那就是对数据的「处理」。之前文章介绍过,DPU有一个数据处理的矩阵,可以从“功能”和”应用“两个维度展开。从功能维度来看,DPU对数据进行卸载、加速、隔离;从应用维度来看,DPU处理的数据来自网络、存储、安全等等领域。

DPU数据处理矩阵

 

为了实现这些功能,DPU必然要在芯片架构上进行领域专用优化,比如BlueField里就集成了很多专用的硬件加速器,比如对Virtio、NVMe、IPSec等等数据中心常见协议的硬件模块。原本这些协议都是使用CPU、靠开发者编写软件来处理的,但现在直接通过DPU就可以用硬件实现了。这就像看高清视频的时候,究竟用的是软件解码还是硬件解码一样。如果是后者,那算力、能效这些指标都会高很多。

DPU架构优化的另外一个特点,就是保留了一定程度的通用性。BlueField-3里有16个Arm A78内核,以及高达8MB的二级缓存、16MB的三级缓存。它还支持可编程的数据通路,包含16个内核、256线程。

一个灵魂拷问是,既然DPU就是用来做硬件加速的专用芯片,为什么还要通用性?

这恰恰是领域专用架构的精髓。它并不是绝对的“专用”,而是要根据具体的应用领域进行优化。DPU出现的最初目的,是为了帮CPU减负,任何不需要在CPU上运行的任务,都放在DPU上执行。除了前面说的各种协议和硬件任务,自然也包含很多软件任务。

不过随着DPU的发展,它已经成为一个可以独立于服务器的系统。在这个系统里,高性能CPU仍然是不可或缺的环节。殊途同归,两者在分道扬镳后不久,又回归在一起。

 

发展DPU的核心竞争力

如果问现在市面上的十来家DPU创业公司,你的核心竞争力是什么?答案会出奇的一致:

”对业务的深刻理解“。

和CPU、GPGPU这些通用芯片不同,DPU的发展与实际业务场景紧密绑定,不同的应用会催生完全不同的DPU架构。

对于中国市场来说,最不缺的就是业务场景。

不管是电商、视频、通信、出行,还是现在飞速发展的云原生、软件定义一切,每个场景和它自己的细分领域,都对DPU有着不同的需求。所以,靠一招鲜吃遍天、毕其功于一役这样的思路去发展DPU,是肯定有问题的。只有根据不同场景进行针对性的优化,才能最大限度的发挥DPU的优势。

这种优化,甚至不能只局限在DPU本身,而是可以放眼更大的系统。比如英伟达的融合加速器,就结合了GPU和DPU的优点,既保证了GPU的充足算力,又能通过DPU实现安全增强和低延迟保障,从而实现一个兼顾性能、效率、安全性的AI系统。

 

DPU与意大利炮

如果你觉得芯片公司只是做硬件的,那就大错特错了。每个芯片公司都有大量的软件工程师,他们只负责解决一个问题:

芯片造出来了,怎么用?

差一点的公司,会提供一些接口、API、最多给一些参考实例。稍微好一点的公司,会提供软件栈、算子库、甚至是编程框架。优秀的公司,不仅会提供编程框架、编译器、编程语言,更重要的是能进行软硬件的协同优化,从而在最大程度上释放领域专用架构的全部性能。

就像手里有一台意大利炮,你是希望自己手动装弹、瞄准、发射,然后凭运气看炮弹落到哪里;还是自动装填、火控瞄准、卫星导航炮弹精确命中?

对于BlueField DPU这个意大利炮,DOCA能帮助它发挥最大的能力。DOCA的全名叫Data Center Infrastructure-on-a-Chip Architecture,它是一个规模宏大的软件SDK,包含了DPU支持的几乎全部软件功能。

DOCA SDK分成三大主要模块,分别是DOCA服务、库、驱动,它还将实例代码、文档、服务和预打包容器结合在了一起。在BlueField内部的硬件加速模块,是可以直接支持DOCA进行编程的。DOCA还提供了基于行业标准的开放API和框架,包括用于网络和安全的DPDK(Data Plane Development Kit)和用于存储应用的SPDK(Storage Performance Development Kit)。DOCA还通过对标准I/O的支持,实现数据中心基础设施的虚拟化和隔离。

在2021年底,英伟达推出了DOCA 1.2版本,特别增加了对零信任安全(Zero Trust Security)的支持,它创建了一个名叫DOCA App Shield的框架,可以识别对物理机或虚拟机的攻击,并且通过隔离受损主机来减轻攻击,防止恶意软件访问机密数据或继续传播。

有了这些框架和方法,软件开发者就不需要自己开发和业务无关的应用,也不需要知道底层硬件到底是什么,更不需要再花时间去学习硬件相关的知识和编程方法。「技术」和「应用」这两个产业发展的主线,通过DOCA联系在了一起。

在AI时代,CUDA帮助GPU实现了起飞;在万物互联的时代,DOCA或许就是帮助DPU起飞的重要推手。


更多芯片技术解读和资料分享,并与老石一对一交流,欢迎加入知识星球:“老石谈芯-进阶版”,一个关乎技术与观点的互动社区

 

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注