简介:本文详细解析Ubuntu系统下双显卡及多显卡的配置方法、性能测试与常见问题解决,助力开发者高效利用多GPU资源。
在Ubuntu系统中配置双显卡(通常指集成显卡+独立显卡)或更多显卡,核心目标是实现显卡切换、负载均衡或并行计算。常见场景包括:笔记本双显卡切换、工作站多GPU渲染、深度学习多卡训练等。
prime-select或nvidia-prime。amdgpu驱动,尤其是新架构显卡(如RDNA3)。操作建议:
# 查看已识别的显卡lspci | grep -i vga# 检查内核加载的显卡驱动模块lsmod | grep -E 'nvidia|amdgpu|i915'
NVIDIA显卡:
sudo ubuntu-drivers autoinstall
sudo prime-select intel # 切换到集显(省电)sudo prime-select nvidia # 切换到独显(高性能)
glxinfo | grep "OpenGL renderer"AMD显卡:
amdgpu(通常随内核自动加载)。/etc/default/grub,添加radeon.dpm=1到GRUB_CMDLINE_LINUX。
sudo apt install mesa-utilsglxgears # 运行测试
sudo apt install phoronix-test-suitephoronix-test-suite benchmark unigine-heaven
NVIDIA多卡训练:
nvidia-smi监控多卡利用率:
watch -n 1 nvidia-smi
import torchprint(torch.cuda.device_count()) # 查看可用GPU数量# 示例:多卡数据并行model = torch.nn.DataParallel(model).cuda()
ROCm多卡测试(AMD):
rocminfo检查设备。
export CUDA_VISIBLE_DEVICES=0,1 # 仅使用GPU0和GPU1
/etc/X11/xorg.conf,为每块显卡创建Device段。xrandr管理多显示器输出:
xrandr --listproviders # 查看GPU提供的显示输出xrandr --setprovideroutputsource 1 0 # 将GPU1的输出绑定到GPU0
dmesg | grep -i iommu
/etc/default/grub,添加intel_iommu=on或amd_iommu=on。virt-manager配置PCIe设备直通。prime-select切换后黑屏或卡顿。
sudo apt purge nvidia-*sudo apt autoremove
DALI加速数据加载(NVIDIA)。batch_size和num_workers。驱动管理:
nouveau与nvidia)。电源管理:
监控与调优:
nvidia-smi dmon或radeontop实时监控GPU状态。Persistence Mode(NVIDIA)或PPFeatureMask(AMD)以优化性能。Ubuntu多显卡配置需结合硬件特性、驱动支持和软件工具进行综合调优。从基础的显卡切换到复杂的多卡并行计算,开发者需掌握驱动安装、性能测试和问题排查的全流程。通过合理配置,可显著提升图形渲染、深度学习等任务的执行效率。
扩展阅读: