查看ubuntu版本

(base) user@ubuntu:~$ cat /etc/issue
Ubuntu 16.04.7 LTS \n \l

查看conda环境

(base) user@ubuntu:~$ conda info --env
# conda environments:
#
base                  *  /home/user/anaconda3
d2l                      /home/user/anaconda3/envs/d2l
python2                  /home/user/anaconda3/envs/python2
yolov5                   /home/user/anaconda3/envs/yolov5

新建python虚拟环境,方便版本管理

conda create -n yolov5 python==3.7

查看cuda版本,三种办法

①:

(base) user@ubuntu:~$ nvidia-smi
Tue Mar  8 14:24:19 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| 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  Tesla V100-PCIE...  Off  | 00000000:65:00.0 Off |                    0 |
| N/A   41C    P0    35W / 250W |      0MiB / 32510MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

②:

(base) user@ubuntu:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:17_PST_2019
Cuda compilation tools, release 10.1, V10.1.105

③:

(base) user@ubuntu:~$ cat /usr/local/cuda/version.txt
CUDA Version 10.1.105

细心地同学会发现,有时①查看的cuda版本和②、③查出来的会不同,这是什么原因呢。原来cuda的API分为两种类型,一种是驱动(driver)API,另一种是运行(runtime)API。而我们通过nvidia-smi查看的cuda版本正是驱动API版本。通过nvcc -V 和 cat /usr/local/cuda/version.txt查看的一般是运行API,因此两者存在出入是正常的。

但是我们运行程序时所使用的是运行API,我们时常讲的cuda,cudnn,tensorflow-gpu版本之间的对应,也是针对运行API来讲的,也就是后两者查看的版本。

安装cudnn

可在cuDNN的官网上下载对应版本的cuDNN安装包,官网网址:cuDNN Archive

cuDNN的安装方法有两种,需要下载不同的安装包

一、Tar File形式的安装

.tgz 文件安装

该方法仅需下载一个安装包,如图所示

image-20220308151135873

下载完毕后,进入文件所在位置,解压安装包(其中 xxx 为安装包的补充名称)

tar -xzvf cudnn-xxx.tgz

执行安装,其实就是拷贝头文件和库文件并给予权限

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

二、Debian File形式的安装

.deb 文件安装

该方法需要下载三个安装包,如下图所示

image-20220308151511657

分别对这三个安装包执行以下命令进行安装,文件名请自行修改,要注意,必须按以下顺序进行安装,否则会因依赖问题而报错

sudo dpkg -i libcudnn7_7.6.4.38-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.6.4.38-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.6.4.38-1+cuda9.0_amd64.deb

三、验证cudnn是否安装成功

当选择Debian File进行安装时会在/usr/src/cudnn_samples_v7有一些cudnn的例子

编译mnistCUDNN sample进行验证

cp -r /usr/src/cudnn_samples_v7/ $HOME
cd  $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN