到底什么是DPU

写在最前:我学习东西的逻辑大抵遵循以下的流程,即WHAT-WHY-How

先了解应用场景/前世今生

再理解优势与特点

最后再理解实现的底层逻辑与应用方法

俺觉得软件工程的很多逻辑非常适合用于学习知识,新兴的技术被创造出来肯定有其目的以及面向的应用,若不了解这些而只是一股脑的使用新兴技术,虽然可能实践经验增加的,但始终会缺失一些技术视野(面试时候也不好和别人讲)

我司主营的产品是DPU,那我们就来聊聊DPU是什么吧

DPU是什么(WHAT)

DPU 的英文全称叫做 Data Processing Unit ,也就是数据处理器。

英伟达首席执行官黄仁勋曾在演讲中表示:“ DPU 将成为未来计算的三大支柱之一,未来的数据中心标配是‘ CPU + DPU + GPU ’。CPU 用于通用计算,GPU 用于加速计算,DPU 则进行数据处理。”

我们都知道,CPU负责计算机中的运算,是最最核心的部件,那为啥不只要一个CPU就行了,为什么要有DPU呢?

为什么要有DPU(WHY)

众所周知,后来的计算机普遍采用著名的冯诺依曼架构。

图1 冯诺依曼架构

这是一个以计算和存储为核心的架构,CPU 作为处理器单元,负责完成各种算术和逻辑计算。而内存(运存)和硬盘(外部存储),负责存储数据,与 CPU 交互。

除了 CPU 、内存和硬盘之外,就是键盘、显示器这样的输入和输出设备。随着时间的推移,后来,我们有了鼠标,又有了显卡、网卡。最终,形成了现在大家看到的电脑的基本构造。

有了显卡,就有了 GPU(Graphics Processing Unit),图形处理器。大家都玩过游戏,很明白,正是游戏、 3D 设计等多媒体图形软件的高速发展,要处理的工作量越来越大,也越来越复杂,CPU 实在忙不过来,所以就有了专门进行图像和图形相关运算工作的 GPU ,分担 CPU 的压力。

DPU 的出现,道理也是一样的。同样是因为 CPU 难以负担一些复杂的计算,所以需要进行任务分工

 DPU 到底算些什么(HOW)

上文中可以看出,GPU分担了CPU图像和图形相关运算工作,那DPU分走了那一部分工作呢。

说实话,想要从技术上解释 DPU 分担的工作内容,稍微有点困难,不容易看懂。但是,我们可以从工作场景上进行解释。

大致来看,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 卸载到自己身上

存储也是如此。

现在数据中心对存储读取和写入的速率要求很高。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 是一个新型可编程多核处理器,是一块 SoC(System On Chip)芯片。它符合行业标准,具有很高的算力,还具备高性能的网络接口,能高速解析、处理数据,并高效地将数据传输到 CPU 和 GPU 。

DPU 和 CPU 的最大不同,是 CPU 擅长通用性计算任务(什么任务都能接,比较“杂”),而 DPU 更擅长基础层应用任务(做特定的任务,比较“专注”),例如网络协议处理,交换路由计算,加密解密,数据压缩等“脏活累活”。

ps:简要说明一下SoC是什么:
SoC(System on Chip,整体的一个电路系统,完成一个具体功能的东西):指的是片上系统,SoC是系统级的芯片,它有内置RAM、ROM且处理功能强大,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(以Linux OS为主)

                        

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值