Ubuntu20.04安装NVIDIA驱动+cuda+cudnn+anaconda+pytorch+pycharm经验

配置环境是深度学习的第一道门槛,也是必须迈过的一道门槛,之前一直在windows平台上跑pytorch,但很多包无法安装,必须要使用Linux。在经历了很多坑,无数次重装系统,崩溃,坚持后终于在Ubuntu20.04上成功安装pytorch,现将经验分享,希望能对初学者有一定参考。

一、安装Ubantu20.04系统

        在清华源上下载系统安装包,找一个空U盘,用第三方软件制作系统启动盘。注意一定是空U盘,制作启动盘时会将U盘格式化。

Index of /ubuntu-releases/20.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /ubuntu-releases/20.04/ | 清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/ 系统启动盘具体制作安装步骤网上一大把,在此就不赘述,也没有什么坑。唯一需要注意的是进bios时(我的机器开机一直按F11进,不同的机器可能不一样,需要查),如果找不到刚制作的U盘启动项,那就可能是你的系统盘没有做好,那就重做系统就好了。

二、安装NVIDIA驱动

       这一步是最坑的,耗时一天才解决问题。网上关于安装Ubantu系统的NVIDIA驱动的教程很多,我踩了无数次的坑,为解决这个问题至少重装了5次Ubantu20.04系统。主流的方法就是从NVIDIA官网下载适用你机器显卡的驱动,手动安装,但有个重要的步骤是需要禁用nouveau,如Ubuntu16.04安装英伟达(NVIDIA)显卡驱动详细图文教程_Let'sCode的博客-CSDN博客_ubuntu安装nvidia驱动

这位作者提到的,工作做的挺好。但我在禁用nouveau驱动后,重启一直黑屏,应该是进入不了图形界面。按ctrl+alt+F1~F6(F1~F6中具体哪一个按键根据机器的实际情况,多试几次),进入字符界面,始终安装不了NVIDIA的驱动,失败。我在安装中因为迷信手动安装,一直无法解决nouveau禁用后的开机问题,但一直想要征服这个问题至少重装了5遍Ubuntu20.04系统,最后终于妥协用了自动安装方法,才成功解决Ubantu20.04系统安装NVIDIA驱动的问题。步骤如下:

  • 打开终端输入:ubuntu-drivers devices,会输出显卡型号以及推荐安装的NVIDIA驱动。
  • 开始安装。如果同意安装推荐版本只需要终端输入:sudo ubuntu-drivers autoinstall,即可自动安装。
  • 重启。注意一定要重启系统,在终端输入:sudo reboot 即可。
  • 重启后在终端输入:nvidia-smi,即可显示驱动信息,证明驱动已经安装好。
  • 此处可以参考Ubuntu 18.04 安装 NVIDIA 显卡驱动 - 知乎
  • (注:当然网上很多关于禁用nouveau的方法都很棒,但我水平有限确实解决不了,上述将的方法过程是我能够实现的方法,并不是最好的解决方案。)

三、安装cuda

     cuda+cudnn与anaconda的安装顺序没有特殊要求,可以先安装cuda+cudnn也可以先安装anaconda,但cuda一定要在cudnn之前安装。对上步驱动安装好后在终端输入nvidia-smi在输出的表格右上角会有一个CUDA Version,我的输出是CUDA Version=11.4,刚入门的朋友可能会有疑问,表示这CUDA不是已经安装好了么?为什么还要再安装cuda,而且在配置pytorch的时候,还会安装cudatoolkit,这到底是什么关系了?其实有CUDA Version=11.4并不代表你安装好了,它只表示你安装的cuda版本不能超过11.4,而CUDA是NVIDIA开发的专用于NVIDIA显卡的安装包,cudatoolkit是facebook开发的,这么理解下就好了。进入正题,安装cuda步骤如下:

1、进入NVIDIA的官网下载cuda,CUDA Toolkit Archive | NVIDIA Developer,可以找到各种版本

cuda。关于版本号的选择,首先要满足前述的要求,其次因为我不知道pytorch安装时的cudatoolkit与nvidia的cuda版本号是不是需要一一对应,以防万一,我将两个版本号定为一样的。然后打开pytorch官网,推荐的是CUDA10.2和CUDA11.3两个版本,一开始我准备安装CUDA10.2,但在NVIDIA官网选择时发现CUDA10.2不支持Ubuntu20.4,就只好选择cuda11.3版本了。选择过程如下:

