目前交付场景中我们常做一些内核和驱动参数优化,主要有内核加载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另外最好更新下 initramfs
sudo update-initramfs -u
内容版权声明:除非注明,否则皆为本站原创文章。
评论列表