DPU性能评测系统框架与测试流程

本文来自“专用数据处理器(dpu)性能基准评测方法与实现(2022)”介绍 dpu 性能测试系统框架与测试流程,包括测试系统、测试要求、测试活动三部分。具体的,测试系统定义了三种搭建 dpu 测试系统的方法,测试要求阐述了组建 dpu 测试系统时需要满足的要求,测试活动定义了dpu benchmark 的选择策略、执行前准备、执行过程及测试结果报告。
dpu 测试系统(sut)
dpu 测试系统(system under test,sut)是测试 dpu 性能的平台,其结构在不同应用场景中,主要分为三类:单端型测试系统(single-end)、端到端型测试系统(end-to-end)和多端型测试系统(multi-end)。
单端型(single-end)测试系统是主机与 dpu 通过总线互联构成的封闭测试系统,主要用于模拟无网络连接情况下,dpu 作为专用加速器执行主机端特定业务的过程。在这种系统中,计算与数据传输仅在主机与 dpu 之间进行,dpu 不与其他设备通信,仅执行特定计算业务。单端型测试系统主要测试 dpu 对特定计算任务的性能提升。
端到端型(end-to-end)测试系统将两个单端型测试系统通过简单网络相连(网线直连),其中一个为请求发起者(initiator/client),另一个为请求接受者(target/server)。
端到端型测试系统主要模拟 dpu 作为网络加速器执行双端操作的场景。在这种系统中,计算与数据传输不仅在主机与 dpu 之间进行,还通过网络传输到其他系统。dpu 在server 端接收主机端发起的网络请求并通过网口转发,或者在 client 端接收网络的请求并向作出响应。端到端型测试系统能够屏蔽网络性能(转发次数、交换设备的性能、转发设备的性能)对 dpu 性能的影响,主要测试 dpu 对网络协议卸载、网络数据包处理的峰值能力。
多端型(multi-end)测试系统是多个单端型测试系统通过复杂的网络拓扑相连的开放测试系统。该测试系统主要模拟 dpu 作为网络加速器在复杂环境中处理网络任务的场景。在这种系统中,网络环境(网络拓扑)与资源分布(相同或者不同类型的 dpu 系统)情况复杂,dpu 不仅承担一对一的网络任务,还可能接收一/多个其他系统的请求(含背景流量甚至恶意攻击)或响应一/多个其他系统的请求。
单端型(single-end)测试系统
主机与 dpu 通过总线(通常为 pcie)直接相连形成的可独立工作的系统为单端型测试系统,系统包含支持 dpu 正常工作的软件和硬件。在这种测试系统中,dpu 作为专用加速器执行特点计算业务。
单端型测试系统模型的基本结构如图2.1(a) 所示。运行时环境(run time environ-ment,rte)代表运行中的 dpu 测试程序,交换设备(switch)为 dpu 与主机系统(host system)的互连结构(通常为 pcie)。在单端型测试系统中,dpu 作为专用加速器,主机使用 dpu 加速某些任务的处理,如数据库查询、ai 训练等。任务数据首先从主机端搬运到 dpu,dpu 计算完成后,再将处理完的数据写回主机。在这种工作模式中,dpu测试程序可以以数据处理时间、数据处理规模作为性能指标。
单端型测试系统具体由硬件和软件两部分构成,硬件主要有 dpu、cpu 以及其他
保证系统正常进行的硬件(内存、硬盘等),软件主要有操作系统、dpu 驱动、开源工具、dpu benchmark,结构示意如图。各部分组件要求如下:
1. dpu benchmark,评测 dpu 系统性能的基准测试程序;
2. 开源工具(open source tools),一些广泛使用的性能测试工具,保证测试结果可重复,在不同的用户测试时可以获得相近的结果;
3. dpu benchmark 驱动(benchmark driver),基于内核态的测试驱动或者基于用户态的测试驱动;
4. dpu 驱动(dpu driver),包括 dpu 最底层的抽象,也包括 dpu 所提供给用户程序使用的接口;
5. 操作系统(operating system),需要支持 dpu benchmark 的版本,且相关信息需要在结果报告中明确写出,如操作系统版本,内核版本等;
6. 计算设备(computing device),通用 cpu,其上运行操作系统;
7. 连接设备(connected device),根据 dpu 板卡接口不同选择不同,常见的有pcie、cxl;
8. io 硬件(i/o),鼠标、键盘等保证系统执行所必须的硬件设备;
9. 被测 dpu 产品(dpu);
10. 其他硬件资源(hardware resources),如内存、硬盘。
端到端型(end-to-end)测试系统
端到端型测试系统是由两个单端型测试系统通过网线直连的方式组成的测试系统。在这种测试系统中,屏蔽了复杂的网络拓扑与其他系统流量的影响,可以测试 dpu 网络加速的峰值性能。
端到端型测试系统由两个单端型测试模型直接相连(如图所示),每个单端测试系统分别运行 dpu benchmark 测试程序,一般其中一个运行发起者程序 (initiator/-client),另一个运行接收者程序 (target/server)。通过发起者发送请求,接收者响应请求,测量基于网络的端到端操作,例如 rdma send/receive 操作,nvme-of 远程访问。在这种测试模型中,根据从一端 dpu 系统到另一端 dpu 系统的请求时间和流量等测试dpu 的延迟、吞吐量等性能。
端对端型测试系统在单端型测试系统的基础上,增加网络基础设备(通常为网线)
用于直接连接两个单端测试系统,其结构如图2.3所示。根据 dpu 所支持的网口速率不同,可采取不同的网络连接设备,缺省值为 100gbs 连接。
多端型(multi-end)测试系统
多端型测试系统是由多个单端型测试系统经由复杂网络(复杂的网络拓扑)连接形
成的测试系统。在这种测试系统中,可以模拟 dpu 所处的真实网络环境,测试 dpu 网络处理的实际性能。
多端型测试系统模型主要用于模拟基于 dpu 构建的数据中心,通过复杂的网络将
众多 dpu 系统 (功能相同或者不同) 互连起来,从而测试基于 dpu 系统实现的网络、存储或安全加速应用的真实性能,如nvme-of 读取不同结点存储系统的存储资源、rdma访问不同结点的资源。在这种测试模型中,根据请求与响应时间、请求的数据量及并发的请求数等可以测试延时、吞吐量、连接能力等指标。
多端型测试系统在单端型测试系统的基础上,需要增加更复杂的网络基础设备用于连接不同节点的 dpu 系统。这些网络基础设施包括但不限于集线器、交换机、路由器等。
在 dpu benchmark 执行时,为了保证测试结果的准确性与可重复性,对于同一种测试用例执行两轮(特殊的情况在具体的测试用例说明)。每一轮分为三个部分:预热 (warmup run) 部分排除初始化干扰;负载执行 (measured run) 部分为真正的指标测试;结果检查 (result check) 部分检查结果的正确性 (数据传输的完整性,计算结果的正确性等)。每执行完一轮需要恢复至初始状态 (clear up)。在预热部分与负载执行之间不允许执行其他任务。每一轮执行的过程中,dpu 测试系统配置不可以发生变化。
在 dpu benchmark 执行过程中,dpu 测试系统不可以重启或者重新开始。如果 dpu系统测试应用、操作系统或者硬件发生不可恢复的错误时,这一轮的执行应作无效;如果 dpu 系统测试应用、操作系统或者硬件检测到可恢复的错误,并且错误纠正并恢复正常,那么这一轮的执行应作有效。在错误发生处理期间,测试者不能人工干预,否则,这一轮执行应作无效。
测试报告中除了给出不同测试用例的性能指标,还需要给出测试过程中的全部配置信息,包括:配置参数,包括服务器、存储、网络等其他硬件设施;安装的操作系统、文件系统、测试工具等软件版本;在测试过程中使用到的其他软件程序;程序编译优化选项。在执行 dpu benchmark 时如果系统发送异常或者其他情况,需要在报告附录中指出。
本文来自“专用数据处理器(dpu)性能基准评测方法与实现(2022)”介绍 dpu性能测试系统框架与测试流程,包括测试系统、测试要求、测试活动三部分。完整内容请参看原报告。


全国首发居民健康卡加载“华虹芯”
基于AD5336芯片实现汽车防抱制动系统的控制器开发装置的设计
ZMI紫米推出果粉专用的移动电源,带Lightning充电口
B1I,B1C北斗三号定位模块+天线一体化IP67 GNSS G-mouse SKM2102CR
PCI总线实现通用数字信号处理系统
DPU性能评测系统框架与测试流程
Linux内核中I2C系统的设计思路
python数据挖掘与机器学习
trifo扫地机器人带你体验更加智能的生活服务
区块链如何改进保险行业索赔的工作流程
二极管的关键参数
一组全新的概念渲染图,全新的苹果手机被称作iPhoneX1
谈谈对讲机耳机的类别
如何利用PWM数字技术实现D类放大器的性能设计
python运行一次自动再次运行
自动驾驶汽车的普及真的能够缓解甚至终结交通拥堵这一难题吗?
传言iOS11的iPhone8将支持VR技术
MODBUS转PROFINET网关与安科瑞ard3t电机保护器的连接方法
集成机器人解决方案——跨控制器机器人
欧阳绘宇副区长带队调研我中心