草庐IT

Ubuntu 20.04 配置深度学习开发环境

Maitre Chen 2023-05-25 原文

目录

写在前面

Dependency

1.安装Anaconda

1.1 下载安装包

1.2 进入安装文件夹,执行安装脚本。

1.3 环境变量的配置与更新

1.4 测试安装

1.5 创建虚拟环境

2.安装英伟达驱动

法一: 命令行安装

法二:GUI界面

3.安装CUDA

3.1 简介

3.2 注意

 3.3 安装流程

3.4 配置环境变量

法一

法二

3.5 更新环境变量

3.6 验证安装

Attention!!!

4.安装cuDNN

4.1 简介

4.2 安装流程

4.3 下载安装包

 4.4 执行安装命令

4.4.1 进入对应安装文件夹

4.4.2 解压

4.4.3 复制文件 + 权限修改

4.5 测试安装

5.安装深度学习框架Pytorch

总结


写在前面

由于笔者目前用的是VMware下的Ubuntu20.04,曾经也尝试过安装GPU版本的Pytorch,但虚拟机下安装英伟达驱动一直困扰着我。于是安装了cpu版本的Pytorch,凑合着跑通了深度学习项目(QAQ)

后来了解到需要安装vSphere Bitfusion Client客户端,但由于时间与精力有限就没有去尝试。如果有其他小伙伴在VM 下的ubuntu中成功配置好深度学习环境,有待指点迷津呀~~


最近,我的小伙伴慕笙需要跑深度学习项目,于是帮助TA在双系统下的Ubuntu配置了深度学习环境。在此过程中遇到了许多坑,主要是安装CUDA。听说这一过程可以劝退很多人,因此将详细的步骤以及采坑的经历记录下来,以示后来者!!


Dependency

  • 双系统win10 + ubuntu 20.04
  • Anaconda 3
  • CUDA 11.3
  • cuDNN v8.2.1
  • Pytorch 1.10.2

1.安装Anaconda

1.1 下载安装包

官网or清华镜像源

建议大家选择后者,即使这样我也要把前者贴出来~~(有点专业的样子😂😂)

1.2 进入安装文件夹,执行安装脚本。

bash Anaconda3-5.3.0-Linux-x86.sh

然后一路yes就欧克,但到后面要注意,可能会推送vscode,根据需求选择呀~

1.3 环境变量的配置与更新

echo 'export PATH="/home/thebin/anaconda3/bin:$PATH"' >>~/.bashrc

更新:(一定记得!否则不生效!😡)

source ~/.bashrc  # 或者 source /etc/profile 

1.4 测试安装

conda -V或conda --version  

1.5 创建虚拟环境

①查看当前环境

conda env list  

②创建虚拟环境

conda create -n your_name 

③激活创建的虚拟环境

conda activate your_name 

④安装需要的包

conda install 或 pip install,对了,如果觉得用pip安装第三方库慢或者超时报错,可以采用豆瓣源,个人觉得相当好用❤❤❤

pip install your_package -i https://pypi.douan.com/simple

2.安装英伟达驱动

法一: 命令行安装

终端执行如下指令,列出可支持的所有驱动以及推荐驱动。

ubuntu-drivers devices

 一般选择推荐(recommand)驱动,安装命令如下:

sudo apt install nvidia-driver-460

重启ubuntu:

sudo reboot

法二:GUI界面

操作步骤:搜索driver,选择additional drivers,选择所需的驱动,安装,重启。

 Tips:不论是哪种方法,安装完重启后要用nvidia-smi命令查看图形卡状态,可以看到驱动版本以及nvidia driver API 的cuda版本!


3.安装CUDA

3.1 简介

CUDA,全称ComputeUnified Device Architecture,是一种NVIDIA推出的通用的计算架构,该架构能够使GPU解决复杂的计算问题。

3.2 注意

安装CUDA前一定记得在官网查看一下驱动支持的CUDA版本!

这里贴一张CUDA 11的相关表:

 3.3 安装流程

进入CUDA官网,选择对应的安装平台,安装类型选择runfile,参考如下:

 信息确认后会提示安装指令。(wget会默认下载到当前目录 )

wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
sudo sh cuda_11.3.0_465.19.01_linux.run

如果安装顺利😆进行,在一路yes后记得在NVIDIA Accelerated Graphics Driver时选择否,就没必要再安装英伟达驱动啦 那么如果不顺利😣咧,请往下看:


