Ubuntu22.04中安装英伟达驱动并部署Pytorch深度学习环境

ops/2024/11/15 7:08:41/

安装英伟达驱动

本文基于windows10+ubuntu22.04双系统,给ubuntu22.04安装英伟达驱动。

  1. 安装必要。依赖
sudo apt update  # 获取最新的软件包信息
sudo apt upgrade # 升级软件包
sudo apt install g++
sudo apt install gcc
sudo apt install make
  1. 禁用ubuntu默认驱动Nouveau。

ubuntu默认集成 Nouveau 驱动,能够提供基本的支持。我们现在需要安装 NVIDIA 官方的显卡驱动,就得先禁用默认驱动。

sudo vi /etc/modprobe.d/blacklist-nouveau.conf
# 插入下两行内容
blacklist nouveau
options nouveau modeset=0# 禁用默认驱动生效
sudo update-initramfs -u# 重启
sudo reboot# 验证,果没有输出,则说明默认驱动已被成功禁用。
lsmod | grep nouveau
  1. 卸载之前安装的英伟达驱动。
sudo apt remove --purge nvidia*
  1. 查看系统检测到的显卡以及推荐的驱动程序版本。

通常会显示多个可用的驱动版本,有些版本可能带有 “recommended”(推荐)的标识。

ubuntu-drivers devices# 可以看到推荐的驱动是nvidia-driver-560

b6c48543-aa27-4719-9846-ea813c1b4418

  1. 使用PPA源安装推荐的英伟达驱动。

PPA(Personal Package Archive)库安装驱动是一种在 Ubuntu 等基于 Debian 的 Linux 系统中安装特定驱动程序的方法。

它允许用户方便地获取一些官方软件源之外的软件包及其特定版本。对于驱动程序来说,官方的 Ubuntu 软件源中可能提供的驱动版本有限,而 PPA 库可以提供更多更新或特定版本的驱动程序。

# 将图形驱动程序的 PPA 仓库添加到系统中,以便能够从该仓库获取 NVIDIA 驱动程序。
sudo add-apt-repository ppa:graphics-drivers/ppa# 更新软件列表
sudo apt update# 驱动改成自己系统刚刚推荐的版本,安装过程中提示设置密码,后面重启时需要用到。
sudo apt install nvidia-driver-560# 安装 Mesa 相关的开发文档、头文件以及特定的 OpenGL 扩展规范等内容,以便开发者进行与图形相关的应用程序开发
sudo apt install mesa-common-dev
  1. 重启后,验证是否安装成功。
# 重启
reboot# **注意**
重启后会出现蓝屏,蓝屏界面选择Enroll MOK, 确认后再选择Continue,接着输入刚刚安装驱动时设置的密码,输入时密码不会显示,确认后等待开机。# 验证,如果显示你的系统GPU,即安装成功。如图,NVIDIA GeForce GTX 1050 Ti
nvidia-smi

1d5eb224-79eb-49fb-b58c-ab35177fbb55

部署Pytorch环境

miniconda 中部署 Pytorch环境

  1. 安装miniconda,最新版本请参考miniconda官网。
# 这四个命令下载最新的 64 位版本的 Linux 安装程序,将其重命名为更短的文件名,静默安装,然后删除安装程序:
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh# 安装后,关闭并重新打开终端应用程序或通过运行以下命令刷新它:(可以看到用户名前多个(base))
source miniconda3/bin/activate# 在所有可用的 shell 上初始化 conda,请运行以下命令:
conda init --all
  1. cuda driver | pytorch | python 版本选择

上文的nvidia-smi输出可以看到我们安装的英伟达驱动中 Cuda Version:12.6,确保运行环境的cuda版本≤12.6。

pytorch官网中选择CUDA12.1,并且使用pip 的安装方式来安装pytorch

