1、安装CUDA

1、下载

https://developer.nvidia.com/cuda-downloads

(1)大概是下面这个样子,按照自己的平台来选,然后下载那个.run文件就行。
在这里插入图片描述

注意,这里有几个包,都下下来。准备工作已经做完,这时候,你已经知道了你需要的驱动信息并且下载了几个cuda的run文件。
(2)你自己可以建个文件夹,然后在文件夹中输入上命令下载:

sudo wget http://developer.nload.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run$:sudo 

2、安装

直接安装cuda,进到下载好的cuda的run文件目录运行如下指令:sudo sh cuda~~~.run

在这里插入图片描述

注意:

(1)执行后会有一些提示让你确认,在第3个提示的地方,有个让你选择是否安装驱动时(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?),选择否:因为前面我们已经安装了新的驱动,所以这里不要选择安装。
在desktop版本下会出现如下界面:
在这里插入图片描述同样地,由于我之前已经安装了Nvidia的显卡驱动,这里不安装driver,那么只需要移动到Driver,按enter键,将"[]"中的X去掉即是不选择.然后在Install。

(2)其余的都直接默认或者选择是即可。

然后安装的时候会比你预想的要快很多。。。安装成功之后,会出来类似于下面形式的提示:
在这里插入图片描述

然后继续把接下来的几个补丁也安装上,安装路径使用默认的路径就行了。

sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run

到这里,你已经安装成功CUDA了,最后,还要多配置一下环境变量:

sudo vim ~/.bashrc 来编辑.bashrc配置文件,到文件最后,写入下面几句话(直接复制就行)

export  PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

最后使其生效:

source ~/.bashrc

好了,重启一下

sudo reboot

现在你已经重启了机子了,要是没有出现很多人遇到的在登录界面进不去的情况的话,就恭喜你了。来个自带的例子测一下。

  cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
  sudo make
   ./deviceQuery

出现了下面的你的GPU的一些信息的话,就是真的安装成功了。
在这里插入图片描述

到这里,CUDA就安装成功了,其实不算是很难,注意一些情况就行了

3、查看cuda版本

nvcc --version 或者 nvcc -V

或者

cat /usr/local/cuda/version.txt

4、查看GPU使用情况

watch -n 1 nvidia-smi

nvcc -v & nvidia-smi 的区别

CUDA有两种API:
一个是驱动API(Driver Version),依赖NVIDIA驱动,由nvidia-smi查看,nvidia-smi 的结果除了有GPU驱动版本型号,还有CUDA Driver API的型号;
另一个是运行API(Runtime Version)是软件运行所需要的。
一般驱动API版本>=运行API版本即可。
遇到两者不一致问题,需要确定版本是否兼容。如果不兼容,解决方案是更改Runtime API,具体方法是安装对应Driver API版本的cuda.。

2、安装cudnn

1、下载

cuDNN深度学习加速的一些库。
下载:https://developer.nvidia.com/rdp/cudnn-download
可能要自己注册一下,之后下载其中的cuDNN v5.1 Library for Linux,下图中的第三个就是了。
在这里插入图片描述

下载的时候发现是一个压缩包,下完之后解压
解压出来是一个cuda文件夹,进去有两个文件夹,如下图
在这里插入图片描述或者指令解压:

tar -xzvf cudnn-10.1-linux-x64-v7.6.3.30.tgz

2、安装

(提示:接下来的步骤命令直接复制就行,后面有讲解,复制方便一些)
下载完cudnn5.0之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ #复制头文件

再将cd进入lib64目录下的动态文件进行复制和链接:

sudo cp cuda/lib64/lib* /usr/local/cuda/lib64/ #复制动态链接库
 cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

执行完之后,cuDNN算是安装完成了。

可能问题:

/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 is not a symbolic link

/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link
解决方法
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.0.2 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.0.2 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.0.2 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.0.2 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.0.2 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.0.2 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8.0.2 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 && \
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 && \
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 && \
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 && \
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 && \
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 && \
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so.8 && \
sudo ln -sf /usr/lib/x86_64-linux-gnu/libcuda.so.450.66 /usr/lib/x86_64-linux-gnu/libcuda.so
ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 && \
ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 && \
ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 && \
ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 && \
ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 && \
ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 && \
ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so.8.0.3 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so.8

ubuntu终端一次多条命令方法和区别
1.每个命令之间用;隔开:各个命令都会执行,但不保证每个命令都执行成功。
2.每个命令之间用&&隔开:若前面的命令执行成功,才会去执行后面的命令。保证所有的命令执行完毕后,执行过程都是成功的。
3.每个命令之间用||隔开:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。

安装剩下的三个.deb文件:

#Install the runtime library, for example:
sudo dpkg -i libcudnn7_7.6.3.30-1+cuda10.1_amd64.deb
#Install the developer library, for example:
sudo dpkg -i libcudnn7-dev_7.6.3.30-1+cuda10.1_amd64.deb
#Install the code samples and the cuDNN Library User Guide, for example:
sudo dpkg -i libcudnn7-doc_7.6.3.30-1+cuda10.1_amd64.deb

3、查看版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

4、实例测试

#Copy the cuDNN sample to a writable path.
cp -r /usr/src/cudnn_samples_v7/ $HOME

#Go to the writable path.
cd  $HOME/cudnn_samples_v7/mnistCUDNN

#Compile the mnistCUDNN sample.
make clean && make

#Run the mnistCUDNN sample.
./mnistCUDNN

If cuDNN is properly installed and running on your Linux system, you will see a message similar to the following:
Test passed!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