Ubuntu20.04安装NVIDIA驱动+cuda+cudnn+anaconda+pytorch+pycharm经验_第1张图片

 按照runfile(local)安装的方式简单,只需要在终端输入上述两条NVIDIA推荐的命令就好了,如果没有wget,就安装下。执行第二条命令后,在终端执行nvcc -V后没有输出的版本信息一般是gcc版本太高的问题,Ubuntu 20.04默认g++9版本太高,会导致CUDA无法安装,因此要先降低g++版本,需要添加gcc7才可安装cuda,终端输入命令安装gcc7:

apt-get install gcc-7 g++-7,即可

使用update-alternatives进行版本切换,输入以下命令:

 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100

 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50

我在实际输入第二条命令时始终报错找不到gcc-9这个文件夹,不用管了,反正上面的已经执行好降gcc了,再次运行上图中的第二条命令:sudo sh cudaXXXXXX.run 这个安装命令。

(注:我这个安装顺序是我的踩坑过程,还是推荐大家在安装过程中先执行降低g++版本,再按照Ubuntu推荐的命令安装)

     在执行sudo sh cudaXXXXXX.run这条命令的过程中,会跳出一些选择界面,首先是 Abort和continue,选择continue,然后输入accept后出现CUDA Installer,因为已经安装过NVIDIA的驱动了,而弹出的CUDA Installer 自带显卡驱动,所以这一步按空格去掉安装显卡驱动的选项(这一步很重要,可能会引起驱动冲突,导致最后pytorch配置完后,torch.cuda.is_available()=False),然后选择install,就好了。如果这一步安装过程中有什么错误,可能是gcc降版本没有处理好,实在不行最后重装了Ubuntu系统再重新来一遍,毕竟一些残存的安装文件新手不一定能完全卸载完。

  最后一步,配置环境变量:

   在终端输入:gedit ~/.bashrc命令打开文件,在文件结尾输入以下语句,保存。

export PATH=/usr/local/cuda-11.3/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(注意:CUDA版本号,如果是10.2就把11.3改为10.2就好了)

更新环境变量配置

source ~/.bashrc

至此cuda安装完成,输入nvcc -V命令查看cuda信息。如果没有输出,证明没有安装成功,对不起,对新入门来说最好重装系统,按上面的过程再来一遍。

在安装过程中Ubuntu 20.04 CUDA&cuDNN安装方法_ashome123的博客-CSDN博客_ubuntu20安装cuda以及

Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_哈希Map的博客-CSDN博客_ubuntu安装cudnn两篇文章给了很大帮助。

踩坑:我第一遍安装cuda时不是选择的runfile(local)安装,选的是deb(local)安装:

Ubuntu20.04安装NVIDIA驱动+cuda+cudnn+anaconda+pytorch+pycharm经验_第2张图片

 会发现推荐的安装命令很多,另外在执行的过程中,会出现这样的错误:

E: Sub-process /usr/bin/dpkg returned an error code (1) ,后来我按照E: Sub-process /usr/bin/dpkg returned an error code (1) 出错解决方案_Linux教程_Linux公社-Linux系统门户网

所讲的方法解决了这个问题,成功安装了cuda,但上述方法安装过程中仍然会自动安装nvidia驱动,不知道会不会产生冲突,所以我在第二遍重装cuda 的时候就没有选择这个方法,而是选了前述网上讲的蛮多的方法。

四、安装cudnn

     这个简单多了,基本没什么坑,一遍过。

上官网https://developer.nvidia.com/cudnn,需要邮箱注册。

进入:https://developer.nvidia.com/rdp/cudnn-archive 一定要按照cuda的型号选择cudnn的型号。

Ubuntu20.04安装NVIDIA驱动+cuda+cudnn+anaconda+pytorch+pycharm经验_第3张图片

 

我选的cuDNN Library for Linux (x86_64),下载安装包,注意下载完后将文件复制到电脑的home文件夹下。还有deb的安装包,可以根据自己的喜好,进行安装。

然后打开终端输入:

tar -zxvf cudnnXXXXXXXXXX.tgz    下载的cudnn安装包名称写全

