本文记录下如何在Ubuntu20.04系统中安装CUDA和cuDNN。
这里简要介绍下CUDA和cuDNN分别是什么。CUDA 是 NVIDIA 发明的一种并行计算平台和编程模型。它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能;cuDNN(深度神经网络库)是GPU加速的用于深度神经网络的原语库,即用来加速神经网络的推理。cuDNN相当于是一个编译好的功能包,对CUDA进行辅助,等会儿安装过程中,我们会有所体现。
CUDA的安装
官网下载点击,这个网页打开是,最新版的CUDA,我们可以看一下,比如我这里是CUDA12.0,这里如果大家是跑实验的话,不建议装最新版本的 CUDA,大家可以上Pytorch或Tensorflow的官网看看,目前这些主流的深度学习框架支持的CUDA版本,一般都是早一些的版本,比如这里我给出Pytorch官网的推荐
可以看出PyTorch目前支持的CUDA版本为 CUDA11.6 或 11.7,这个就要求我们在安装 CUDA时候,要装合适的版本,不然的话,会发现安装的高版本CUDA未必能找到合适的Torch版本,这个我测试了,我刚开始直接装的CUDA12,然后发现pytorch无法装GPU版的,只能安装 cpu版本,这个不是我们想要的,所以,推荐大家先安装低版本的 CUDA。
好了,有了以上的啰嗦,这里我们开始到 先前CUDA版本的下载页面,进行下载合适版本的 CUDA,这里我选择 CUDA11.6,网址点击打开
下载后,直接道对应的下载文件夹,输入命令,进行安装即可,输入该命令,大概需要等待一会儿,这里耐心等待就行
sudo sh cuda_11.6.0_510.39.01_linux.run
然后在下面的页面中,输入 accept ,在等待一会儿。
然后会弹出这个安装选择项,这里将第一个 Driver选项,直接点击空格键,取消安装,因为我们已经安装了 Nvidia 驱动了,如果您没安装,请参看该博文
然后到 install 进行安装即可,等待一会儿,
安装成功后,划线部分为安装目录
配置 CUDA ,注意安装CUDA后,会在您的 /usr/local/文件夹下多一个 /usr/local/cuda 的文件夹,该文件夹其实是 /usr/local/cuda11.6 文件夹的一个链接,两者本质上是相同的,所以配置的时候,可以直接按照 /usr/local/cuda 进行配置就行,会自动链接到 /usr/local/cuda11.6。接下来说下环境的配置。
【再说一遍】:cuda安装目录为/usr/local/cuda-xxx,xxx为版本号,同时,cuda还会建立一个/usr/local/cuda同步链接,所以可以直接将该路径添加至环境变量,之后更换cuda版本,也不需要修改环境变量。
打开命令框,输入根环境的文件:
vi ~/.bashrc
在该文件末尾,加上下面的内容(注:如果您发现在编辑过程中,退格键和上下左右键有问题,可以参考该博文)
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
添加后,保存文件,然后激活该配置
source ~/.bashrc
然后在命令框中,输入 nvcc -V ,即可看到自己的cuda版本
如果版本选错,可以进行CUDA的卸载
如果您安装后,发现CUDA的版本不太对,这时候需要将已安装的CUDA卸载,这个卸载非常简单,在您下载的 /usr/local/cuda11.6/bin 文件夹,有个 cuda-uninstaller 执行文件,直接运行命令,等待即可看到已经卸载干净了,然后重新安装另外版本的 CUDA即可:
sudo ./cuda-uninstaller
cuDNN的安装
下载链接
这个网址点进去后,会发现是一个登陆页面,这个需要您登陆下, 貌似可以邮箱也可以微信,需要您注册个账号,登录下就可以下载。
可以微信进行登录
登陆成功,直接点击 该链接点击
https://developer.nvidia.com/rdp/cudnn-download
下载完后,需要对 cuDNN 进行解压,解压后,就可以将里面改 include 和 lib 文件复制到 cuda 了,网上说有的版本,解压后会有个 cuda 文件夹,我下载的没有看到有 cuda 文件夹,还是原来 cuDNN 解压后的文件夹,然后里面是有 include 和 lib 文件夹的,按照下面的命令,将其复制到 cuda 的文件夹即可
sudo cp cuDnn***/include/cudnn*.h /usr/local/cuda/include
sudo cp cuDnn***/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
然后输入命令
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
这就成功了。