如何使torch.cuda.is_available()返回True?附系统环境信息
解决torch.cuda.is_available()返回False的问题
先梳理下你的环境信息:
系统与PyTorch环境:
$ python Python 3.6.7 | packaged by conda-forge | (default, Nov 6 2019, 16:19:42) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch >>> torch.version.cuda '8.0.61' >>> torch.cuda.is_available() False >>> torch.backends.cudnn.enabled True >>> torch.__version__ '1.0.0.dev20190328'系统与CUDA硬件信息:
$ uname -a Linux goku.bu.edu 3.10.0-1127.18.2.el7.x86_64 #1 SMP Sun Jul 26 15:27:06 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.8.2003 (Core) Release: 7.8.2003 Codename: Core $ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:01_CDT_2018 Cuda compilation tools, release 10.0, V10.0.130 $ cat /usr/local/cuda/version.txt CUDA Version 10.0.130 $ nvidia-smi Sat Sep 19 00:04:00 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce GTX 108... Off | 00000000:05:00.0 Off | N/A | | 0% 24C P8 12W / 250W | 55MiB / 11178MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 GeForce GTX 108... Off | 00000000:06:00.0 Off | N/A | | 0% 27C P8 12W / 250W | 2MiB / 11178MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 2637 G /usr/bin/X 39MiB | | 0 N/A N/A 2903 G /usr/bin/gnome-shell 12MiB | +-----------------------------------------------------------------------------+GPU硬件详情:
$ lspci | grep ' VGA ' | cut -d" " -f 1 | xargs -i lspci -v -s {} 05:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller]) Subsystem: eVga.com. Corp. Device 6598 Flags: bus master, fast devsel, latency 0, IRQ 88, NUMA node 0 Memory at fa000000 (32-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=256M] Memory at d0000000 (64-bit, prefetchable) [size=32M] I/O ports at e000 [size=128] [virtual] Expansion ROM at fb000000 [disabled] [size=512K] Capabilities: <access denied> Kernel driver in use: nvidia Kernel modules: nouveau, nvidia_drm, nvidia 06:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller]) Subsystem: eVga.com. Corp. Device 6598 Flags: bus master, fast devsel, latency 0, IRQ 89, NUMA node 0 Memory at f8000000 (32-bit, non-prefetchable) [size=16M] Memory at a0000000 (64-bit, prefetchable) [size=256M] Memory at b0000000 (64-bit, prefetchable) [size=32M] I/O ports at d000 [size=128] [virtual] Expansion ROM at f9000000 [disabled] [size=512K] Capabilities: <access denied> Kernel driver in use: nvidia Kernel modules: nouveau, nvidia_drm, nvidia
问题根源
你当前安装的PyTorch(1.0.0.dev20190328)是基于CUDA 8.0编译的,但系统实际部署的是CUDA 10.0,版本不匹配导致PyTorch无法识别系统中的CUDA环境,所以torch.cuda.is_available()返回False。不过你的显卡驱动(450.51.06)支持到CUDA 11.0,完全向下兼容CUDA 10.0,不需要更新驱动。
解决方案
1. 卸载当前不兼容的PyTorch
根据你当初的安装方式选择命令:
- 若用pip安装:
pip uninstall torch -y - 若用conda安装:
conda uninstall torch -y
2. 安装匹配CUDA 10.0的PyTorch版本
你的Python是3.6,推荐安装PyTorch 1.4.0(完美兼容CUDA 10.0和Python3.6):
- pip安装方式:
pip install torch==1.4.0+cu100 torchvision==0.5.0+cu100 -f https://download.pytorch.org/whl/torch_stable.html - conda安装方式:
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.0 -c pytorch
3. 配置CUDA环境变量(可选但推荐)
确保系统能正确识别CUDA 10.0的工具和库,将以下内容添加到~/.bashrc或~/.bash_profile末尾:
export PATH=/usr/local/cuda-10.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
执行source ~/.bashrc使配置立即生效。
4. 验证安装结果
重新打开Python终端,运行以下代码:
import torch print("CUDA是否可用:", torch.cuda.is_available()) print("PyTorch绑定的CUDA版本:", torch.version.cuda) print("可用GPU数量:", torch.cuda.device_count())
正常情况下,torch.cuda.is_available()会返回True,且torch.version.cuda显示10.0。
内容的提问来源于stack exchange,提问作者Mona Jalal
相关产品推荐
相关产品推荐

