随着计算领域的不断发展,数据处理单元(DPU)的出现正在重塑数据中心和计算架构的未来。
什么是DPU?
数据处理单元(DPU)是一种专门设计用于处理数据中心中的网络、存储和计算任务的硬件加速器,它与CPU和GPU一起组成计算的三大支柱之一。作为一种新型可编程处理器,DPU结合了三个关键元素,是一个片上系统(SoC),它结合了:
- 强大的处理能力:DPU利用广泛应用的Arm架构,包含了行业标准、高性能、软件可编程的多核CPU,并与其他SoC组件紧密集成。
- 高速数据传输:凭借其高性能网络接口,DPU能够在网络的线速率或其他网络速度下,对数据进行解析、处理和传输至GPU和CPU。
- 多功能加速:配备了丰富灵活、可编程的加速引擎,这些引擎能够卸载和增强高性能计算、机器学习、零信任安全、电信、存储等领域的应用性能。
CPU vs GPU vs DPU:它们之间有什么区别?
CPU灵活且反应灵敏,多年来一直是大多数计算机中唯一的可编程元件。但最近,GPU变得更为重要,它们最初用于实时图形处理,现在已成为高性能计算、深度学习和大数据分析的必不可少的组成部分。在过去的十年中,计算已经扩展到PC和服务器之外,DPU逐渐成为以数据为中心的加速计算模型的第三个成员。相较之下,CPU、GPU和DPU在功能、设计和应用方面存在一些差异。
1. 功能和用途:CPU适用于各种通用计算任务;GPU用于加速计算;DPU在数据中心周围移动数据,进行数据处理。
2. 设计和架构:CPU采用复杂的通用处理器架构,提供更高的灵活性和可编程性。 GPU采用高度并行的架构,用于加速图形处理和计算密集型任务,但其在一般计算中的灵活性相对较低。 DPU的设计主要集中在数据处理和网络功能加速上,集成了各种硬件加速器和优化功能,提供高性能、低时延的数据处理解决方案。
3. 应用领域:CPU广泛应用于台式电脑、服务器、移动设备等领域。 GPU主要应用于图形渲染、游戏、科学计算、机器学习等领域,适用于需要大规模并行计算的任务。 DPU主要用于数据中心和网络设备,以加速数据包处理、流量管理、以及安全加密,提供高性能的数据处理和网络功能加速。
| CPU | GPU | DPU |
功能和用法 | 各种通用计算任务 | 加速计算 | 在数据中心内移动数据 |
设计与架构 | 复杂的处理器架构 | 高度并行架构 | 集成硬件加速器 |
应用领域 | 台式电脑、服务器、移动设备 | 大规模并行计算 | 数据中心和网络设备 |
集成到SmartNIC中的DPU
DPU可以作为独立的嵌入式处理器运行。然而,它的常见应用是集成到SmartNIC中。 SmartNIC是下一代服务器中不可或缺的网络接口控制器。
部分其他声称是DPU的设备缺乏对应上述三个关键要素的关键组件,包括强大的处理能力、高速数据传输和多功能加速。
例如,一些供应商应用专有CPU,但这些CPU没有采用ArmCPU生态系统的广泛开发和应用基础设施。其他人声称拥有DPU,但犯了仅依赖嵌入式CPU进行数据路由处理的错误。
DPU的十大加速和硬件能力
那么什么是真正的DPU?一般来说,网络数据路径加速引擎需要能够提供十种功能:
1. 通过数据包解析、匹配和操作实现OVS。
2. 用于零接触RoCE的RDMA数据传输加速。
3. GPU直连加速器允许绕过CPU将网络数据直接传输到GPU。
4. 具有RSS、LRO和校验和等功能的TCP加速。
5. 用于VXLAN、Geneve叠加和VTEP卸载的网络虚拟化。
6. 多媒体流媒体和内容分发网络的流量整形加速器。
7. 用于电信云、RAN和5G功能的精密定时加速器。
8. 内联IPSEC和TLS的加密加速。
9. 对SR-IOV、VirtIO和半虚拟化的虚拟化支持。
10. 通过信任根、安全启动、固件升级、认证容器和应用程序生命周期管理的安全隔离。
一些所谓的DPU只专注于少数功能,而另一些则尝试使用专有处理器卸载数据路径。然而,事实证明这种方法不足以应对数据中心的庞大规模和复杂性。
尤其应该避免使用专有处理器来卸载数据路径。虽然这种方法可能适用于原型设计,但考虑到数据中心的规模、范围和广度,这种做法是徒劳无益的。
结论
简而言之,数据处理单元(DPU)已成为计算领域中与CPU和GPU并列的三大支柱之一。 DPU能够高效处理数据中心内的数据移动和处理,在实现云规模计算和满足现代应用程序的需求方面发挥着至关重要的作用。