The NVIDIA driver on your system is too old
问题报错:
The NVIDIA driver on your system is too old (found version 8000).
Please update your GPU driver by downloading and installing a new
version from the URL
按照报错是说你的显卡驱动太旧,请更新你的GPU驱动。
本质是pyorch和cuda版本不兼容的问题,比如你用了比较新的1.10版本的pytorch。由于cuda更换相对麻烦,所有更换适配pytorch的版本就可以。
检查当前torch版本
python
import torch
print(torch.__version__)
可以检查三个点:
1 显卡驱动
2 cuda版本(使用GPU进行计算的计算框架)
3 pytorch版本和torchvision版本
以上版本是要依次适配前者的版本。
检查驱动和cuda适配
命令行输入:nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.56 Driver Version: 418.56 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX TIT... Off | 00000000:06:00.0 On | N/A |
| 22% 40C P8 16W / 250W | 132MiB / 12208MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1300 G /usr/lib/xorg/Xorg 84MiB |
| 0 1766 G compiz 44MiB |
+-----------------------------------------------------------------------------+
第一行的NVIDIA-SMI 418.56 的418.56表示驱动版本,后面的CUDA Version: 10.1 表示cuda版本。
使用以下检查:(参考的https://blog.csdn.net/kellyroslyn/article/details/109668001)
第二竖列就是驱动版本,第一列表示适配的cuda版本。当前是可以的。
查找适配的torch和torchvision
接下来看pytorch。找适配cuda10.1的torch和torchvision。
由于这个版本比较老,在官网首页https://pytorch.org/get-started/locally/已经找不到这么老的cuda版本了。
可以在这个官网找以往版本:(参考的https://blog.csdn.net/JohnJim0/article/details/108688964)
https://download.pytorch.org/whl/torch_stable.html
举个例子其中有一个是:
cu101/torch-1.8.1%2Bcu101-cp39-cp39-linux_x86_64.whl
cu101 表示cuda版本是10.1
torch-1.8.1 表示适配的torch版本
同样方法可以找到适配的最高版本的torchvision。
然后可以使用这个形式的命令安装:
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html
按照自己的版本用以上命令安装,其中后面的网址就是我上面提到的网址。
测试:
import torch
from torchvision.models.resnet import *
from logs import get_logger
import optparse
import datetime
parser = optparse.OptionParser()
parser.add_option('-g', '--logmsg', action="store", dest="logmsg", help="root directory", default="Recursion-pytorch")
options, args = parser.parse_args()
# Print info about environments
logger = get_logger(options.logmsg, 'INFO') # noqa
logger.info('Cuda set up : time {}'.format(datetime.datetime.now().time()))
device = torch.device('cuda')
logger.info('Device : {}'.format(torch.cuda.get_device_name(0)))
logger.info('Cuda available : {}'.format(torch.cuda.is_available()))
n_gpu = torch.cuda.device_count()
logger.info('Cuda n_gpus : {}'.format(n_gpu))
输出:
2021-12-01 21:52:16,623 - Recursion-pytorch - INFO - Cuda set up : time 21:52:16.623750
2021-12-01 21:52:16,640 - Recursion-pytorch - INFO - Device : GeForce GTX TITAN X
2021-12-01 21:52:16,640 - Recursion-pytorch - INFO - Cuda available : True
2021-12-01 21:52:16,640 - Recursion-pytorch - INFO - Cuda n_gpus : 1