torch与python版本对应表中可以看到``torch=2.4要求python3.8—3.12,所以我们可以选择python3.10`。

image-20241014232846194

  1. 创建python3.10的虚拟环境。
conda create -n pytorch-cuda12.1 python=3.10 
conda activate pytorch-cuda12.1
python -V
pip -V

56cd9e49-e4a4-458e-960e-c134ae22f716

  1. 虚拟环境中安装pytorch
pip3 install torch torchvision torchaudio
  1. 安装Jupyter。
pip install jupyter
jupyter notebook# 浏览器打开 http://localhost:8888/tree?token=72855bd2a120e2ac671c7ffc0a13eaee1d9d059d5e5647e3

a0f42f01-2b0c-4eeb-b54f-d739d6fdbea9

  1. 测试pytorch

Jupyter中使用下列代码验证pytorch,输出结果如下图所示即通过。

import torch
print(torch.cuda.is_available())
print(torch.__version__)
print(torch.__path__)
print(torch.version.cuda)
torch.backends.cudnn.version()# GPU
x = torch.randn(1, 3, 224, 224).cuda()
conv = torch.nn.Conv2d(3, 3, 3).cuda()out = conv(x)
print(out.sum())

0c7c4e68-7fca-465e-96ad-1952da4a37e7

参考文档

  1. Ubuntu20.04安装Nvidia显卡驱动教程
  2. Pytorch深度学习环境配置 | NVIDIA-driver + Pytorch + miniconda

欢迎关注我的博客,如有疑问或建议,请随时留言讨论。


http://www.ppmy.cn/ops/125975.html

相关文章

【LeetCode算法笔记】Day1:动态规划基础

目录 动态规划简介动态规划的定义动态规划的核心思想动态规划的简单例子 动态规划特征最优子结构性质重复子问题性质无后效应 动态规划的基本思路 动态规划简介 动态规划的定义 简称DP,是一种求解多阶段决策过程最优化问题的方法。在动态规划中,通过把原问题分解为…

小帅和小美有容-UMLChina建模知识竞赛第5赛季第16轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题,即可获得本轮优胜。 如果有第4题,第4题为附加题&am…

问:JVM当中的垃圾分类怎么搞?

在Java中,JVM(Java虚拟机)的垃圾识别与分类是自动内存管理的重要组成部分。这一过程主要通过垃圾收集器(Garbage Collector)实现,旨在识别和回收不再被程序引用的对象,以释放内存空间。 1. 垃圾…

QT实现校园导航

导航是地图类项目实战中经常会遇到了。看上去貌似没头绪&#xff0c;其实是有模板遵循的。我们直接根据图看代码。 //MainWidget.h#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include "mapwidget.h" #include <QToolButton> #in…

JavaScript基础入门

目录 1. JavaScript简介 2. 基本语法 2.1 变量声明 2.2 数据类型 2.3 运算符 3. 控制结构 3.1 条件语句 3.2 循环语句 4. 函数 5. 数组与对象 5.1 数组 5.2 对象 6. DOM 操作 总结 JavaScript 是当今最流行的编程语言之一&#xff0c;它主要用于网页开发&#xf…

[Windows]文件搜索利器Everything(附zip)

前言 写代码过程中&#xff0c;老大突然发一条信息 老大&#xff1a;这周周报发一下。 我&#xff1a;好的。 然后我就 显示桌面打开-我的电脑找到E盘&#xff0c;找到周报文件夹寻找到所有周报中今天的周报复制发送 当我用上Everything之后 打开&#xff0c;输入周报copy发…

Could not find or load main class

今天接收项目&#xff0c;部署遇到的问题 解决方案 <properties><spring-boot.version>2.5.10</spring-boot.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></…

想要加密电脑文件?2024年企业常用的10款电脑加密软件排行榜

在2024年&#xff0c;随着网络安全威胁日益增多&#xff0c;企业对数据安全的需求越来越强烈。电脑文件加密已成为保护敏感信息免受未经授权访问的必备手段。企业为了确保数据安全&#xff0c;往往会选择专业的加密软件&#xff0c;帮助保护文件、文件夹、硬盘、甚至整个系统。…