在学习神经网络的过程中,部署部分永远是令人头大的过程,尤其是相关环境的配置版本改来改去的繁琐步骤。CUDA作为英伟达为深度学习推出的一款运算平台备受大部分神经网络的学习者和开发人员的青睐,更是适配了NX等英伟达自己推出的边缘计算平台。本教程旨在方便大量初学者快速上手CUDA及其库的安装,涉及内容大部分来自作者本人的多次安装经历,无更加深度的讨论,小白可放心食用。
为防止在安装过程中出错,在安装之前首先要确认你的平台满足以下条件:
已安装英伟达对电脑显卡支持的相关驱动程序(使用runfile会随cuda一起安装)
ubuntu已经切换到了独显模式
ubuntu中已经将之前安装的CUDA及cudnn卸载干净
卸载cuda的方法
sudo apt-get remove cuda
sudo apt autoremove
sudo apt-get remove cuda*
#删除对应的cuda版本文件夹
cd /usr/local/
sudo rm -r cuda-****
#查看剩余的残留文件
sudo dpkg -l |grep cuda
#卸载对应的残留文件
sudo dpkg -P cuda-*******
#如果还有未卸载的执行下面命令
sudo dpkg -P 残留文件名
#TAB键可以快速补全文件名
卸载cudnn的方法
#查看cudnn包
sudo dpkg -l | grep cudnn
#卸载
sudo dpkg -r 包名称
#cudnn-local-repo-ubuntu2004-8.6.0.163要用purge命令删除
sudo apt-get purge cudnn-local-repo-ubuntu2004-8.6.0.163
为了防止你本人头脑发昏安装之后后悔莫及,在安装之前请务必确认以下几件事:
a. 请务必确认你的显卡支持和兼容的CUDA版本
查看显卡支持的CUDA版本
在终端输入以下命令
nvidia-smi
b. 请确认你所需的CUDA和cudnn版本的对应关系
c. 如果你正在参考或复现他人的神经网络,请确认其是否指定了相关文件的版本
d. 如果你的网络后面涉及tensorRT等内容,请确认tensorRT和对应文件的版本关系
CSDN相关推荐:https://blog.csdn.net/LEE18254290736/article/details/89319142
如果你已经完成了上述步骤,那么你就已经准备完毕了。
演示系统:ubuntu20.04
演示版本:CUDA11.6
官网链接:CUDA Toolkit Archive | NVIDIA Developer (全版本)
进入官网后选择你要下载的CUDA版本,选中操作系统和相关版本后会得到三个下载方式,需要注意的是由于受发布时间影响可能各个版本略有不同。本教程从runfile开始演示安装过程。
该类安装是安装指定版本最稳妥的方案,不像其他方案可能会在某些步骤直接更新成最新版本。在本次安装环境下实装不需要关闭图形化界面,直接在终端运行即可,但该方案弊端是卸载较为麻烦。
在选中runfile下翻后会得到如下的安装代码
wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run
sudo sh cuda_11.6.2_510.47.03_linux.run
执行第一句代码进入下载界面:
等待下载完成后执行第二句指令进入如下界面,输入accept即可:
完成后进入如下菜单界面,一般全部安装或根据需要选择,操作方式在最下面:
选择完毕后选中install并按下enter等待安装结束即可。
runfile安装需要自己配置环境变量,在终端按下面步骤操作即可:
sudo gedit ~/.bashrc
#在弹出的文件下方添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#保存后重新加载
source ~/.bashrc
该类安装非常的便捷且方便卸载,但是作者多次尝试经常安装都被自动更新版本,不介意的话可以尝试该安装方式。
在选中相关选项下翻后会得到如下的安装代码,在终端慢慢执行即可。
local版:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
network版:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda
演示系统:ubuntu20.04
演示版本:cudnn8.6.0
官网链接:cuDNN Archive | NVIDIA Developer(全版本)
在官网下载链接后面都表明了支持的CUDA大类版本。值得一提的是cudnn下载需要登录英伟达账号和身份认证,首次进网站的时候可能显示下面的内容,直接去注册一个账号即可。
选择tar文件并下载相应的tar文件:
转到下载文件所在的目录进入终端解压该文件并按序执行相关代码:
tar -xvf cudnn-linux-*****
#TAB键可以快速补全文件名
# 复制cudnn相关文件到cuda目录下
sudo cp cuda/include/* /usr/local/cuda/include/
sudo cp cuda/lib64/* /usr/local/cuda/lib64/
# 添加可执行权限
sudo chmod +x /usr/local/cuda/include/cudnn.h
sudo chmod +x /usr/local/cuda/lib64/libcudnn*
#${OS}为ubuneu系统的版本,8.x.x.x和X.Y为cudnn和cuda的版本
#作者本人没有使用该方案仅供参考,建议直接查看官方文档
sudo dpkg -i cudnn-local-repo-${OS}-8.x.x.x_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn8-dev=8.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn8-samples=8.x.x.x-1+cudaX.Y
Q:在跑sudo sh cuda_11.6.2_510.47.03_linux.run时提示空间不足请确保/tmp有足够空间
A:打开ubuntu资源管理查看根目录的空间剩余,一般来说就是空间不够导致的,建议手动清理一下。注意,直接中途退出安装程序并不会清理解压和已安装的文件,他们仍会占用空间,重启系统就可以解决。是不是很方便。
本文的编写基于作者来来回回从里到外从外到里从里到里从外到外重新安装了6、7次cuda、cudnn、tensorRT的经验所得。作者也只是一个在校大学牲,也是作者第一次发表文章,难免有所疏漏,如有问题还请读者指正。如果你觉得这篇文章对你有所帮助,不妨点一个免费的赞。