torch.cuda.is_available为False的一种可能

问题原因

在Nvidia更新了显卡驱动后,我的pytorch使用不了cuda了,真的非常离谱。吐血收集了一些信息后,这里写了我的解决办法。

nvcc --version 和 nvidia-smi显示不一样

这里引用下一位博主的解释:nvcc和nvidia-smi显示的版本不一致?

CUDA有 runtime api 和 driver api,两者都有对应的CUDA版本, nvcc --version 显示的就是前者对应的CUDA版本,而 nvidia-smi显示的是后者对应的CUDA版本。

通常,driver api的版本能向下兼容runtime api的版本,即 nvidia-smi 显示的版本大于nvcc --version 的版本通常不会出现大问题。

而我更新显卡驱动后,nvidia-smi 显示的driver api为cuda12.0,此时nvcc --version 显示的runtime api为cuda11.7,这样不会有问题,driver api大于runtime api。
torch.cuda.is_available为False的一种可能_第1张图片
torch.cuda.is_available为False的一种可能_第2张图片

conda 和 pip的区别

pytorch官网下面有conda和pip的安装方式,在我无数次使用conda安装卸载pytorch后,决定使用pip来卸载安装,神奇的是问题解决了。
具体原因可能是跟conda和pip的下载位置不同的关系,不清楚具体原理,但在使用conda卸载安装不管用时可以试试pip
torch.cuda.is_available为False的一种可能_第3张图片

你可能感兴趣的:(pytorch,python,深度学习)