cp cuda/lib64/* /usr/local/cuda-11.3/lib64/

cp cuda/include/* /usr/local/cuda-11.3/include/

(注意你的cuda编号,可以参考Ubuntu20.04下CUDA、cuDNN的详细安装与配置过程(图文)_嵌入式技术的博客-CSDN博客_ubuntu20 安装cudnn)

我们可以使用如下的命令查看cuDNN的信息:

cat /usr/local/cuda-11.3/include/cudnn.h | grep CUDNN_MAJOR -A 2

cudnn 8.0以上版本的输入下面的命令

cat /usr/local/cuda-11.3/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

(注意:根据自己的cuda版本将上面cuda后面的数字进行更改。)

CUDN + cuDNN安装完成,可以执行相关训练文件查看是否有gpu信息输出,或监控一下gpu状态。在watch -n 1 nvidia-smi,如果能有输出,就证明cuda和cudnn能正确匹配。(参考的Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_哈希Map的博客-CSDN博客_ubuntu安装cudnn)中的一段命令。

五、安装Anaconda

        首先从anaconda官网下载安装包,将安装包移动到home文件夹下,也可以不移动,我习惯放在主文件夹home下,打开终端执行:

        bash AnacondaXXXXXXX.sh 注XXX按照自己下载的版本名称补齐。   

       按一直Enter查看协议,直到出现Please answer 'yes' or 'no' , 输入 yes

       然后再按一次Enter,安装完成。最后添加环境变量,我没添加,照样正常使用。

    在终端输入jupyter notebook 可以使用jupyter

这两篇文章Ubuntu下安装Anaconda的步骤(带图) - 知乎和Ubuntu 20.04安装Anaconda3+配置+使用jupyter notebook_阿清~的博客-CSDN博客_ubuntu20.04安装anaconda讲的更详细,可以参考。

六、配置pytorch

      打开终端,输入:conda create -n pytorch python=3.9 ,创建pytorch环境,因为我安装的anaconda的python是3.9版本的,自己装的啥版本python就将3.9进行替换。

终端输入:conda activate pytorch    打开pytorch环境。

 打开pytorch官网,进行配置:

Ubuntu20.04安装NVIDIA驱动+cuda+cudnn+anaconda+pytorch+pycharm经验_第4张图片

 

最后得到一行命令:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

输入终端运行即可慢慢进行安装。有的因为速度慢的原因推荐使用清华源,操作也挺麻烦的,就用这个官方推荐的链接也挺快,估计十几二十分钟就好了。

在终端输入:python

如果报错,大概是因为没有在pytorch环境中运行的原因,在终端输入conda activate pytorch,以激活pytorch环境,然后在输入python。关闭pytorch环境可以输入 conda deactivate就好了。

然后输入:import torch 如果没输出就证明pytorch安装好了

再输入:torch.cuda.is_availble()

输出True,大功告成,证明pytorch配置好,可以用GPU进行训练了

七、安装pycharm

在Thank you for downloading PyCharm!官网下载pycharm社区版,放到home文件夹下,在这个文件夹下打开终端:

输入:tar -zxvf pycharmXXXXX.tar.gz 解压,XXX为具体版本号,

然后在解压的pycharm文件夹下打开bin文件夹,在这个文件夹下打开终端~/pycharm-community-2022.1/bin$,输入:

sh pycharm.sh  打开pycharm,然后新建项目,将pytorch环境加入到pytorch新建项目中(此步很简单,网上随便搜索下),在菜单栏点击 Tools 再点击create desktop entry 即可将pycharm图标放到桌面,方便下次开启,可以在terminal 中将第六节中的部分内容载执行一遍:

在终端输入:python

如果报错,大概是因为没有在pytorch环境中运行的原因,在终端输入conda activate pytorch,以激活pytorch环境,然后在输入python。关闭pytorch环境可以输入 conda deactivate就好了。

然后输入:import torch 如果没输出就证明pytorch安装好了

再输入:torch.cuda.is_availble()

输出True,大功告成,证明pytorch配置好,可以用GPU进行训练了

八、总结

      环境配置是做深度学习的第一大关,确实挺麻烦的。中间安装过程中有很多坑,最大的坑就是NVIDIA驱动安装和CUDA安装。因为这个教程是事后回忆的,可能存在一些不足,或者是漏的,可能会产生错误,敬请见谅。

   

  

 

 

你可能感兴趣的:(python,机器学习,计算机视觉,目标检测,深度学习)