多显卡服务器需统一安装兼容驱动(如535+版),禁用nouveau,确保nvidia模块全加载;按用途区分计算型(cuda_visible_devices控制)与图形型渲染(xorg指定主卡);通过nvidia-smi topo -m和devicequery验证拓扑与cuda连通性。
多显卡服务器的驱动管理核心在于“统一控制、按需分配”,不是给每张卡装不同驱动,而是用一套兼容的驱动覆盖全部gpu,并通过软件层调度任务到具体设备。关键不在于“分配驱动”,而在于让系统正确识别、稳定加载、并支持上层应用按需调用。
确认驱动兼容所有GPU型号
混合型号(如RTX 4090 + A100)在驱动层面通常可行——NVIDIA官方驱动支持跨代兼容,只要都在同一驱动版本的支持列表内(例如535+驱动可同时支持Ampere和Ada架构)。但要注意:
- 避免混用数据中心卡(如A100)与消费卡(如4090)在同一系统做图形渲染,因TCC模式与WDDM/graphics模式冲突
- 统一使用NVIDIA Data Center Driver(非Game Ready版),稳定性与多卡管理能力更强
- 用 nvidia-smi --query-gpu=name,uuid,driver_version 验证每张卡是否报告相同驱动版本
禁用Nouveau并确保内核模块正确加载
Ubuntu默认可能启用开源Nouveau驱动,它会抢占PCIe设备,导致NVIDIA驱动无法绑定多卡。必须彻底禁用:
在 Windows 上执行终端命令,或对比 Windows 与 Linux 的 Shell 语法时使用。建议先检测当前 Shell 是 PowerShell 还是 cmd.exe,再给出相应命令……
- 执行 sudo bash -c "echo 'blacklist nouveau' >> /etc/modprobe.d/blacklist.conf"
- 运行 sudo update-initramfs -u 并重启
- 启动后检查 lsmod | grep nvidia 应显示 nvidia_uvm、nvidia_drm、nvidia_modeset 全部加载
渲染配置取决于用途,而非显卡数量
服务器多数场景不跑图形界面,所谓“渲染配置”实际分两类:
- 计算型渲染(如Z-Image Turbo、ComfyUI):无需X Server,靠CUDA上下文直接绑定GPU设备。用 CUDA_VISIBLE_DEVICES=0,2,3 控制可见卡,或在代码中调用 torch.cuda.set_device() 指定
- 图形输出型渲染(如远程桌面、OpenGL可视化):只有一张卡需接显示器或虚拟显示(vGPU/Headless模式),其余卡设为Compute Only。编辑 /etc/X11/xorg.conf 明确指定 BusID 和 Driver "nvidia" 的主显卡,其余不参与DisplayServer
验证多卡协同状态
驱动装好不等于能用,需确认底层通信通畅:
- 运行 nvidia-smi topo -m 查看GPU间拓扑(PCIe/NVLink连接状态),理想是全互连或至少无“N/A”跳转
- 用 cuda-sample deviceQuery 检查每张卡是否通过CUDA测试(输出中每个设备都应显示“Result = PASS”)
- 若某卡始终不响应,可能是BIOS中PCIe ASPM节能被启用,需进BIOS关闭“PCIe Power Management”










