《考察报告》连载九|从SmartNIC到DPU、IPU
云计算的技术内核是分布式计算,而分布的算力,需要高速的网络连为一体。随着数据量越来越大、网络接口速度越来越高,把所有的数据都送到 CPU 去处理,网卡(Network Interface Card,NIC)只充当流量中转站,就不太符合分布式计算的理念。
在网卡上增加算力资源(如处理器) ,执行底层的数据处理任务,就得到了智能网卡(SmartNIC)。显然,智能网卡可以卸载(Offload)原本也要交给 CPU 处理的任务,而不是一切以 CPU 为中心(Onload),用 Mellanox(迈络丝)的话说,这种架构是“以数据为中心”(Data-centric)。
△ NVIDIA BlueField-3 DPU:配套存储和带外管理,就像一台小服务器
GPU 巨头 NVIDIA(英伟达)通过收购 Mellanox 进入网络市场后,将其 BlueField 系列产品放到 DPU(Data Processing Unit,数据处理器)的高度大力宣传。一时间 DPU 成为新的流行,譬如 Marvell 在 2021 年 6 月推出其 OCTEON 10 DPU 家族时,把上溯到 2005 年的前代产品都算作了 DPU。也是在这个时段,CPU 大厂英特尔发布了 IPU(Infrastructure Processing Unit,基础设施处理器)。
DPU / IPU 与智能网卡有什么区别?英特尔认为,智能网卡主要是卸载(数据处理),仍由 CPU 控制;而 IPU 有控制平面,可以由自己控制。相对于在数据层面上实现加速的智能网卡来说,DPU 更进一步实现了控制层面的加速,通过可编程的多核处理器和加速引擎、高性能网络接口以及软件栈的支持,实现了传统计算与数据交互的分离,也更符合未来安全、高效、云原生的大规模计算应用时代。
不过从宣传的角度来说,上述定义并没有得到严格遵守。以 BlueField 为例, 随着其归属的变化,在产品描述中也先后经历了 SmartNIC、SmartNIC 与 DPU 共存、DPU 的“演进”。
智能网卡也好,DPU 或 IPU 也罢,起码都有两个不可或缺的核心部件:一个当然是网络接口部分,通常是高速网卡;另一个就是计算单元,可以是 FPGA(FPGA 也可以提供网络功能,这个不讨论),也可以是 CPU。总体趋势是网卡速度越来越高,计算能力越来越强,可以承担的处理任务也越来越多——除了网络, 还有存储等功能的卸载,所以再叫“智能网卡”确实有些局限。
△ 英特尔代号 Mount Evans 的 200G IPU 结构图,左边为网络子系统,右边为计算复合体
以 IPU 为例,它承担基础设施(Infrastructure)的处理工作,作用可以体现在三个方面:
- 把基础设施与租户的功能隔离开,IPU 运行存储、网络、管理等通常由云服务提供商(CSP)开发的代码和功能,CPU 运行客户的软件(上层应用);
- 基础设施功能的卸载,让 CPU 更好的服务于应用。Facebook 有一篇报告指出,在微服务的场景中,CPU 有高达 31 ~ 83% 的时钟周期花费在微服务功能上,而 IPU 可以接管这些烦琐的“底层” 工作,把 CPU 解放出来;
- 无盘服务器架构,可以通过网络使用(便于共享的)虚拟存储,给计算端提供足够的灵活性。
2017 年第四季度,阿里云发布神龙架构,AWS 发布 Nitro 系统,两者具体实现不同,但都能卸载网络、存储的流量,让 CPU 资源可以专心服务客户,也符合现在 DPU 或 IPU 的定义。
算力演进
在计算单元的选择上,通用处理器,也就是 CPU,是目前市面上 DPU 的主流。其中,固然有英特尔 Oak Springs Canyon 这样使用自家 x86 处理器(Xeon-D,至强 D)的例子,但在这个市场上,还是 Arm 的生态更具优势。
以英伟达的 BlueField 为例:
- 最初采用 8 或 16 个 Arm Cortex-A72 核心,每 2 个核心共享 1MiB L2 Cache,运行频率不超过 1.3GHz;
- BlueField-2 采用 8 个 Arm Cortex-A72 核 心,运行频率提高到 2.0 ~ 2.5GHz;
- BlueField-3 的指标全面升级,包括 16 个 Arm Cortex-A78 核心,8MiB L2 Cache 和 16MiB L3 Cache,板载 16GB DDR5 内存,网口速率从 100Gb/s 提高到 400Gb/s,PCIe 接口从 16 通道 PCIe 4.0 换代为 32 通道 PCIe 5.0,基本都是两倍乃至四倍的提升。
BlueField-3 具有多达 220 亿个晶体管,单论数量,快赶上早一些的服务器 CPU 了——譬如 AWS Graviton2。
英特尔代号 Mount Evans 的 200G IPU SoC,集成多达 16 个 Arm Neoverse N1 核心,3 个 LP DDR4 内存通道(见上面图)。
Marvell 的 OCTEON 10 则成为业界首个基于 Arm Neoverse N2 平台的处理器系列,采用台积电 5nm 制程,具有多达 36 个 N2 核心,36MiB L2 Cache 和 72MiB L3 Cache,12 个 DDR5-5200 内存控制器。其他如 400G 以太网(400GbE)、PCIe 5.0,都足以与 BlueField-3 对标。
不太准确的说,可以把 Neoverse N2 视为 Cortex-A78 的“Armv9 @ 数据中心”版,加上明显的数量优势,所以单从纸面来看,OCTEON 10 的 CPU 算力要超过 BlueField-3。总之,无论是 A72 → A78、Neoverse N1 → N2 的架构迭代,还是核数与频率的提升,“更高、 更快、更强”的趋势,与服务器 CPU 是一致的。
以上几款 DPU / IPU 还有一个共性,就是选择 Neoverse N 系列这样追求性能、功率、面积(PPA)平衡的 Arm 平台。一方面,网卡这个载体空间相对有限,对芯片面积和功率限制比较多;另一方面, 随着 Arm 架构与配套制程的提升,可以享受到性能的持续增长。
以 OCTEON 10 系列中规格最高的 DPU400 为例,虽然运行频率可达 2.5GHz,典型功率也就 60 瓦(W)的水平。
其他功能模块,如包处理、Inline 加密,RDMA、NVMe,也可以在不同的 DPU 或 IPU 里看到。
BlueField
从智能网卡到 DPU,“卸载”都是核心能力。通过将网络、存储、 管理等基础设施任务从 CPU 转移至 DPU,释放 CPU 的资源,使更多的服务器 CPU 核可用于运行应用程序,完成业务计算,从而提高服务器和数据中心的效率。传统业务模型中,CPU 在计算之余还要兼顾数据互联,势必造成性能分散和效率的降低;而在将这些任务“卸载”到 DPU 之后,则可以从软硬件层面加速业务运行,甚至获得超越 CPU 的处理效率,从而大幅减少长尾延时,提升应用性能。
英伟达曾在红帽容器化平台中进行过相关测试,结果显示,通过将网络相关的数据处理(如 VxLan 和 IPSec 等)卸载到 DPU 加速执行,在 25Gb/s 网络条件下,OpenShift 部署 DPU 用来加速,达到 25Gb/s 性能,对 CPU 的占用只有无 DPU 方 案的三分之一;而在 100Gb/s 网络条件下,无 DPU 的方案将达不到 100Gb/s 网络线速,DPU 可以带来 10 倍的性能优势。
如果说“卸载”提供了效率提升的话,那么零信任则保障了 DPU 的安全稳定运行。零信任(Zero Trust)是一种以安全性为中心的模型,基于以下思想:企业不应对其内外的任何事物授予默认信任选项,任何时候都需要不断的校验。从实际效果来看,零信任可以减少数据泄露、拒绝未授权的访问,因此在数据安全方面价值巨大。面对当下日益严重的病毒勒索与攻击,英伟达也从 BlueField DPU、DOCA 软件栈和 Morpheus 网络安全人工智能框架等三个层面为企业提供了零信任的保护。
通过将控制平面由主机下放到 DPU,系统能够实现主机业务和控制平面的完全隔离,数据将无法进行穿透,保证安全性。如果主机遭 受入侵,安全控制代理与被入侵主机之间的 DPU 隔离层可防止攻击 扩散至整个数据中心。这样 DPU 就解决了企业不愿直接在计算平台上部署安全代理的情况。通过在完全隔离于应用程序域的 DPU 上部署安全代理,企业不仅能获得对应用程序工作负载的可见性,还能在其基础设施中执行一致的安全策略。
BlueField DPU 在国内已经有了不少用户,譬如 UCloud 的裸金属服务器(Bare Metal Server)就采用英伟达 BlueField DPU“满足客户高带宽、低时延的网络需求,并使用 NVIDIA ASAP² 技术实现了客户无缝接入 NVGRE Overlay 虚拟网络,为客户提供更灵活优质的服务。”
第三代 BlueField DPU 于 2021 年 4 月发布,2022 年正式供货。按照英伟达的规划,未来还将有第四代 BlueField DPU 的出现,预计要等到 2023 ~ 2024 年。
正如英伟达在人工智能领域的成功离不开 CUDA,BlueField 系列 DPU 也有名为 DOCA 的软件开发包保驾护航。DOCA(Data Center On A Chip Architecture,片上数据中心基础设施架构)包含利用 BlueField DPU 来创建、编译和优化应用的运行时环境,用于配置、升级和监控整个数据中心数千个 DPU 的编排工具,以及各种库、API 和日益增加的各种应用,如深度数据包检测和负载均衡等。随着每代 DPU 的演进,原先使用 DOCA 开发的应用程序都可以完全向后兼容,且 DPU 路线图上的后续产品依然保证完全向前兼容。这意味着在目前 BlueField DPU 上运行的应用程序和数据中心基础设施,在不久的未来能不加修改地加速运行在 BlueField-4 DPU 等后续产品上,这也从根本上保障了 BlueField 系列 DPU 强大的生命力和生态系统。
上图所示的是 DOCA 1.1 软件栈,其中包括驱动程序、库、服务代理和参考应用。这个软件栈一方面包括了 DOCA SDK,另一部分是用于实现开箱即用部署的 DOCA 运行时(Runtime)软件。DOCA 在底层硬件 API 上提供一个抽象层给上层的业务,开发者可以使用标准的 API 更快速、更轻松地进行开发,实现和上层业务的集成,并经优化后提供出色的性能,或者与底层接口合作达到更精细的控制。DOCA 还具备基于容器化服务的 DPU 调配和部署, 包含用于简化 DPU 设置、配置和服务编排的工具。目前,英伟达提供的 DOCA 软件栈已经达到了 1.2 版本,并在不断地扩展和完善。
小结
与 x86 的两强并立不同,更为开放的 Arm 架构目前已经呈现出百花齐放的局面,无论是在美国还是在中国,亦或是其他国家都有出色的芯片产品(比如日本排名第一的超级计算机富岳同样使用了 Arm 架构)。尤其 是在当下强调多元算力的时代,Arm 一方面可以帮助我们打造更多的应用场景,特别是云边协同的互动模式;另一方面对自研芯片来说,Arm 也提供了一个很好的基础,允许用户进行创新和发挥。这就好比你买了许多乐高积木的零件重新组装一样,可以按照自己的想法搭建高楼、桥梁、汽车等等,提供了极大的自主性和创造空间。
就本次数字中国万里行的考察来看,不少数据中心都已经尝试使用 Arm 架构的平台。在我们调研的北京顺义、天津西青、云南大理等多个地区的数字城市建设中,Arm 平台同样发挥着不可估量的巨大作用,在推动数字城市发展、加速地方数字化转型、提升数字竞争力方面也作出了突出的贡献。伴随着应用的不断深化和生态的日益完善,我们相信在今后的活动中,将会看到更多 Arm 平台的身影,也将为读者们呈现出更多的应用场景和优质案例。