目前交付场景中我们常做一些内核和驱动参数优化,主要有内核加载nvidia_peermem,还有一些驱动调节参数,NVreg_EnableStreamMemOPs, NVreg_RegistryDwords,NVreg_EnableGpuFirmware这几个参数,今天就来介绍下这些参数的优化方法和具体优化了些什么。
1. NVreg_EnableStreamMemOPs
作用:启用流式内存操作,优化 GPU 内存访问性能效果:可能提升某些计算密集型任务(如科学计算、AI训练)的性能
风险:可能导致系统不稳定,特别是旧型号 GPU
2. NVreg_RegistryDwords
作用:强制启用 GPU 对等映射(Peer-to-Peer)适用场景:多 GPU 系统(如 2+ NVIDIA 显卡)
效果:允许 GPU 之间直接通信,绕过系统内存
提升多 GPU 间的数据传输速度
减少 PCIe 带宽占用
对深度学习、GPU 渲染等有提升
3. NVreg_EnableGpuFirmware
作用:禁用 GPU 固件加载常见原因:
解决某些系统启动问题
避免固件与特定内核版本冲突
修复显示器唤醒问题
4.nvidia_peermem
作用:启用 GPU 间的直接内存访问(P2P),允许 GPU 之间直接读写对方的内存,无需通过 CPU 或系统内存中转。
效果:
减少延迟:GPU 间通信直接进行
提高带宽:利用 NVLink 或 PCIe 直接传输
降低 CPU 负载:避免 CPU 介入数据传输
节省系统内存:不占用主机内存作为中转缓冲区
5.优化脚本撰写
nvidia_peermem内核模块的加载可以不用重启,你可以直接执行sudo modprobe nvidia_peermem即可加载到内核,另外的参数需要重启才能生效。
另外这个需要和上述PeerMappingOverride=1配合使用,
echo "nvidia_peermem" | sudo tee /etc/modules-load.d/nvidia.conf
echo 'options nvidia NVreg_EnableStreamMemOPs=1 NVreg_RegistryDwords="PeerMappingOverride=1;" NVreg_EnableGpuFirmware=0' | sudo tee /etc/modprobe.d/nvidia.conf另外最好更新下grub
sudo update-initramfs -u
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1161
相关阅读
- linux内核无法加载nvidia-peermem模块的问题分析
- 英伟达GPU nvidia-smi常用命令详解
- GPU未开启持久模式导致GPU卡住且dmesg日志中打印NVRM: _threadNodecheckTimeout错误
- linux下gpu降速问题排查
- ubuntu22.04安装dcgm和基本用法
- RTX 5090在cuda13.0下gpu-burn编译报错的解决方法
- k8s集群部署gpu-operator支持gpu节点自动发现和gpu上报
- ubuntu22.04算力环境基础配置一键验证脚本
- ubuntu22.04算力环境基础配置一键脚本
- nccl-tests多机多卡测试环境一键编译部署脚本
评论列表