原文链接: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脚本本地安装,以保证稳定性。
#wget下载,不同环境的run文件不同wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
#执行安装,同意协议sudosh 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默认安装在了/usr/local/cuda-11.8/bin
#添加cuda到用户环境exportPATH=$PATH:/usr/local/cuda-11.8/bin
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
cudnn下载安装
官方引导安装方法
在cudnn中先找到找到对应版本下载
可以在兼容列表中查看cudnn、cuda、驱动的兼容性
sudoapt-getinstall zlib1g #安装依赖sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb #安装cudnnsudocp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-8AE81B24-keyring.gpg /usr/share/keyrings/ #添加共享钥匙,版本8.9.7.29不一定相同sudoapt-get update
查看安装位置信息
dpkg-query -L cudnn-local-repo-ubuntu2204-8.9.7.29
安装deb后会在/var/cudnn文件夹可以看到3个deb:libcudnn,dev,samples,将其都安装完成,其中samples就是官方提供的示例程序
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用于模块测试
sudoapt-getinstall-y libfreeimage3 libfreeimage-dev
cudnn测试
将/usr/src/cudnn-samples-v8复制到任意工作文件夹中,进入cudnn_samples_v8/mnistCUDNN,执行
cd cudnn_samples_v8/mnistCUDNN
make clean&make#确保编译无错
./mnistCUDNN
本文测试时出现了gcc12.3.0版本过高的错误,降回11.4.0后测试通过
卸载
#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 &sudorm-r /usr/share/keyrings/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-8AE81B24-keyring.gpg
sudoapt-get purge cudnn-local-repo-ubuntu2204-8.9.7.29
版权归原作者 aidroid 所有, 如有侵权,请联系我们删除。