Ubuntu 17.10(GPU)环境下PyTorch安装后CUDA无法使用求助
解决Ubuntu 17.10下PyTorch无法识别CUDA的问题
从你的描述来看,核心问题出在NVIDIA显卡驱动未正确加载,导致CUDA和PyTorch无法调用GPU资源。下面是一步步的排查与修复方案:
1. 先确认NVIDIA驱动的安装状态
你的GTX 675M属于Kepler架构,本身是支持CUDA 9.0的,但Ubuntu 17.10自带的驱动可能和CUDA存在兼容性冲突。先通过以下命令检查驱动状态:
nvidia-smi
如果提示command not found,说明驱动完全没装上;如果弹出错误信息,说明驱动加载失败。
驱动修复步骤:
- 先卸载所有可能冲突的旧驱动和CUDA文件:
sudo apt-get purge nvidia* sudo apt-get autoremove sudo apt-get autoclean sudo rm -rf /usr/local/cuda* - 添加NVIDIA官方驱动PPA源,获取适配的驱动版本:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update - 安装适合GTX 675M的稳定驱动(推荐390版本,它是支持Kepler架构的最后一批稳定驱动):
sudo apt install nvidia-390 nvidia-settings nvidia-prime - 重启电脑后,再次运行
nvidia-smi,如果能显示显卡型号、驱动版本等信息,说明驱动加载成功。
2. 重新安装CUDA 9.0
之前通过deb包安装的CUDA可能因为驱动未正常加载而未关联成功,现在驱动正常后,重新安装CUDA:
- 下载对应Ubuntu 17.04的CUDA 9.0 deb包(Ubuntu 17.10可兼容该版本包)
- 安装时跳过驱动安装(我们已经单独装了适配的驱动):
sudo dpkg -i cuda-repo-ubuntu1704_9.0.176-1_amd64.deb sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub sudo apt update sudo apt install cuda-9-0 - 添加CUDA环境变量到
~/.bashrc,确保系统能识别CUDA命令:echo 'export PATH=/usr/local/cuda-9.0/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc - 验证CUDA安装:
如果输出CUDA 9.0的版本信息,说明安装成功。nvcc --version
3. 切换到NVIDIA独立显卡(双显卡适配)
你的电脑是双显卡配置,默认可能优先使用Intel集成显卡,需要手动切换到NVIDIA显卡:
- 图形界面方式:运行
nvidia-settings,在PRIME Profiles中选择「NVIDIA (Performance Mode)」,然后重启电脑。 - 命令行方式:
sudo prime-select nvidia sudo reboot - 验证当前使用的显卡:
如果输出显示glxinfo | grep "OpenGL renderer"NVIDIA GeForce GTX 675M,说明切换成功。
4. 重新安装PyTorch
现在驱动和CUDA都正常了,卸载旧的PyTorch并重新安装:
conda uninstall pytorch torchvision conda install pytorch torchvision cuda90 -c pytorch
然后在Python中验证:
import torch print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))
如果返回True和你的显卡名称,说明问题已经解决。
额外注意事项
- Ubuntu 17.10已经停止官方支持,建议升级到更稳定的LTS版本(比如20.04),这样驱动和CUDA的兼容性会更好。
- GTX 675M的CUDA计算能力是3.0,PyTorch的新版本可能不再支持该架构,如果安装时遇到问题,可以指定兼容的旧版本:
conda install pytorch=1.1.0 torchvision=0.3.0 cuda90 -c pytorch
内容的提问来源于stack exchange,提问作者pete
相关产品推荐
相关产品推荐

