第一步:检查/安装NVIDIA驱动
首先打开终端打开终端输入nvidia-smi测试是否安装了驱动,如果成功驱动,则会显示下图这样的信息,这里可以看到我的驱动的版本是535,cuda最高支持12.2。
如果没有正常显示,则需要首先安装驱动,最简单的方法是点开ubuntu自带的 Software & Updates,点进 Additional Drivers里,选一个新一点的驱动,然后点击 Apply Changes应用(如果应用失败,试试选择其他的,比如这里我们选择535版本的),应用完成后一般需要重启电脑(直接reboot),重新开机后终端输入nvidia-smi正常即安装完毕。
第二步:安装CUDA
当然,你先检查一下是否有cuda,终端输入nvcc- V,如果正常显示版本等信息,则已经安装了不需要再安装,如果提示要apt install,则需要我们来安装对应版本的cuda。
点开这个英伟达网站的链接CUDA Toolkit Archive | NVIDIA Developer,找到你之前看到的最高支持的cuda版本之下的cuda toolkit,比如我最高支持12.2,那么我可以下载12.2及以下的cuda,这里我们就选择12.2的。
然后进入到这个页面选择适配你的配置,依次把下面的两行代码复制到终端,其实这里建议看一下那个驱动版本和自己的驱动是否一样,比如这里是535,和我们之前安装的驱动是一样的就ok。
在执行run文件后等一阵子会出现一个选择界面,注意这里需要把driver勾选掉,不需要勾选安装它,因为我们之前已经安装过,其他的就继续就好,再等一阵子就安装好了,安装成功会提示这个:
之后还需要添加一下环境变量,首先输入:
sudo vim ~/.bashrc
然后在最后一行输入(注意,这里的cuda-12.2应输入你自己下载的cuda版本,你安装的是12.1则把下面代码里的cuda-12.2改为cuda-12.1就行)
export PATH="/usr/local/cuda-12.2/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH"
保存退出,然后在终端source ~/.bashrc一下,最后输入nvcc -V,显示版本号等信息就安装成功了。
对了,这里我的电脑出现一个问题是没有软连接,就是没有 /usr/local/cuda 这个文件夹,但是有 /usr/local/cuda-12.2 文件夹,需要手动创建一个软连接,不然后面会有莫名的no such file错误,终端命令如下,这里的cuda版本记得改成自己的:
sudo ln -s /usr/local/cuda-12.2 /usr/local/cuda
第三步:安装CUDNN
如果没有软连接的看一下上面记得先链接上,不然你没有 /usr/local/cuda 这个文件夹。
记得我们之前的最高支持的cuda版本(我的是12.2),进入官网cuDNN Archive,找你对应的版本,下载deb那个,比如我的:
下载好了后进入到你下载的目录下,执行命令安装,这里的版本号和自己的对应好。
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.6.50_1.0-1_amd64.deb
然后中间会弹出一个提示,需要你输入命令,跟着输入就好
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.6.50/cudnn-local-1998375D-keyring.gpg /usr/share/keyrings/
若没有显示提示命令则执行通用命令:
sudo cp /var/cudnn-local-*/cudnn-*-keyring.gpg /usr/share/keyrings/
然后进入到文件夹中,依次把三个包都安装好就行,命令如下:
cd /var/cudnn-local-repo-ubuntu2204-8.9.6.50/
sudo dpkg -i libcudnn8_8.9.6.50-1+cuda12.2_amd64.deb
sudo dpkg -i libcudnn8-dev_8.9.6.50-1+cuda12.2_amd64.deb
sudo dpkg -i libcudnn8-samples_8.9.6.50-1+cuda12.2_amd64.deb
这样就安装完成了,如果想要验证是否安装成功的话,可以执行如下命令,这会把官方sample的文件移到你的home目录下,然后进行编译,最后运行。
cd /usr/src/cudnn_samples_v8
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd ~/cudnn_samples_v8/mnistCUDNN/
make clean && make
./mnistCUDNN
最后返回 Test passed! 则证明安装成功。若出现其他错误请参考下官方文档Installing cuDNN on Linux — NVIDIA cuDNN v9.1.1 documentation。