ubuntu pytorch 深度学习环境配置

2023-11-06

目录

一. Ubuntu20.04下用ppa源安装NVIDIA显卡驱动

1. 先查询适用自己电脑型号的英伟达驱动版本

官网查选 官方 GeForce 驱动程序 | NVIDIA

2. 禁用默认驱动(nouveau)

3. 打开 软件与更新 ,点击 附加驱动 ,更改 驱动版本 并 应用。

4. 如果 附加驱动 中没有我们需要的显卡驱动版本,可以自行安装。

5. 输入 nvidia-smi 查询 NVIDIA 版本,显示如下所示。

6. 遇到的问题及解决办法

二. 安装CUDA

 1.安装命令

2. 添加环境变量

3.验证成功

三. 安装CUDNN

1. 下载地址:

2. 安装命令

四. Anaconda 安装

五. Pytorch 安装

1.新建Pytorch虚拟环境

2.切换至Pytorch虚拟环境

3.在Pytorch虚拟环境下安装pytorch

4. 验证

安装源:

参考链接:


一. Ubuntu20.04下用ppa源安装NVIDIA显卡驱动

1. 先查询适用自己电脑型号的英伟达驱动版本

官网查选 官方 GeForce 驱动程序 | NVIDIA

 查询结果显示,510,495,470。

2. 禁用默认驱动(nouveau)

1):首先将原来的默认驱动(nouveau)加入黑名单。

在Terminal中输入

sudo gedit  /etc/modprobe.d/blacklist-nouveau.conf

会打开一个文本文档,在这个文本文档的最后输入:

blacklist nouveau  
options nouveau modeset=0

2):输入

sudo update-initramfs -u

更新文件后重启系统

3):重启后,在登录界面按住“Ctrl+Alt+F1”进入文字界面,输入登录信息后。输入

lsmod | grep nouveau

确认无输出内容即表示默认的自带显卡已经被干掉了。

3. 打开 软件与更新 ,点击 附加驱动 ,更改 驱动版本 并 应用。

此处我选择510版本。

4. 如果 附加驱动 中没有我们需要的显卡驱动版本,可以自行安装。

sudo add-apt-repository ppa:graphics-drivers/ppa
 
sudo apt-get update
 
sudo apt-get install nvidia-driver-510#(我适用版本是510,根据自己需要版本改这个版本号)
 
sudo apt-get install mesa-common-dev
 
sudo apt-get install freeglut3-dev

安装完成后,重启电脑。

5. 输入 nvidia-smi 查询 NVIDIA 版本,显示如下所示。

6. 遇到的问题及解决办法

i) 显卡驱动报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running

解决办法一:

# 执行命令
sudo apt-get install dkms
sudo dkms install -m nvidia -v 510.47.03(510.47.03表示的是驱动版本号)

# 利用命令 ll /usr/src/ 可查看下面有一个nvidia-510.47.03/文件夹,版本号因电脑而异

解决办法二:

启动系统时,选择与之显卡驱动匹配的旧版本系统内核。

重启系统之前,可使用命令查看当前系统内核版本:

uname -r

5.13.0-28-generic(这是作者目前的系统内核版本)

重启系统,在进行ubuntu启动引导的界面时,选择“ubuntu高级选项”,选择一个以前的内核版本,然后成功进入系统。

可以使用watch -n 0.2 nvidia-smi命令实时查看显卡工作情况,0.2表示每间隔0.2秒刷新一次。

附:

命令行关闭系统自动更新,使用命令打开文件并编辑

sudo vim /etc/apt/apt.conf.d/10periodic

将双引号中的“1”全部置“0”即可,修改后保存。

如果要使用图形界面来关闭自动更新,找到系统设置(System Settings) --> 软件更新(Software & Updates) 

二. 安装CUDA

 1.安装命令

CUDA Toolkit 11.6 Downloads | NVIDIA Developer

2. 添加环境变量

sudo gedit ~/.bashrc

 在打开的txt文件末尾加

export CUDA_HOME=/usr/local/cuda 
export PATH=$PATH:$CUDA_HOME/bin 
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存,退出。终端执行

source ~/.bashrc

3.验证成功

nvcc --version

此外还需下载cuda samples 并 编译:

11.6 版本cuda的安装目录/usr/local/cuda-11.6/samples里只有一个txt文件,大致意思是告诉你新版本的cuda,samples中内容需要自己在github下载。

