1. 概述
沐曦验收测试套件(MetaX Validation Suite,mxvs)是沐曦面向服务器合作伙伴以及开发者提供的测试软件集合,便于用户方便快捷地了解曦云® 系列GPU的硬件能力,它支持PCIe带宽测试和眼图报告获取、显存带宽测试、算力测试、压力测试等功能。
备注
在使用mxvs工具之前,需确认已加载曦云系列GPU驱动。例如,在Ubuntu系统下,查看/lib/modules/5.4.0-xxx-generic/extra/目录下是否存在metax.ko文件。
工具使用人员需要root权限才能执行mxvs工具命令。
本文档中,输出结果均以曦云C500为示例。
2. 工具部署
mxvs基于AppImage进行封装,请确保系统中正确安装FUSE。
以Ubuntu为例,使用以下命令查看是否安装了FUSE用户空间工具:
dpkg -l | grep fuse
若未安装,可使用以下命令进行安装:
sudo apt-get install fuse
从MXMACA 2.31.0版本起,MXMACA SDK包安装过程中会默认将mxvs工具放置在 /opt/maca/bin/ 目录下。
3. 设备信息显示
命令
mxvs devices
命令将列出设备中所有CPU和GPU的信息。
输出结果

图 3.1 显示设备信息示例图
4. 显卡工作状态显示
命令
mxvs dashboard
命令将动态刷新显示系统中所有显卡的工作状态。
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
测试对象PCIe设备编号(GPU ID),支持单个设备查询或多个设备同时查询。默认选择所有PCIe显卡设备。 |
|
否 |
默认显示BOARD POWER、TEMPERATURE及USAGE,可选择监控的信息:
例如,仅显示设备0和设备1的USAGE、HBM BANDWIDTH及PCIE BANDWIDTH状态: |
输出结果

图 4.1 显示PCIe设备信息示例图
5. PCIe验收测试工具
5.1. PCIe实时速率查询
命令
mxvs pcie bandwidth --devices <DEVICE_ID>
命令查询获得系统中指定设备的实时PCIe速率。
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
测试对象PCIe设备编号(GPU ID),支持单个设备查询或多个设备同时查询。默认选择所有PCIe显卡设备。 |
|
否 |
持续监控速率开关 |
输出结果

图 5.1 实时PCIe速率查询结果示例图
5.2. PCIe单向带宽测试
命令
mxvs pcie benchmark unidirection --src-devices <SRC_DEVICE> --dst-devices <DST_DEVICE>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
单向带宽测试起点PCIe设备编号,支持单个设备测试或多个设备同时测试。如果需要指定所有设备,可用all作为参数值。 |
|
是 |
单向带宽测试终点PCIe设备编号,支持单个设备测试或多个设备同时测试。如果需要指定所有设备,可用all作为参数值。 |
|
否 |
指定测试的基准数据流,支持单个基准数据流测试或多个基准数据流同时进行测试。可选单位有KB、MB、GB,示例: |
|
否 |
指定GPU与CPU之间带宽测试时使用的CPU内核编号。如果需要指定多个内核,可通过逗号分隔。 |
|
否 |
指定D2D带宽测试时,数据拷贝的模式:
默认选择egress |
|
否 |
仅显示测试结果,不显示MetaX GPU基本信息。 |
|
否 |
将结果以JSON格式输出到文本中,可指定输出的文件名,如 |
输出结果

图 5.2 单向带宽测试结果示例图
备注
若不同NUMA节点下的设备带宽结果相差较大,且通过 --cpu-cores
指定合适的内核后,依旧是一样结果,则可以尝试执行以下命令清理缓存,避免cache导致的跨NUMA节点内存访问。
echo 3 > /proc/sys/vm/drop_caches
5.3. PCIe双向带宽测试
命令
mxvs pcie benchmark bidirection --devices <DEVICE_1>,<DEVICE_2>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
双向带宽测试对象PCIe设备编号,选择两个以上设备测试。如果需要指定所有设备,可用all作为参数值。 |
|
否 |
指定测试的基准数据流,支持单个基准数据流测试或多个基准数据流同时进行测试。可选单位有KB、MB、GB,示例: |
|
否 |
指定GPU与CPU之间带宽测试时使用的CPU内核编号。如果需要指定多个内核,可通过逗号分隔。 |
|
否 |
仅显示测试结果,不显示MetaX GPU基本信息。 |
|
否 |
将结果以JSON格式输出到文本中,可指定输出的文件名,如 |
输出结果

