这么多家DPU产品,该如何对他们进行性能评测呢?霞姐近几天进行了一些调研,将结果分享给大家。
1.性能测试标准
2024年初,中国电子工业标准化技术委员会曾经发布了一则公告(见:https://img60.gkzhan.com/4/20240227/638446377314609996376.pdf),
批准了DPU相关的三项标准:《数据处理器(DPU)第1部分:参考框架》、《数据处理器(DPU)性能测试 方法 第1部分:测试框架》、《数据处理器(DPU)性能测试 方法 第2部分:虚拟交换机 加速性能 》。
但实际上,这些标准并不在中国电子工业标准化技术委员会公布的标准列表中。
(见https://www.ttbz.org.cn/OrganManage/StandardList/2848?page=1)
可能是DPU之间功能差异较大,众口难调,还得让子弹飞一会?
2.中科驭数等发布的DPU性能基准评测白皮书
上述标准虽然没有正式发布,但是从它的征求意见稿可以看出,性能测试部分和2022年中科院计算所、中科驭数联合其它三家单位编写的《专用数据处理器(DPU)性能基准评测方法与实现》技术白皮书(白皮书可从中科驭数官网下载)的内容是相通的。
该白皮书将DPU系统评测归因到网络、存储、计算、安全 4个维度:
(1)网络:DPU发挥的主战场。评测维度包括:表项(会话)规模、吞吐能力、建表性能、时延性能、网络可观测能力、确定性网络能力。
(2)存储:主要场景是NVMe-oF。评测维度包括:IO读写能力、吞吐能力、时延性能、QoS。
(3)计算:主要场景有大数据计算加速、ML/AI算法加速、视频编解码等。评测维度包括:吞吐能力、时延性能、并行处理能力、能效比。
(4)安全:应用场景涉及证书密钥交换、传输中数据加解密、静态数据加解密以及基于三元匹配和正则匹配的安全应用加速卸载等。评测维度包括:安全策略规模、吞吐能力、时延性能、并发会话规模。
白皮书还定义了单端型、端到端型、多端型三种测试系统(SUT)模型,并从网络、存储、计算、安全四个维度进行了基准测评的进一步阐述。
所谓单端型、端到端型、多端型是通过不同的组网方式模拟不同的业务场景。
(1)单端型:主要模拟无网络连接的情况下,DPU作为专用加速器执行主机端特定业务的过程。主要测试DPU对特定计算任务的性能提升。
(2)端到端型:由两个单端型测试系统通过网络直连,模拟DPU作为网络加速器执行双端操作的场景。主要测试DPU对网络协议卸载、网络数据包处理的峰值能力。
(3)多端型:多个单端型测试系统通过复杂网络拓扑相连,模拟DPU作为网络加速器在负载环境中处理网络任务的场景。主要测试DPU的实际网络能力。
该白皮书针对DPU的功能异构性,提出了基于POC(真实性Practicality、针对性Objectivity、全面性Comprehensiveness)原则的多维度场景化测试方法,避免传统PPA(性能、功耗、面积)对比带来的性能误判,帮助客户选型。
值得注意的是,这本白皮书是一个方法论,并没有提供配套的实际的DPU Benchmark。
3.现有DPU评估方法
《DPUBench: An application-driven scalable benchmark suite for comprehensive DPU evaluation》论文中列出了现有的一些DPU评估方法。
现有DPU评估通常由DPU制造商进行,DPU制造商提供针对自身产品的评估程序,或者由研究人员根据特定DPU产品的架构特点,选择并改写现有基准程序。
目前,尚无用于全面评估DPU的基准套件。
4.业内研究
DPU的性能评估不仅仅是针对场景测出指标就行。
它的难点还在于DPU和业务的结合:找出在实际业务中,如何有效利用DPU和主机业务协同,真正对业务产生价值的使用方法。
针对当前业务,和DPU如何结合才能最大程度受益?选型哪款DPU性价比最高?这类业界难题催生了一系列研究。
(1)DPU-Bench(2023年,俄亥俄州立大学、洛斯·阿拉莫斯国家试验室)
项目代码:https://github.com/OSU-Nowlab/DPU-Bench
论文下载:https://dl.acm.org/doi/pdf/10.1145/3569951.3593595
DPU-Bench是研究人员开发的一套微基准测试套件,可主动衡量将HPC的各种集合通信卸载到BlueField-2 DPU等智能网卡时的卸载效率。
论文介绍了关于one-to-all,all-to-one, non-personalized all-to-all传输的设计,并在中/大规模场景下对其进行了测量。
论文探讨了工作进程间工作分配的可能性:基于块的分配与轮询分配,以及每种方法在不同工作进程数量和消息大小下如何提升性能或可能导致性能下降。
基于所涉及的节点和主机进程数量,通过经验方法能够相对快速地确定可实现最大卸载效率的工作进程数量。
(2)DPUBench(2023年, 中国科学院计算技术研究所、中国科学院大学 研究人员)
项目代码:https://github.com/BenchCouncil/DPUBench
论文下载:https://www.sciencedirect.com/science/article/pii/S2772485923000376
DPUBench是一种可扩展的、标准化的应用驱动的全面评估DPU基准测试套件。
研究人员选择网络、存储和安全作为典型应用场景,并从实际应用中提取了16个具有代表性的操作符用于DPU评估。这些操作符可以组合覆盖实际应用场景。
研究人员基于DPUBench构造了两个端到端的DPU工作负载,并在真实数据中心设备中测量了它们的吞吐量、丢包率、服务器CPU利用率和延迟。端到端评估程序在评估DPU在实际网络应用中的性能时是有效的。
研究人员使用DPUBench对NVIDIA BlueField-2进行了评估,并提供了优化建议。
(3)DpBento(2025年,多伦多大学、微软亚洲研究院、新加坡国立大学的研究人员)
论文下载:https://arxiv.org/pdf/2504.05536
研究人员提出了 dpBento 这一衡量DPU数据处理(数据库和KV存储等)性能的基准测试套件,它提供了可扩展的任务抽象,可在此基础上集成并自动化各种性能测试。
研究人员还借助了dpBento实现了一组微基准测试,用于测量DPU的CPU、内存、网络和存储性能,以及谓词下推和索引卸载情况和完整DBMS的性能。
实验结果揭示NVIDIA和MARVELL两家三款不同 DPU 资源和不同 DPU 的性能特征,以及将各种数据库相关操作和模块卸载到 DPU 的性能影响,为 DPU在数据处理中的应用提供了有价值的见解。
详细可参考霞姐之前的文章:【论文阅读】dpBento:用于数据处理的 DPU 基准测试