由于github下载过慢,在此放上gitee链接,在samples文件夹下打开终端执行上述语句。

sudo git clone https://gitee.com/liwuhaoooo/cuda-samples.git

然后执行:

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

输出:

!出现的问题:

1.安装cuda时,出现了ubuntu根目录空间不足的问题,因为当初lz分配给 / 的空间只有 20G,导致CUDA并未安装成功。解决办法:需要用到 GPARTED 分区编辑器 以及 ubuntu启动盘,给 / 额外增加 30G 的容量。

ubuntu 16.04根目录磁盘空间扩容(亲测!!)_fire_lgh的博客-CSDN博客_ubuntu扩容

2.cuda : 依赖: cuda-16-1 (>= 16.1.0) 但是它将不会被安装

解决方法:

sudo apt-get install aptitude #安装aptitude

sudo aptitude install cuda #将apt-get换成aptitude

# 好多冲突,选择了Y,510替换了

reboot

nvidia-smi

nvcc --version

3.ubuntu apt 安装软件时 出现(--configure)时出错,解决办法:

好像是因为以前在更新系统时强制中断的原因, 后来更新软件经常卡在一个地方不动,然后报(–configure)时出错。

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old # 现将info文件夹更名
sudo mkdir /var/lib/dpkg/info # 再新建一个新的info文件夹
sudo apt-get update, apt-get -f install # 不用解释了吧
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old # 执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
sudo rm -rf /var/lib/dpkg/info # 把自己新建的info文件夹删掉
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info # 把以前的info文件夹重新改回名字

4. gcc版本相关CUDA,NVIDIA Driver,Linux,GCC之间的版本对应关系表格_Cooper.zhang-CSDN博客_cuda gcc

若gcc需要降级,可参考链接:

https://www.jb51.net/article/192060.htm

三. 安装CUDNN

1. 下载地址:

https://developer.nvidia.com/rdp/cudnn-download

 需要注册,选择合适的版本下载(libraries for linux),然后解压。

2. 安装命令

进入到解压好的文件夹下,右键 在终端中打开,运行以下命令:

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

四. Anaconda 安装

在anaconda官网上下载最新版。地址:Anaconda | Individual Edition

 终端在安装包所在文件夹目录下运行如下命令:

bash Anaconda3-2021.05-Linux-x86_64.sh 

 一路Enter 和 yes。注意是否在 ~/.bashrc 文件中加入了环境变量。

source ~/.bashrc
conda -V

显示:

conda 4.10.1

五. Pytorch 安装

1.新建Pytorch虚拟环境

conda create -n pytorch python=3.8

2.切换至Pytorch虚拟环境

conda activate pytorch

3.在Pytorch虚拟环境下安装pytorch

下载地址:Start Locally | PyTorch

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

4. 验证

python
import torch
print(torch.__version__)

输出:1.10.2

print(torch.cuda.is_available())

输出结果为:True

print(torch.backends.cudnn.version())

输出结果为:8200

安装源:

1. cuda 与 nvidia driver 版本匹配问题:

CUDA Compatibility :: GPU Deployment and Management Documentation

 2. 清华源下载地址

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

3. cuda 下载地址

老版本:

CUDA Toolkit Archive | NVIDIA Developer

新版本:

CUDA Toolkit 11.4 Update 2 Downloads | NVIDIA Developer

4. cudnn 下载地址

cuDNN Archive | NVIDIA Developer

5. pytorch 下载地址

https://download.pytorch.org/whl/torch_stable.html

6. Anaconda 版本 对应的 python 版本

Old package lists — Anaconda documentation

参考链接:

1. 显卡驱动报错:NVIDIA-SMI has failed _u012114438的博客-CSDN博客
2. (Ubuntu安装二)Ubuntu16.04下用ppa源安装NVIDIA显卡驱动_elegantoo的博客-CSDN博客

3. cuda : 依赖: cuda-11-1 (>= 11.1.0) 但是它将不会被安装_Simoneming的博客-CSDN博客

4.  ubuntu 16.04根目录磁盘空间扩容(亲测!!)_fire_lgh的博客-CSDN博客_ubuntu扩容

Ubuntu 18.04 的安装过程

参考链接:Ubuntu18.04安装教程_Sunshine的博客-CSDN博客_ubuntu安装教程