图 5.3 双向带宽测试结果示例图
备注
若不同NUMA节点下的设备带宽结果相差较大,且通过 --cpu-cores
指定合适的内核后,依旧是一样结果,则可以尝试执行以下命令清理缓存,避免cache导致的跨NUMA节点内存访问。
echo 3 > /proc/sys/vm/drop_caches
5.4. PCIe眼图特性测试
命令
mxvs eye --devices <DEVICE_1> --phy <PHY_ID> --lane <LANE_ID>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
测试对象PCIe设备编号,支持单个设备测试或多个设备同时测试。默认选择所有PCIe显卡设备。 |
|
否 |
物理层编号,范围:0 - 3,默认选择所有物理层。 |
|
否 |
差分信号组合编号,范围:0 - 3,默认选择所有差分信号组合。 |
|
否 |
仅显示测试结果,不显示MetaX GPU基本信息。 |
备注
在眼图测试过程中,请勿中断测试(如按Ctrl+C),以免导致异常。
眼图测试结束后,建议重启服务器。
输出结果

图 5.4 眼图特性测试结果示例图
6. Memory验收测试工具
6.1. Memory实时带宽查询
命令
mxvs memory bandwidth --devices <DEVICE_ID>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
测试对象PCIe设备编号,支持单个设备查询或多个设备同时查询。默认选择所有PCIe显卡设备。 |
|
否 |
持续监控带宽开关。 |
输出结果

图 6.1 Memory实时带宽查询结果示例图
6.2. Memory带宽测试
命令
mxvs memory benchmark --devices <DEVICE_ID>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
测试对象PCIe设备编号,支持单个设备测试或多个设备同时测试。默认选择所有PCIe显卡设备。 |
|
否 |
仅显示测试结果,不显示MetaX GPU基本信息 |
|
否 |
将结果以JSON格式输出到文本中,可指定输出的文件名,如 |
备注
默认选择10GB的基准数据流进行测试。
输出结果

图 6.2 Memory带宽测试结果示例图
7. MetaXLink验收测试工具
7.1. MetaXLink实时带宽查询
mxvs metaxlink bandwidth --devices <DEVICE_ID>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
测试对象PCIe设备编号,支持单个设备查询或多个设备同时查询。默认选择所有PCIe显卡设备。 |
输出结果

图 7.1 MetaXLink实时带宽查询示例图
7.2. MetaXLink带宽测试
命令
mxvs metaxlink benchmark --devices <SRC_DEVICE>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
带宽测试对象PCIe设备编号,支持单个设备测试或多个设备同时测试。如果需要指定所有设备,可用all作为参数值,默认选择所有PCIe显卡设备。 |
|
否 |
指定D2D带宽测试时,数据拷贝的模式:
默认选择egress。 |
|
否 |
仅显示测试结果,不显示MetaX GPU基本信息。 |
|
否 |
将结果以JSON格式输出到文本中,可指定输出的文件名,如 |
输出结果

图 7.2 MetaXLink带宽测试示例图
7.3. MetaXLink眼图特性测试
命令
mxvs eye --metaxlink --metaxlink-ports <PORT_ID> --devices <DEVICE_ID> --lanes <LANE_ID> --phys <PHY_ID>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
MetaXLink眼图测试开关 |
|
否 |
测试对象MetaXLink端口编号,支持单个端口测试或多个端口同时进行测试,默认选择所有端口(1-7)。
不能指定非连接状态的端口,需确认所选端口为连接状态。可通过命令 |
|
否 |
测试对象PCIe设备编号,支持单个设备测试或多个设备同时测试。默认选择所有PCIe显卡设备。 |
|
否 |
差分信号组合编号,范围:0 - 3,默认选择所有差分信号组合。 |
|
否 |
物理层编号,范围:0 - 3,默认选择所有物理层。 |
|
否 |
仅显示测试结果,不显示MetaX GPU基本信息。 |
备注
在眼图测试过程中,请勿中断测试(如按Ctrl+C),以免导致异常。
眼图测试结束后,建议重启服务器。
输出结果

图 7.3 MetaXLink眼图特性测试示例图
8. P2P验收测试工具
8.1. P2P带宽测试
命令
mxvs p2p --src-devices <SRC_DEVICE_ID1>, <SRC_DEVICE_ID2> --dst-devices <DST_DEVICE_ID1>, <DST_DEVICE_ID2>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
P2P测试起点PCIe设备编号,支持单个设备测试或多个设备同时测试。如果需要指定所有设备,可用all作为参数值。 |
|
是 |
P2P测试终点PCIe设备编号,支持单个设备测试或多个设备同时测试。如果需要指定所有设备,可用all作为参数值。 |
|
否 |
指定D2D带宽测试时,数据拷贝的模式:
默认选择egress。 |
|
否 |
P2P测试单向数据发送使能开关。 |
|
否 |
并行执行一对多,多对一,多对多P2P单向数据发送,需与 |
|
否 |
将结果以JSON格式输出到文本中,可指定输出的文件名,如 |
输出结果

