不管你是否身处 ICT 行业,这两年有一个词你肯定听说过,那就是 DPU 。作为一个全新兴起的科技概念,DPU 正在以惊人的速度崛起,成为整个行业甚至整个社会的关注重点。尤其是投资领域,对 DPU 简直是趋之如骛,将其视为未来颠覆行业的潜力技术。究竟什么是 DPU ?它和我们熟悉的 CPU 、 GPU 有什么区别?今天,小枣君就带大家彻底搞明白 DPU 的来龙去脉。█ 什么是 DPU DPU 的英文全称叫做 Data Processing Unit ,也就是数据处理器。
英伟达首席执行官黄仁勋曾在演讲中表示:“ DPU 将成为未来计算的三大支柱之一,未来的数据中心标配是‘ CPU + DPU + GPU ’。CPU 用于通用计算, GPU 用于加速计算, DPU 则进行数据处理。”听着有点晕, DPU 到底进行什么样的数据处理?有了 CPU 和 GPU ,为啥还要 DPU ?众所周知,自从计算机诞生以来,就是采用的著名的冯诺依曼架构。 冯诺依曼架构 这是一个以计算和存储为核心的架构, CPU 作为处理器单元,负责完成各种算术和逻辑计算。而内存(运存)和硬盘(外部存储),负责存储数据,与 CPU 交互。除了 CPU 、内存和硬盘之外,就是键盘、显示器这样的输入和输出设备。随着时间的推移,后来,我们有了鼠标,又有了显卡、网卡。最终,形成了现在大家看到的电脑的基本构造。有了显卡,就有了 GPU(Graphics Processing Unit),图形处理器。大家都玩过游戏,很明白,正是游戏、 3D 设计等多媒体图形软件的高速发展,要处理的工作量越来越大,也越来越复杂, CPU 实在忙不过来,所以就有了专门进行图像和图形相关运算工作的 GPU ,分担 CPU 的压力。DPU 的出现,道理也是一样的。同样是因为 CPU 难以负担一些复杂的计算,所以需要进行任务分工。
█ DPU 到底算些什么
好了,终于到了关键点了。说了半天, DPU 到底分担了 CPU 的哪些工作呢?说实话,想要从技术上解释 DPU 分担的工作内容,稍微有点困难,不容易看懂。但是,我们可以从工作场景上进行解释。大致来看, DPU 分担的工作可以归纳为四个关键词,分别是虚拟化、网络、存储以及安全。特别需要提醒大家, DPU 是一个紧密围绕数据中心的概念。也就是说,它主要用于数据中心这种大规模算力场景,而非我们每个人的台式机、笔记本电脑或手机(至少目前不是)。DPU 服务于云计算,主要作用是提升数据中心等算力基础设施的效率,减少能耗浪费,进而降低成本。前面提到的虚拟化、网络、存储以及安全,是数据中心非常重要的工作,也是大量消耗算力资源的工作。以网络为例。在数据中心里,时时刻刻都有大量的数据在进行传输。主机在收发数据时,需要进行海量的?络协议处理。根据传统的计算架构,这些协议处理都是由 CPU 完成的。有人统计过,想要线速处理 10G 的?络,需要的?约4个 Xeon CPU 的核。也就是说,仅仅是进行?络数据包的处理,就要占用?个8核?端CPU?半的算?。现在数据中心网络不断升级,从 10G 到 40G 、 100G ,甚至 400G ?速?络,这些性能开销如何承受?这些开销如此之大,以至于被称为“ Datacenter Tax(数据中心税)”。业务程序尚未运行,仅是接入网络数据,就消耗了这么多算力资源,这是无法忍受的。所以,就有公司提出了 SmartNIC (智能网卡)的概念,将网络协议处理的工作从 CPU “卸载”到网卡上,以此分担 CPU 的负载。2015年,云计算厂商 AWS 率先开始探索这种 SmartNIC 模式。他们收购了芯片厂商 Annapurna Labs ,并于2017年正式推出 Nitro 系统。同年,阿里云也官宣了有类似功能的神龙( X-Dragon )架构。2019年3月,英伟达花费69亿美元收购了以色列芯片公司 Mellanox 。英伟达将 Mellanox 的 ConnectX 系列高速网卡技术与自己的已有技术相结合,于2020年正式推出了两款 DPU 产品:BlueField-2 DPU 和 BlueField-2X DPU 。 从此, DPU 这个概念正式进入了公众视野。2020年,也被称为 DPU 元年。正因为 DPU 和 SmartNIC 有这样的渊源,所以,人们普遍将 DPU 视为 SmartNIC 的扩展升级版。DPU 在 SmartNIC 的基础上,将存储、安全和虚拟化等工作负载也从 CPU 卸载到自己身上。上世纪90年代末,以 VMWare 为代表的虚拟化技术刚刚出现的时候,完全是由软件进行模拟线的,缺乏硬件的支持,所以,性能很差,几乎难以使用。后来,2005年,随着技术的演进, CPU 和内存的硬件虚拟化问题逐渐解决,才让虚拟化系统的性能有了大幅的提升,也激活了这项技术的发展前景和价值。众所周知,我们现在的整个云计算架构,都是基于虚拟化技术发展起来的。虚拟化技术发展的过程,是硬件能力不断取代软件能力的过程。前面我们提到 AWS 发布 Nitro 系统。这个系统除了 SmartNIC 之外,也完成了 I/O 的硬件虚拟化。它还将虚拟化管理程序 Hypervisior 从 CPU 卸载到专用硬件上。这样做带来的结果就是,虚拟化技术的性能损耗趋近于零, CPU 的负担进一步下降。存储也是如此。现在数据中心对存储读取和写入的速率要求很高。SSD 价格逐渐下降后,将 SSD 通过本地 PCIe 或高速网络与系统相连接,成为了一种主流的技术路线。针对分布式系统,在以往 InfiniBand 、 FC(Fiber Channel,光纤通道)、 Ethernet 的基础上, RDMA(Remote Direct Memory Access,远程直接数据存取)技术开始流行。在 RDMA 模式中,应用程序的数据,不再经过 CPU 和复杂的操作系统,直接和网卡通信。这就意味着, DPU 可以承担存储相关的高速接口标准协议处理,进一步为 CPU 分担压力。最后再看看安全。在目前越来越严峻的安全形势下,为了确保网络和系统的安全可靠,引入了大量的加密算法。以往,这些算法都是由 CPU 负责完成加密和解密的。但事实上,网络接口才是最理想的隐私边界。在网络接口上进行加密和解密,才是最合理的。所以,像国密标准的非对称加密算法 SM2 、哈希算法 SM3 和对称分组密码算法 SM4 等,其实都可以交给 DPU 进行计算。未来,区块链技术成熟应用后,相关算法也是可以从 CPU 卸载到 DPU 进行的。综上所述,大家应该也看明白了, DPU 的作用本质,就是卸载、加速和隔离——把 CPU 的部分工作卸载到自己身上;利用自己的算力特长,对这些工作进行加速运算;整个过程,实现了计算的隔离。 █ DPU 的未来前景 DPU 是一个新型可编程多核处理器,是一块 SoC(System On Chip)芯片。它符合行业标准,具有很高的算力,还具备高性能的网络接口,能高速解析、处理数据,并高效地将数据传输到 CPU 和 GPU 。DPU 和 CPU 的最大不同,是 CPU 擅长通用性计算任务(什么任务都能接,比较“杂”),而 DPU 更擅长基础层应用任务(做特定的任务,比较“专注”),例如网络协议处理,交换路由计算,加密解密,数据压缩等“脏活累活”。所以说, DPU 是 CPU 的一个好帮手,将与 CPU 、 GPU 形成“铁三角”,彻底颠覆数据中心的运算模式。