Ubuntu服务器双A100 PCIE GPU仅识别单卡,求Python双卡调用方案
解决双A100 PCIE GPU仅识别单块的问题
一、硬件与BIOS层面排查
- 检查PCIe插槽状态:确认第二块A100的PCIe插槽物理连接牢固、供电接口插稳,进入服务器BIOS确认所有PCIe插槽已启用(部分服务器默认关闭闲置插槽)。
- 验证硬件兼容性:确认服务器主板支持双A100 PCIE的功耗(单卡300W)与带宽需求,电源总功率满足双卡运行要求。
二、NVIDIA驱动与系统层面修复
- 彻底重装适配驱动:
- 清理现有驱动:执行
sudo apt purge nvidia*移除所有NVIDIA组件,再执行sudo apt autoremove && sudo apt clean清理残留。 - 安装适配版本:A100需470.x及以上驱动,可通过
sudo ubuntu-drivers autoinstall自动安装适配驱动,或手动下载官网驱动包执行./NVIDIA-Linux-x86_64-xxx.xx.run完成安装。
- 清理现有驱动:执行
- 检查PCIe设备枚举:执行
lspci | grep -i nvidia,若输出两块NVIDIA设备,说明硬件已被系统识别,问题出在驱动配置;若仅一块,需排查硬件连接或卡本身故障。 - 验证内核模块加载:执行
lsmod | grep nvidia,确认nvidia、nvidia_uvm等模块正常加载,且无加载数量限制。
三、NVIDIA配置与软件调试
- 生成并检查配置文件:
执行sudo nvidia-xconfig生成默认配置,打开/etc/X11/xorg.conf确认包含两块GPU的配置项,BusID需与lspci输出的设备地址一致。 - 测试GPU识别:
重启服务器后执行nvidia-smi -L,若仅列出一块GPU,说明驱动未正确识别第二块卡;若两块都列出,再执行nvidia-smi查看详细状态。 - 适配PyTorch环境:
- 确认版本兼容:执行
python -c "import torch; print(torch.version.cuda)"查看CUDA版本,确保与NVIDIA驱动支持的CUDA版本匹配(PyTorch 1.12+推荐搭配470.x及以上驱动)。 - 强制指定可见GPU:在代码开头添加
import os; os.environ['CUDA_VISIBLE_DEVICES'] = '0,1',再执行print(torch.cuda.device_count()),若输出为2则说明问题解决。
- 确认版本兼容:执行
四、进阶排查
- 查看系统日志:执行
dmesg | grep nvidia,排查第二块GPU初始化失败的错误信息(如供电不足、PCIe链路异常等)。 - 单卡验证:将第二块A100单独插入服务器,测试是否能被正常识别,排除卡本身故障。
内容的提问来源于stack exchange,提问作者Faizan Munsaf
相关产品推荐
相关产品推荐