图 8.1 P2P带宽测试示例图
9. 算力测试工具
命令
mxvs ops --devices <DEVICE_ID> --models <MODEL_NAME>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
测试对象精度,可指定精度:int8、bf16、fp16、fp32_vector、fp32_matrix、tf32。默认测试以上所有精度。 |
|
否 |
测试对象PCIe设备编号,支持单个设备测试或多个设备同时测试。如果需要指定所有设备,可用all作为参数值,默认选择所有PCIe显卡设备。
若为sgpu场景,则需传入具体的sgpu设备编号,如 |
|
否 |
仅显示测试结果,不显示MetaX GPU基本信息。 |
|
否 |
将结果以JSON格式输出到文本中,可指定输出的文件名,如 |
备注
若要测试sGPU场景,需先将主机设备进行切分,具体方法参见《曦云® 系列通用计算GPU mx-smi使用手册》中“sGPU切分选项”章节。
设备一旦开启切分功能,无论是否创建子设备,父设备不可用,即无算力测试结果。
算力结果因调度策略不同而不同。
10. 压力测试
10.1. XCore压力测试
命令
mxvs stress --xcore --xcore-devices <DEVICE_ID>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
XCore压力测试开关。 |
|
否 |
测试对象PCIe设备编号,支持单个设备测试或多个设备同时测试。如果需要指定所有设备,可用all作为参数值,默认选择所有PCIe显卡设备。 |
|
否 |
以 “HH:MM”的格式,指定执行压力测试的持续时间,默认为 “00:30”。当进行长时间压力测试时,建议在后台执行,例: |
输出结果

图 10.1 XCore压力测试结果示例图
10.2. MetaXLink压力测试
命令
mxvs stress --metaxlink
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
MetaXLink压力测试开关。 |
|
否 |
以 “HH:MM”的格式,指定执行压力测试的持续时间,默认为 “00:30”。
当进行长时间压力测试时,建议在后台执行,例如: |
输出结果

图 10.2 MetaXLink压力测试结果示例图
11. 光模块验收测试工具(仅适用于C500X)
11.1. 单机MetaXLink带宽测试
命令
mxvs om client --src-devices <DEVICE_ID> --dst-devices <DEVICE_ID>
命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
测试起点PCIe设备编号,支持单个设备测试或多个设备同时测试。测试设备间需为MetaXLink连接。 |
|
是 |
测试终点PCIe设备编号,支持单个设备测试或多个设备同时测试。测试设备间需为MetaXLink连接。 |
|
否 |
指定测试的基准数据流,支持单个基准数据流测试或多个基准数据流同时进行测试。
可选单位有KB、MB,示例: |
|
否 |
指定DMA copy次数,默认为1,若值为N,则测试结果取N次平均值。 |
|
否 |
持续监控速率开关,仅支持单一的data-size值。 |
|
否 |
开启结果校验,检查数据一致性。 |
输出结果

图 11.1 单机MetaXLink带宽测试结果示例图
11.2. 跨机MetaXLink带宽测试
跨机MetaXLink带宽测试需要在远端服务器先启动OM Server。
Server命令
mxvs om server
Server命令参数
参数 |
必填 |
描述 |
---|---|---|
|
否 |
Server用于测试请求转发的服务端口,默认为9601。 |
|
否 |
Server用于测试内存分配的服务端口,默认为9600。 |
Client命令
mxvs om client --dst-addr <DST_ADDR>--src-devices <DEVICE_ID> --dst-devices <DEVICE_ID> -w <0|1|2>
Client命令参数
参数 |
必填 |
描述 |
---|---|---|
|
是 |
测试起点PCIe设备编号,支持单个设备测试或多个设备同时测试。测试设备间需为MetaXLink连接。 |
|
是 |
测试终点PCIe设备编号,支持单个设备测试或多个设备同时测试。测试设备间需为MetaXLink连接。 |
|
否 |
指定测试的基准数据流,支持单个基准数据流测试或多个基准数据流同时进行测试。
可选单位有KB、MB,示例: |
|
否 |
指定DMA copy次数,默认为1,若值为N,则测试结果取N次平均值。 |
|
否 |
持续监控速率开关,仅支持单一的data-size值。 |
|
否 |
开启结果校验,检查数据一致性。 |
|
是 |
指定目的服务器IP地址。 |
|
否 |
非本机进行测试时需指定,默认为本机测试。 |
|
是 |
当前跨机MetaXLink支持3种形态,对应参数值为:
|
|
否 |
仅当使用浪潮交换机switch box时需指定BAR地址(在/etc/metax.conf文件查看)。 |
输出结果

图 11.2 跨机MetaXLink带宽测试结果示例图
12. 附录
12.1. 术语/缩略语
术语/缩略语 |
全称 |
说明 |
---|---|---|
AppImage |
一种把应用打包成单一文件的格式 |
|
DMA |
Direct Memory Access |
直接内存访问 |
FUSE |
Filesystem in Userspace |
一个面向类Unix计算机操作系统的软件接口 |
MetaXLink |
沐曦GPU D2D接口总线 |
|
mxvs |
MetaX Validation Suite |
沐曦验收测试套件 |
PCIe |
Peripheral Component Interconnect Express |
一种高速串行计算机扩展总线标准 |