ubuntu ISO 下载:Ubuntu 20.04.4 LTS (Focal Fossa) 

1. 首先下载了中科大的Ubuntu国内源。使用ultraiso软件制作了Ubuntu的启动盘。

1)ultraIso激活的注册码可以在网上搜到。

2)先将u盘进行了格式化,打开Ubuntu的ISO文件,点击 启动 - 写入硬盘映像 将Ubuntu写入u盘。 这里我勾选了 “刻录校验”,之后等待大约十分钟,完成后点击返回按钮。

 2. 给Ubuntu分配硬盘空间

在计算机 “开始” 键处右击,选择 磁盘管理 ,通过删除卷删除分区操作腾出一块未分配的磁盘空间作为安装区。

3. 设置启动项

关机,插入启动u盘,开机,迅速按F2 进入 BIOS设置,此处可以设置BIOS sequence。同时在legacy与uefi 中选择 uefi。

4. Ubuntu安装

关机重启选择 F12,选择install Ubuntu。跟着引导安装就好。

!!!比较重要的就是分区:

此处我分了五个区:

efi 主分区 efi 4GB(4096MB)
/ 主分区 Ext4 100GB
/boot 主分区 Ext4 8GB
/home 逻辑分区 Ext4 1000GB
swap 逻辑分区 交换空间 32GB

 安装完成!

ubuntu18.04 重启进入系统页面卡在“started gnome display manager“:

在 recovery mode下选择了resume normal boot,然后就修复好了,进入了图形界面。

其他可能的解决办法:

若图形界面有问题。
开机后,在显示dell图标后(按下Esc进入grub界面),选择ubuntu高级选项。在修复模式下,进入root,输入密码后,输入命令:startx

深度学习环境配置好,nvidia驱动安装完,使用ubuntu系统一段时间后,重启系统发现加载nvidia显卡出现问题,进不了图形界面,此时的问题是ubuntu内核下载了新的版本,开机重启默认的是新的内核版本。所以我们在开机选择系统界面,选择ubuntu的高级选项,进入后选择最低版的内核版本,进入系统,这时就没有任何问题啦。

2023.9.4 遇到问题:踩坑系列之pytorch安装之后不能使用cuda_pytorch不支持cuda12_浅冲一下的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu pytorch 深度学习环境配置 的相关文章