Error:执行安装脚本以后可能会提示系统有多个驱动需要移除,提示如下:

 Method1:执行sudo apt install nvidia-cuda-toolkit,安装CUDA工具包(下面会讲到Method2

Test:

nvcc -V  

实际上,执行该命令出现CUDA的release以及version就证明runtime API cuda安装完毕~~而且也不需要按照下面的步骤配置环境变量。但这不一定就是最终的版本,因为CUDA与cuDNN之间存在依赖关系!


3.4 配置环境变量

如果能够成功执行脚本,安装CUDA驱动,那么就需要手动配置环境变量,参考如下:

法一

终端输入以下指令:

# 需指定CUDA加速版本,如cuda-10.1
export PATH="/usr/local/cuda/bin:$PATH"  
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

法二

执行以下指令,然后在UI界面添加法一中的两条指令。

sudo gedit ~/.bashrc

该方法与法一并无本质区别,由于笔者用法一配置变量时无法奏效,或许是因为没有更新环境变量,目前尚不明确,如有小伙伴遇到了同样的经历,欢迎讨论~


3.5 更新环境变量

source  ~/.bashrc

3.6 验证安装

nvcc -V


Attention!!!

①关于nvcc -V与nvidia-smi命令显示的CUDA版本不一致问题。❗❗

由于cuda存在runtime API 与 nvidia drive API两个版本,前者是CUDA Toolkit安装的,称之为CUDA加速版本;而后者是Nvidia driver安装的,成为CUDA驱动版本,因此通常情况下,两者的版本不一致,前者版本都会低于后者。但在实际使用中,cuda版本是基于前者的,也就是runtime CUDA,这个CUDA才是用于深度学习的加速计算的。

②由于本次开发环境系统是ubuntu20.04,而只有CUDA 11.0以上版本才支持。但通过nvcc -V查看发现CUDA已经安装好了,原因是在执行sudo apt install nvidia-cuda-toolkit时默认安装了CUDA 10.1版本,(一个不被ubuntu 20.04支持的版本就这么诞生了,天哪!)。因此我们依然需要通过执行CUDA安装脚本来安装合理的版本。可是一开始执行sudo sh cuda_11.6.1_510.47.03_linux.run报错,因此这就涉及到了Method 2 ,参考如下:

由于ubuntu20.04默认的gcc版本是9,降级。

sudo apt-get install gcc-7 g++-7

 目前还不清楚是否需要降级,开始的ERROR是否与gcc的版本有关尚未解决😪!


在降低gcc版本以后再次执行安装脚本依旧报错,提示:Installation failed. See log at /var/log/cuda-installer.log for details,错误日志内容如下:

 原因:系统已安装CUDA驱动

解决方案:继续执行sudo sh cuda_11.6.1_510.47.03_linux.run安装命令,在进入该界面时选择Continue然后在安装界面取消Driver!!!

 如果没有取消Driver,在[ ]里会显示X!这里一定要注意!否则一直重来一直错!!!

等待安装......🙄🙄🙄安装完成后,配置环境变量、更新、测试,上面已经讲得很清楚啦!


如果你是按照上述流程配置的话,细心的你一定会发现我下载的CUDA包与执行安装的包版本不同。这里需要说明一下,由于开始只是关注了CUDA与nvidia driver的关系,而忽略了cuDNN与CUDA以及Pytorch与CUDA的依赖关系,因此在安装完CUDA 11.6以后发现没有该平台支持的Pytorch。目前,在Pytorch官网最高只支持CUDA 11.3,另一个就是CUDA 10.2。而后者在Ubuntu 20.04上是无法安装cuDNN的,于是选择了CUDA 11.3,卸载驱动,重新安装😒~~


4.安装cuDNN

4.1 简介

cuDNN是一个用于深度神经网络DNN的GPU加速库,可以在GPU上实现并行计算,显著提高性能。

4.2 安装流程

访问cuDNN官网

需要注册,有些麻烦,稍安勿躁~~来杯卡布奇诺☕

4.3 下载安装包

选择和系统CUDA匹配的cuDNN版本。

由于本次配置CUDA 为10.3,因此安装11.x系列的cuDNN.

这里选择for Linux.

 4.4 执行安装命令

4.4.1 进入对应安装文件夹

cd ....

4.4.2 解压

tar -zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz

4.4.3 复制文件 + 权限修改

sudo cp cuda/include/cudnn*.h /usr/local/cuda/include 
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

官方安装教程在这里

4.5 测试安装

cd /usr/local/cuda/samples/1_Utilities/deviceQuery 
sudo make
./deviceQuery

最后出现Result = PASS,即安装成功!如下:


5.安装深度学习框架Pytorch

官网选择相关属性,参考如下:

然后切换到虚拟环境,执行安装命令即可,参考如下:

pip3 install torch==1.10.2+cu113 torchvision==0.11.3+cu113  -f https://download.pytorch.org/whl/cu113/torch_stable.html

测试安装,检查是否支持GPU驱动,参考如下:

That's True!!

Everything is OK!!


总结

本次深度学习环境的配置让我再次明白了一个道理:深入到细节是必然的,但更重要的是从整体上去思考问题。有了全局观念,就不会惑于某一个细节。这也是我的老师所强调的。

因此,大家在配置环境时一定要注意自己的系统版本、CUDA与Pytorch以及CUDA 与cuDNN的依赖关系等等 ,这样也不会像笔者一样将CUDA卸载多次才找到了适合的TA~~~~

有关Ubuntu 20.04 配置深度学习开发环境的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存? - 2

    我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:

  4. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  5. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  6. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  9. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  10. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

随机推荐