admin管理员组

文章数量:1530085

属于深度学习常见的问题。
就是显卡版本,和代码CUDA版本和CUDNN的关系

重点

硬件环境:显卡版本 3090 + NVIDIA-Linux-x86_64-510.68.02

例如:我的驱动是510.85.02,驱动附带cuda=11.6

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.85.02    Driver Version: 510.85.02    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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  NVIDIA GeForce ...  Off  | 00000000:27:00.0  On |                  N/A |
|  0%   36C    P8    18W / 350W |    525MiB / 24576MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1097      G   /usr/lib/xorg/Xorg                 71MiB |
|    0   N/A  N/A      1723      G   /usr/lib/xorg/Xorg                155MiB |
|    0   N/A  N/A      1858      G   /usr/bin/gnome-shell               52MiB |
|    0   N/A  N/A      2500      G   ...890458150956446820,131072      227MiB |
+-----------------------------------------------------------------------------+

而我的torch版本是1.7.1+cu110

torch                              1.7.1+cu110
torchtext                          0.8.0
torchvision                        0.8.2
tornado                            6.1
tqdm                               4.63.1
traitlets                          4.3.2
transformers                       4.5.1

而我从nvidia下载的cuda版本是cuda_11.0_bu.TC445_37.28540450_0

:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0

很明显,显卡带的版本的CUDA==11.6;我从英伟达下载的cuda版本是cuda==11.0;使用的torch的版本是torch==1.7.1+cu110,也是cuda11.0

总结

安装显卡驱动,附带cuda 版本 [必须 >= ]nvidia下载的cuda版本 [必须 = ] torch的cuda版本。

更详细的

  1. 显卡安装驱动时候,显卡驱动附带的CUDA版本可以高出库几个版本,但是一定不能低于安装的库版本!!!高了没关系,因为显卡CUDA是可以向下兼容CUDA库的,但是不能向上兼容。
  2. NVIDIA下载CUDA库的版本号,必须和你使用的torch需要的cuda版本对应;

其他注意事项:

  1. cuda11是针对30系显卡,10.2等等都是30系以前的显卡,所以30系用不了11.x版本之前的cuda库。
  2. 但是20系或者10系显卡可以用高版本cuda。所以CUDA版本高了,旧卡也可以用
    比如:
    如果装了cuda10.2版本,你的30系显卡是用不了的,torch版本对应也没用。
    但是装了cuda11.8版本,你的30系和40系都可以用。

本文标签: 显卡关系CUDA