随机推荐

  • 类模板的定义和使用注意事项。

    include iostream include string using namespace std 类模板 设置了默认数据类型 如 template
  • MATLAB代码:基于二阶锥优化电气综合能源系统优化调度研究

    MATLAB代码 基于二阶锥优化电气综合能源系统优化调度研究 关键词 电气综合能源 优化调度 二阶锥优化 参考文档 考虑气电联合需求响应的气电综合能源配网系统协调优化运行 参考部分配电网设备模型 非完全复现 以文档为准 仿真平台 MATLA
  • 【C++】一文详解lambda表达式用法及发展历程

    文章目录 1 lambda表达式语法 2 捕获列表 2 1 作用域 2 2 捕获值与捕获引用 2 3 特殊捕获方法 3 lambda表达式实现原理 4 无状态lambda表达式 5 在STL中使用lambda表达式 6 广义捕获 7 泛型l
  • 域名系统中的本地域名服务器、根域名服务器、顶级域名服务器以及权限域名服务器。

    根域名服务器 是最高层次的域名服务器 也是最重要的域名服务器 所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址 顶级域名服务器 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名 权限域名服务器 负责一个区的域名服务器
  • 资源服务器验证Token的几种方式

    资源服务器验证Token的几种方式 在微服务中 除了eureka config 网关等基本的微服务还有认证服务和资源服务 上图描述了使用了 OAuth2 的客户端请求验证token的流程 是通过资源服务向认证服务验证token 过程就是客户
  • 消息队列原理及选型

    什么是消息队列 消息队列 Message Queue 是一种进程间通信或同一进程的不同线程间的通信方式 什么时候需要消息队列 异步处理 例如短信通知 终端状态推送 App推送 用户注册等 有些业务不想也不需要立即处理消息 消息队列提供了异步
  • Redis主从复制架构和Sentinel哨兵机制

    一 redis主从复制原理 redis主从同步策略 slave刚加入集群会触发一次全量同步 全量复制 全量同步之后 进行增量复制 slave优先是增量同步 如果增量同步失败会尝试从master节点进行全量复制 全量复制 slave初始化阶段
  • 华为OD机试真题- 数值同化-2023年OD统一考试(B卷)

    题目描述 存在一个m n的二维数组 其成员取值范围为0 1 2 其中值为1的元素具备同化特性 每经过1S 将上下左右值为0的元素同化为1 而值为2的元素 免疫同化 将数组所有成员随机初始化为0或2 再将矩阵的 0 0 元素修改成1 在经过足
  • IDEA连接SSH以及上传项目文件到指定远程服务器文件夹

    一 IDEA连接SSH 确认你的密码输对了 还好我保存了我的远程服务器的密码 原先我一直以为我输对了 导致一直报错Auth fail 点击ok 连接上了 二 将项目文件传输到 远程服务器的指定文件夹 name随意起个名字 1 是你的本地项目
  • 什么叫异步通信?同步通信与异步通信的区别是什么?

    异步通信 又称为起止式异步通信 数据帧与数据帧之间没有固定时间间隔约定 可以是不定时长的 空闲位 异步通信是在内部约定好时钟 芯片设计设定好的时钟 用起始位开头 中间包含数据位后面随效验位和停止位的格式 我们称之为 帧 整个数据帧的位组成是
  • 【云服务器】阿里云服务器部署web项目前的准备(安装Nginx,jdk,Tomcat,MySQL)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 首先得有一台云服务器 白嫖党可以去看看鱼皮的视频或者百度搜索如何白嫖阿里云服务器 二 安装nginx反向代理服务器 二 Jdk和Tomcat的安装 1 jdk
  • 集团服务器 系统,开创集团云服务器

    开创集团云服务器 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 本节操作介绍通过华为云APP连接Linux实例的操作步骤
  • umi搭建的react项目——如何mock数据

    umi搭建的react项目 如何mock数据 1 本地配置打开 本地配置umirc local ts中的mock配置打开 export default defineConfig mock 2 配置接口 在项目配置接口的文件中添加接口 例如
  • eclipse 设置系统变量和运行参数

    在开发时 有时候可能需要根据不同的环境设置不同的系统参数 我们都知道 在使用java jar命令时可以使用 D参数来设置运行时的系统变量 同样 在Eclipse中运行java程序时 我们怎么设置该系统变量呢 另外 如果我们的程序需要输入运行
  • mysql 游标

    who 游标是什么 游标 cursor 官方定义 是系统为用户开通的一个数据缓冲区 存放sql执行结果 每个游标区都有一个名字 用户可以通过sql语句逐一从游标中获取记录 并赋值给变量 交由主语言进一步处理 个人理解 感觉游标和指针相似 指
  • 手写函数柯里化(Curry)--原理剖析

    函数柯理化的作用 前端使用柯里化的用途主要就是简化代码结构 提高系统的维护性 一个方法 只有一个参数 强制了功能的单一性 很自然就做到了功能内聚 降低耦合 函数柯理化的优点 降低代码的重复 提高代码的适用性 在后面实现应用部分 ajax 会
  • webpack打包速度优化

    优化WebPack打包速度 在开发过程中 WebPack的打包速度是一个非常重要的考虑因素 随着项目规模的增长 打包时间也会越来越长 影响开发效率和用户体验 本文将循序渐进地介绍一些优化WebPack打包速度的方法 先分析打包瓶颈 然后逐步
  • 超分(Super-Resolution, SR )

    知乎有一篇帖子总结了几篇超分的论文 写的很好 https zhuanlan zhihu com p 25532538 utm source tuicool utm medium referral 下面针对上面没有提到的论文进行补充 6 PR
  • 数据库学习笔记(2)——workbench和SQL语言

    1 workbench简介 登录客户端的两种方法 在cmd中 只能通过sql语句控制数据库 workbench其实就是一种图形化数据库管理工具 在workbench中既可以通过sql语句控制数据库 也可以通过图形化界面控制数据库 通过wor
  • ubuntu pytorch 深度学习环境配置

    目录 一 Ubuntu20 04下用ppa源安装NVIDIA显卡驱动 1 先查询适用自己电脑型号的英伟达驱动版本 官网查选 官方 GeForce 驱动程序 NVIDIA 2 禁用默认驱动 nouveau 3 打开 软件与更新 点击 附加驱动