(已解决)Pytorch/Tensorflow检查能否调用GPU及CUDA、Nvidia驱动和cuDNN的卸载重装

当CUDA版本不匹配时,Tensorflow 1.14.0无法使用GPU。本文详细介绍了如何卸载CUDA 10.2,重装CUDA 10.0和Nvidia 410.48驱动,以及cuDNN,确保Tensorflow和Pytorch正确使用GPU。通过检查命令确认GPU已被成功启用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CUDA 版本不对导致 Pytorch / Tensorflow 无法调用GPU的问题

系统:Ubuntu 16.04
Tensorflow版本: 1.14.0
原 CUDA:10.2 (Nvidia 440.几忘了)
新 CUDA:10.0 (Nvidia 410.48)

之前成功装好了 CUDA 10.2、Nvidia驱动及 cuDNN 7.6.5(参见这篇博客),并按照cuDNN官网测试安装是否成功的方法跑 mnist 测试也通过了。然而跑一个基于Tensorflow 1.14.0的深度学习代码时,发现训练速度特别慢,看起来GPU没有成功调用。

检查 Tensorflow 能否调用 GPU
终端输入:

python 
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()

检查 Pytorch 能否调用 GPU
终端输入:

python 
>>> import torch
>>> torch.cuda.is_available()

如果最后显示 True 就证明 CUDA 版本没问题,False 就是用不了GPU,CUDA 版本不对。

Tensorflow 各版本与支持的 CUDA、cuDNN、gcc和 python 版本关系:官网.
Pytorch 各版本与支持的 CUDA 版本关系:官网
才知道 tensorflow 1.14.0 不支持 CUDA 10.2,得卸载CUDA 10.2,重装CUDA 10.0及对应的nvidia驱动还有cuDNN了。

CUDA、Nvidia驱动 和 cuDNN 的卸载重装

网上有很多人说CUDA卸载不干净之类的,事实上没有那么麻烦,按照以下方法(参考官网文档&github)即可成功卸载重装不同版本CUDA。此外,由于 cuda 驱动和 nvidia 驱动千丝万缕的关系,基本上两者要一起卸载、一起安装。

1、卸载 CUDA 和 cuDNN:

卸载 CUDA 10.2 :

cd /usr/local/cuda-10.2/bin/
sudo ./cuda-uninstaller

命令行里会提示让你选择卸载哪些,全按 Enter 选上。即选项前面都变成 [X] 而不是 [ ]。
等待卸载结束,你会发现 /usr/local/ 里 cuda 文件夹没了,cuda-10.2 文件夹还在但是是空的,可以直接删了。

卸载CUDA 10.0 :

cd /usr/local/cuda-10.0/bin/
sudo ./uninstall_cuda_10.0.pl
2、卸载 Nvidia 驱动:
sudo /usr/bin/nvidia-uninstall
3、重新装 CUDA 10.0(及对应的 nvidia 410.48驱动)和 cuDNN:

(对应 Tensorflow 1.14.0)
进入CUDA download 界面,选择 legacy releases(旧版本), 找到 CUDA 10.0, 下载 runfile (local)
按照这篇博客安装即可,把其中 CUDA 10.2文件换成新下载的10.0的文件。注意: export 环境变量那两句也要把 10.2 改成 10.0。cuDNN也找到对应 CUDA 10.0版本的重新装一遍,过程一样。

4、最后再测试 tensorflow 是否能使用 GPU:
python
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()

最后返回: True

重装完毕。

重新跑我之前的训练程序,速度快了60倍,GPU占用率也变成 68%了,搞定。

[2022.2.11更新]
若仍然返回False, 另一种检查办法: 跑CUDNN的测试程序

cd ~/cudnn_samples_v7//mnistCUDNN/
make clean && make
./mnistCUDNN

若出现报错 libcudart.so.10.0: cannot open shared object file: No such file, 解决方法:
运行:

sudo ldconfig /usr/local/cuda-10.0/lib64

即可解决.

[2020.10.2更新]
若重启电脑后Ubuntu出现循环登录,则:
第一步,卸载NVIDIA驱动:
ctrl + alt + F1进入命令行:

sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove
sudo nvidia-uninstall

一路选OK.卸载完 sudo reboot 重启可进入系统。
第二步,重装CUDA和相应NVIDIA驱动: 这篇博客
ctrl + alt + F1进入命令行,sudo service lightdm stop,进入cuda runfile在的文件夹,sudo sh ./cuda- ...... .run 安装CUDA,一路按默认的选就行。装完运行 sudo service lightdm start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值