【AI篇】什么是DPU?
什么是DPU?
相信很多人对于CPU(中央处理器)已经非常熟悉了。灵活、响应迅速的CPU多年来一直是大多数计算机中唯一的可编程元件。
近年来,GPU(图形处理单元)逐渐成为了计算的中心。最初GPU是用来做功能强大的实时图形处理,现在凭借其优秀的并行处理能力,已经成为各种加速计算任务的理想选择。
这使GPU成为了人工智能、深度学习和大数据分析应用的关键。
过去十年中,计算已经不仅仅局限在个人电脑和服务器内,CPU和GPU已经被广泛地用于各个新型超大规模数据中心。
这些数据中心通过功能强大的新型处理器连接在一起,DPU( Data Processing Unit ,数据处理器)已经成为了以数据为中心的加速计算模型的第三个计算单元。NVIDIA首席执行官黄仁勋在本月早些时候的一次演讲中表示:“它将成为未来计算的三大支柱之一。”
“CPU用于通用计算,GPU用于加速计算,而数据中心中传输数据的DPU则进行数据处理。”
什么是DPU?
数据处理器
基于行业标准,高性能及软件可编程的多核CPU
高性能网络接口
灵活、可编程的加速引擎
DPU有什么与众不同之处?
DPU是一种新型可编程处理器,集三个关键要素于一身。DPU是一种SOC(System On Chip),它结合了:
行业标准的、高性能及软件可编程的多核CPU,通常基于已应用广泛的Arm架构,与其的SOC组件密切配合。
高性能网络接口,能以线速或网络中的可用速度解析、处理数据,并高效地将数据传输到GPU和CPU。
各种灵活和可编程的加速引擎,可以卸载AI、机器学习、安全、电信和存储等应用,并提升性能。
所有这些DPU功能对于实现安全的、裸性能的、原生云计算的下一代云上大规模计算至关重要。
DPU:集成到SmartNIC
DPU可以用作独立的嵌入式处理器,但通常是被集成到SmartNIC(一种作为下一代服务器中关键组件的网卡)中。
其他号称DPU但却无法完全支持这三项必备的关键功能的设备,也在试图诠释这个问题:什么是DPU?
DPU可以用作独立的嵌入式处理器,但通常被集成到SmartNIC(一种作为下一代服务器中关键组件的网卡)中。
例如某些供应商所使用的专用处理器无法用到广泛的Arm CPU生态系统所提供的丰富的开发和应用环境。
还有些其他声称拥有DPU的厂商错误地将注意力只集中在使用嵌入式CPU来执行数据路径处理。
DPU:专注于数据处理
如果想通过蛮力在性能上击败传统的x86 CPU,结果注定会失败,这样做既没有竞争力,也无法扩展。如果说一个x86 CPU尚且无法以每秒100 Gbit的速度处理数据包,如何能期望一个嵌入式CPU做到?
换个思路,如果网卡足够强大和灵活,可以处理所有网络中的数据,而嵌入式CPU则被用来做控制路径的初始化和异常情况处理,一切就都解决了。
网络数据路径加速引擎至少需要具备下述10项功能:
像OVS(开放式虚拟交换机)一样对数据包进行解析、匹配和处理
基于Zero Touch RoCE的RDMA数据传输加速
通过GPU-Direct加速器绕过CPU,将来自存储和其他GPU的数据通过网络直接传给GPU
TCP通信加速,包括RSS、LRO、checksum等操作
网络虚拟化的VXLAN和Geneve Overlay卸载和VTEP卸载
面向多媒体流、CDN(内容分发网络)和新的4K / 8K IP视频(如基于ST 2110规范的RiverMax)的 “Packet Pacing” 流量整形加速
电信Cloud RAN的精准时钟加速器,例如5T for 5G (精准时钟调度5G无线报文传输技术)功能
在线IPSEC和TLS加密加速,但不影响其它正在运行的加速操作
支持SR-IOV、VirtIO 和PV(Para-Virtualization)等虚拟化
安全隔离:如信任根、安全启动、安全固件升级以及基于身份验证的容器和应用的生命周期管理等
以上就是能对“什么是DPU”这个问题回答Yes的至关重要的10个加速和硬件功能。
那么究竟什么是DPU?这就是一个DPU:
许多所谓的DPU仅专注于提供上述功能中的一项或两项。
最糟糕的尝试是卸载数据路径到专有处理器。
虽然能做出原型,但是从数据中心的扩展行、可用性和适用行上来言,这一做法并不不明智。