0%

linux下cuda安装-ubuntu22.04安装cuda11.8(cuda+cudnn)

原文链接:linux下cuda安装-ubuntu22.04安装cuda11.8(cuda+cudnn)

导言

cuda是nvidia提供在N卡上实现并行计算的工具包,cudnn是cuda的运行时库,通过cuda提供的内核函数能够高效的在N卡上跑密集计算程序。
本文在N卡机器上安装好了相应的驱动后,提供安装cuda和cudnn的详细步骤,并运行官方示例程序验证。

Nvidia驱动安装参考链接:linux下nvidia驱动安装-ubuntu22.04安装2060-notebook驱动

cuda下载和安装

官网找到对应环境的cuda(本文使用linux-x64-ubuntu22.04-runfile),最好使用run脚本本地安装,以保证稳定性。

1
2
3
4
5
#wget下载,不同环境的run文件不同
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
#执行安装,同意协议
sudo sh cuda_11.8.0_520.61.05_linux.run #注意选项中要取消nvidia-driver选择,因为驱动已经安装了

最好不要使用该脚本中的驱动安装方法,驱动、cuda和cudann的安装可能会存在冲突。本文中ubuntu默认gcc11.4,安装550以上的驱动要求gcc12.3.0,但是安装cuda11.8时又要求gcc11.4。

有些驱动会自动安装cuda,我们安装会报冲突错误,我们选择continue继续安装,覆盖更新原cuda即可

cuda默认安装在了/usr/local/cuda-11.8/bin

1
2
3
4
5
6
#添加cuda到用户环境
echo "
#cuda
export PATH=$PATH:/usr/local/cuda-11.8/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
" | tee -a /etc/profile ~/.bashrc

cudnn下载安装

官方引导安装方法

cudnn中先找到找到对应版本下载

可以在兼容列表中查看cudnn、cuda、驱动的兼容性

1
2
3
4
sudo apt-get install zlib1g #安装依赖
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb #安装cudnn
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-8AE81B24-keyring.gpg /usr/share/keyrings/ #添加共享钥匙,版本8.9.7.29不一定相同
sudo apt-get update

查看安装位置信息

1
dpkg-query -L cudnn-local-repo-ubuntu2204-8.9.7.29

安装deb后会在/var/cudnn文件夹可以看到3个deb:libcudnn,dev,samples,将其都安装完成,其中samples就是官方提供的示例程序

1
2
cd /var/cudnn-local-repo-ubuntu2204-8.9.7.29/
sudo dpkg -i libcudnn8_8.9.7.29-1+cuda11.8_amd64.deb libcudnn8-dev_8.9.7.29-1+cuda11.8_amd64.deb libcudnn8-samples_8.9.7.29-1+cuda11.8_amd64.deb

还需要安装 freeimage用于模块测试

1
sudo apt-get install -y libfreeimage3 libfreeimage-dev

cudnn测试

将/usr/src/cudnn-samples-v8复制到任意工作文件夹中,进入cudnn_samples_v8/mnistCUDNN,执行

1
2
3
cd cudnn_samples_v8/mnistCUDNN 
make clean& make #确保编译无错
./mnistCUDNN

本文测试时出现了gcc12.3.0版本过高的错误,降回11.4.0后测试通过

卸载

1
2
3
4
5
6
7
8
9
#cuda:
执行 cuda-uninstaller 在 /usr/local/cuda-11.8/bin 中

#cudnn:
检查
sudo dpkg -l | grep cudnn
卸载并删除gpg钥匙
sudo dpkg -r cudnn-local-repo-ubuntu2204-8.9.7.29 & sudo rm -r /usr/share/keyrings/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-8AE81B24-keyring.gpg
sudo apt-get purge cudnn-local-repo-ubuntu2204-8.9.7.29