前言(碎碎念)

想当年在实验室就在自己电脑(双系统)和服务器上都搭建这个环境(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安装)

两种安装方式

用deb方式安装CUDA,会附带安装显卡驱动,默认会安装(本文)用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安装

页面搜索 搜索引擎搜cudnn,官网的首页如下图,链接cudnn页面 接下来需要你登录(没有账号的话需要你注册一个NVIDIA的账号,这个我就爱莫能助了)之后,点同意,并下载 文档页面点开后,继续点安装向导。这里给出安装向导页面的链接cudnn说明页面 安装命令 因为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 key sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/

C.刷新元数据 sudo apt-get update

D.分别安装三个库 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

再次说明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.2

sudo apt-get install libcudnn8-dev=8.9.7.29-1+cuda12.2

sudo apt-get install libcudnn8-samples=8.9.7.29-1+cuda12.2

验证 借用网上的信息,如何检测版本信息,旧cudnn版本用下面第1个,新的用第2个 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

cat /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 2

cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 5 MAJOR

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。