运行MLPerf Nvidia基准测试报mlx5_core查询返回非零退出状态1错误
报错根因
错误
Command 'cat /sys/module/mlx5_core/version' returned non-zero exit status 1是因为MLPerf v0.6的NVIDIA基准测试脚本默认适配多节点分布式训练场景,内置了对Mellanox高速网卡内核模块mlx5_core的版本检查逻辑。如果你的测试机器没有搭载Mellanox InfiniBand/RoCE网卡,该内核模块不会默认加载,就会触发检查失败导致运行中断。
解决方案
方案1:跳过mlx5_core检查(单节点训练首选)
不需要改动其他依赖,直接注释脚本中的检查逻辑即可:
- 进入你要运行的基准测试对应的实现目录,例如PyTorch版ResNet的路径为
cd training_results_v0.6/NVIDIA/benchmarks/resnet/implementations/pytorch-1.0.0 - 编辑运行脚本
run_and_time.sh,搜索包含mlx5_core的检查行,在行首加#注释后保存 - 重新运行基准测试即可
方案2:伪造临时版本文件(无需修改原脚本)
如果不想改动原脚本内容,可以手动创建临时的版本文件骗过检查:
sudo mkdir -p /sys/module/mlx5_core/ echo "5.0-0" | sudo tee /sys/module/mlx5_core/version
该修改为临时生效,机器重启后会自动失效,如需永久生效可将上述命令加入开机自启配置
方案3:安装mlx5_core模块(仅适用于搭载Mellanox网卡的设备)
如果你的测试机器确实配备了Mellanox系列高速网卡,安装对应驱动即可自动加载模块:
- 下载和你的系统版本匹配的MLNX_OFED驱动包
- 执行安装命令:
sudo ./mlnxofedinstall --add-kernel-support - 重启机器后执行
lsmod | grep mlx5_core确认模块加载成功,再重新运行基准测试
内容的提问来源于stack exchange,提问作者user2464401
相关产品推荐
相关产品推荐

