前言(碎碎念)
想当年在实验室就在自己电脑(双系统)和服务器上都搭建这个环境(Ubuntu18.04+conda+pycharm+cuda+cudnn完整流程)
还写了操作文档,主要遇到了太多问题(比如NVIDIA驱动安装后黑屏问题,真是想用linux之父的话来说一句)
现在再次遇到重装服务器这个事情,又遇到了一些新坑(好多东西变了)。这次就写在这里吧(碎碎念完结)
一、CUDA版本选择(授予以鱼不如授人以渔)
- 打开英伟达的cuda文档页面 cuda文档页面
- 点这里的Release Notes(cuda toolkit页面)
- 这里查看信息
- 兼容性CUDA有最小支持的驱动版本的要求,高版本的CUDA不支持低版本的驱动;驱动版本向后兼容,即驱动可以升级而安装的CUDA不用升级。
- 当前支持的cuda版本查询(需要安装对应的显卡驱动)
nvidia-smi
这里可以看到当前的驱动版本和cuda支持的版本(上图的上部)
PS:这里指当前驱动最大支持的cuda版本,可以选择升级驱动或者安装的cuda版本低于这个
- 驱动安装(小白提示)另外,使用这个命令的前提条件是已经安装了NVIDIA的显卡驱动了PS:Ubuntu可通过软件和更新附加驱动选项,一键式安装驱动(如下图)
二、CUDA安装(本文是deb安装)
- 两种安装方式1. 用deb方式安装CUDA,会附带安装显卡驱动,默认会安装(本文)2. 用run方式安装CUDA,会附带安装显卡驱动,可选不安装(出门搜其他人的文章哟)
- 进入页面Release Notes(文档页面)这次点linux安装指南页面有很细节说明,这里就不赘述了,乖宝宝们自己去看哟(跳转链接如下)下载页面 cuda下载页面
- 具体选项然后页面下方会刷出具体的命令,一行一行按照它的命令执行操作就好
- 验证安装结果
nvcc -V
如果没有出现就是没有配置cuda的环境变量,输入下面的命令sudo nano ~/.bashrc
在末尾加上以下两行路径信息export PATH="/usr/local/{cuda-12.0}/bin:$PATH"export LD_LIBRARY_PATH="/usr/local/{cuda-12.0}/lib64:$LD_LIBRARY_PATH"
PS:{}是你自己的路径,不一定是cuda-12.0 查看具体的版本的命令如下cd /usr/local/ls
路径信息无误后,ctrl+x保存并退出,此时需要刷新source ~/.bashrc nvcc -V
### 三、CUDNN安装1. 页面搜索搜索引擎搜cudnn,官网的首页如下图,链接cudnn页面接下来需要你登录(没有账号的话需要你注册一个NVIDIA的账号,这个我就爱莫能助了)之后,点同意,并下载文档页面点开后,继续点安装向导。这里给出安装向导页面的链接cudnn说明页面2. 安装命令因为cuda等已经搞定了,这里直接跳转到对应的安装方式这里。总共是7步,这里就没有截全了,对应的命令放下面了A.先进入cudnn的deb下载路径($distro 为ubuntu1804、ubuntu2004, ubuntu2204等),tab直接自动补全,输入下面命令sudo dpkg -i cudnn-local-repo-$distro-8.x.x.x_1.0-1_amd64.deb
B.导入CUDA GPG keysudocp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
C.刷新元数据sudoapt-get update
D.分别安装三个库sudoapt-getinstalllibcudnn8=8.x.x.x-1+cudaX.Ysudoapt-getinstall libcudnn8-dev=8.x.x.x-1+cudaX.Ysudoapt-getinstall libcudnn8-samples=8.x.x.x-1+cudaX.Y
再次说明x.x.x是对应下载的cudnn版本信息,X.Y是 cuda的大版本和小版本信息上面步骤D,可能会发生错误,说找不到,解决方法如下进入/var对应的cudnn-local-repo-ubuntu2004-8.x.x.x文件中使用dpkg命名安装上图路径的三个包或者修改4中的cuda版本,我这里是12.0但包实际的版本是12.2.修改命令后就可以了sudo apt-get install libcudnn8=8.9.7.29-1+cuda12.2sudo apt-get install libcudnn8-dev=8.9.7.29-1+cuda12.2sudo apt-get install libcudnn8-samples=8.9.7.29-1+cuda12.2
3. 验证借用网上的信息,如何检测版本信息,旧cudnn版本用下面第1个,新的用第2个cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
不过新的已经可能上面的路径中了,解决方法如下,输入下面的命令,找到真实的位置where is cudnn_version.h
然后再根据这个路径信息输入下面任意两个命令cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 5 MAJOR
版权归原作者 涪狸先生 所有, 如有侵权,请联系我们删除。