Ubuntu20.04 深度学习环境配置(持续完善)

文章目录

  • 常用的一些命令
  • 安装 Anaconda
    • 创建conda虚拟环境
    • 查看虚拟环境大小
  • 安装显卡驱动
  • 安装CUDA
  • 安装cuDNN
    • 官方仓库安装 cuDNN
    • 安装 cuDNN 库
    • 验证 cuDNN 安装
    • 确认 CUDA 和 cuDNN 是否匹配:
  • TensorRT
    • 下载 TensorRT
    • 安装 TensorRT 本地仓库
    • 配置 GPG 签名密钥
    • 安装 TensorRT
    • 配置环境变量
    • 验证安装
  • 安装pytroch
    • 选择Pytorch版本
    • 在官网查找conda命令
    • 验证pytorch是否安装成功
  • 参考


常用的一些命令

更新 Conda

conda update conda -y

检查 NVIDIA 驱动版本

在本地机器上,确保已安装合适版本的 NVIDIA 驱动和 CUDA Toolkit,否则 GPU 无法正常工作。

nvidia-smi

通过 nvcc 命令查看 CUDA Toolkit 版本

如果您的系统安装了 CUDA Toolkit,可以运行以下命令查看版本:

nvcc --version

您会看到类似以下输出:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb_14_23:09:47_PST_2023
Cuda compilation tools, release 12.1, V12.1.105

其中 release 12.1 表示当前的 CUDA Toolkit 版本是 12.1。

1.查看当前安装的 torch 版本

python -c "import torch; print(torch.__version__)"
2.4.1.post100   # 若返回这个,表明仅安装的CPU版本 

2.确认当前安装的 PyTorch 是否支持 GPU 加速

python -c "import torch; print(torch.cuda.is_available())"
  • 输出 True 表示 GPU 可用。
  • 输出 False 表示未启用 GPU,可能是因为没有安装支持 CUDA 的版本或系统未检测到 GPU。

3.查看 PyTorch 使用的 CUDA 版本

python -c "import torch; print(torch.version.cuda)"

4.验证 GPU 信息

如果 GPU 可用,您还可以检查当前的 GPU 信息:

python -c "import torch; print(torch.cuda.get_device_name(0))"

安装 Anaconda

创建conda虚拟环境

conda create --name xxx python=3.11.9

查看虚拟环境大小

du -sh /home/damon/anaconda3           # base环境大小
du -sh /home/damon/anaconda3/envs/*    # 虚拟环境大小

安装显卡驱动

使用 nvidia-smi 来查看 NVIDIA GPU 的使用情况和显存信息:

如果系统上安装了 NVIDIA 驱动程序,该命令会显示 GPU 的型号、显存使用情况、温度等信息。

nvidia-smi

在这里插入图片描述

安装CUDA

查看当前cuda版本为11.3,也可以离理解成cuda的运行API

nvcc -V 

在这里插入图片描述

安装cuDNN

官方仓库安装 cuDNN

下载 cuDNN 包(.deb 文件):cuDNN

1.安装 cuDNN 本地仓库配置文件:

sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
damon@damon-System-Product-Name:~$ sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
(正在读取数据库 ... 系统当前共安装有 332813 个文件和目录。)
准备解压 cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb  ...
正在解压 cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) 并覆盖 (1.0-1) ...
正在设置 cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) ...
damon@damon-System-Product-Name:~$ 

第一次安装的时候,还会有这个

The public cudnn-local-repo-ubuntu2004-8.9.7.29 GPG key does not appear to be installed.
To install the key, run this command:
sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.7.29/cudnn-local-30472A84-keyring.gpg /usr/share/keyrings/

2.将 cuDNN 的 GPG 密钥复制到 /usr/share/keyrings/:

sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.7.29/cudnn-local-30472A84-keyring.gpg /usr/share/keyrings/

3.更新 apt 包管理器的源列表:

sudo apt-get update

安装 cuDNN 库

一旦配置了本地仓库,您可以安装 cuDNN 的运行时和开发文件:

sudo apt-get install libcudnn8 libcudnn8-dev -y
  • libcudnn8:这是 cuDNN 运行时库。
  • libcudnn8-dev:这是 cuDNN 开发库,包括头文件和符号链接,供开发使用。

验证 cuDNN 安装

1.检查 cuDNN 库是否安装成功:

使用 dpkg 命令检查 cuDNN 安装情况:

dpkg -l | grep libcudnn

如果安装成功,您将看到类似如下的输出:

damon@damon-System-Product-Name:~$ sudo dpkg -l | grep cudnn
ii  cudnn-local-repo-ubuntu2004-8.9.7.29              1.0-1                                 amd64        cudnn-local repository configuration files
ii  cudnn-local-repo-ubuntu2004-9.5.1                 1.0-1                                 amd64        cudnn-local repository configuration files
ii  libcudnn8                                         8.9.7.29-1+cuda12.2                   amd64        cuDNN runtime libraries
ii  libcudnn8-dev                                     8.9.7.29-1+cuda12.2                   amd64        cuDNN development libraries and headers
damon@damon-System-Product-Name:~$ 

上面还有其他版本,可以通过一下命令卸载:

sudo apt-get remove cudnn-local-repo-ubuntu2004-9.5.1

2.验证 cuDNN 头文件和版本:

确保头文件存在:

damon@damon-System-Product-Name:~$ ls /usr/include/cudnn.h
/usr/include/cudnn.h
damon@damon-System-Product-Name:~$ 

然后查看 cuDNN 版本信息:

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

在这里插入图片描述

确认 CUDA 和 cuDNN 是否匹配:

确保 cuDNN 与 CUDA 版本兼容。运行以下命令确认当前的 CUDA 版本:

damon@damon-System-Product-Name:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0
damon@damon-System-Product-Name:~$ 

对应的 cuDNN 版本应与您安装的 CUDA 版本兼容。您可以在 NVIDIA 官网 查找兼容的版本列表。

TensorRT

在已经安装好 CUDA 和 cuDNN 的前提下,安装 TensorRT 的详细步骤如下所示:

下载 TensorRT

前往NVIDIA TensorRT 8.x Download,选择最新的 TensorRT 进行下载,推荐下载适合自己 CUDA 版本的 GA 版:

注意
TensorRT 的 GA 版是稳定的生产版本,适用于正式环境,而 EA 版是包含新功能的早期访问版本,适合开发和测试。

在这里插入图片描述
在这里插入图片描述

wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/local_repos/nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0_1.0-1_amd64.deb

安装 TensorRT 本地仓库

下载完 .deb 文件后,使用 dpkg 命令来安装 TensorRT 的本地仓库:

damon@damon-System-Product-Name:/opt$ sudo dpkg -i nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0_1.0-1_amd64.deb
[sudo] damon 的密码: 
(正在读取数据库 ... 系统当前共安装有 332863 个文件和目录。)
准备解压 nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0_1.0-1_amd64.deb  ...
正在解压 nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0 (1.0-1) 并覆盖 (1.0-1) ...
正在设置 nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0 (1.0-1) ...
damon@damon-System-Product-Name:/opt$ 

这将安装 TensorRT 的本地仓库文件。

配置 GPG 签名密钥

将 TensorRT 本地仓库的 GPG 签名密钥复制到系统的 /usr/share/keyrings/ 目录,确保软件包来源可信:

sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-12.0/nv-tensorrt-local-42B2FC56-keyring.gpg /usr/share/keyrings/

安装 TensorRT

然后,使用 apt-get 安装 TensorRT 包:

sudo apt-get install tensorrt

配置环境变量

安装完成后,你可能还需要配置一些环境变量以确保 TensorRT 和 CUDA 能够正常工作。

编辑 .bashrc 文件,然后添加以下行到文件末尾:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/TensorRT/lib
export PATH=$PATH:/usr/local/cuda/bin

保存文件并使更改生效:

source ~/.bashrc

验证安装

安装完成后,你可以通过以下命令检查 TensorRT 是否正确安装:

dpkg -l | grep tensorrt

输出应该类似于以下内容,确认 TensorRT 安装正确:

damon@damon-System-Product-Name:~$ dpkg -l | grep tensorrt
ii  nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0 1.0-1                                 amd64        nv-tensorrt-local repository configuration files
ii  tensorrt                                          8.6.1.6-1+cuda12.0                    amd64        Meta package for TensorRT
damon@damon-System-Product-Name:~$ 

安装pytroch

选择Pytorch版本

nvcc -V   #查看Pytorch对应的cuda版本,显示release 11.3, V11.3.58
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0

在官网查找conda命令

pytorch官网

# CUDA 12.1
conda install pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 pytorch-cuda=12.1 -c pytorch -c nvidia

我们在安装显卡驱动时会安装cudatoolkit,在安装pytorch时也会安装cudatoolkit?安装显卡驱动时,cudatoolkit是一个完整安装包,而安装pytorch时安装的cudatoolkit只会安装pytorch会使用的部分,两个cudatoolkit是独立的,都在工作在显卡驱动上,所以我们还需要安装cudnn。cudatoolkit和cuda版本必须一样。

验证pytorch是否安装成功

1.通过 Python 代码验证 PyTorch 版本

import torch
print(torch.__version__)

2.使用命令行验证 PyTorch 版本

python -c "import torch; print(torch.__version__)"

3.使用 pip 查看 PyTorch 版本

pip show torch
Name: torch                                                                                                                                                                                                                                                                       
Version: 2.4.1                                                                                                                                                                                                                                                                    
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration                                                                                                                                                                                               
Home-page: https://pytorch.org/                                                                                                                                                                                                                                                   
Author: PyTorch Team                                                                                                                                                                                                                                                              
Author-email: packages@pytorch.org                                                                                                                                                                                                                                                
License: BSD-3                                                                                                                                                                                                                                                                    
Location: /home/damon/anaconda3/envs/qhzpl/lib/python3.11/site-packages                                                                                                                                                                                                           
Requires: filelock, fsspec, jinja2, networkx, sympy, typing-extensions                                                                                                                                                                                                            
Required-by: torchaudio, torchvision   

4.使用 conda 查看安装的 PyTorch 版本

如果你使用的是 conda 环境,可以通过以下命令查看安装的 PyTorch 版本:

conda list pytorch

输出类似如下:

# packages in environment at /path/to/anaconda/envs/yourenv:
#
# Name                    Version                   Build  Channel                                                                                                                                                                                                                
pytorch                   2.4.1           py3.11_cuda12.1_cudnn9.1.0_0    pytorch                                                                                                                                                                                                 
pytorch-cuda              12.1                 ha16c6d3_6    pytorch                                                                                                                                                                                                              
pytorch-mutex             1.0                        cuda    pytorch      


参考

Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7

安装cudnn

Ubuntu 20.04 pytorch 环境搭建 深度学习 | 图文安装流程


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PyTorch][chapter 29][李宏毅深度学习]Fine-tuning LLM

参考: https://www.youtube.com/watch?veC6Hd1hFvos 目录: 什么是 Fine-tune 为什么需要Fine-tuning 如何进行Fine-tune Fine-tuning- Supervised Fine-tuning 流程 Fine-tuning参数训练的常用方案 LORA 简介 示例代码 一 什么是 Fine-tune …

【python】python基于机器学习与数据分析的二手手机特性关联与分类预测(源码+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 python基于机器学习与数据分析的二手手机特性关联与…

【机器学习】深入探索SVM:支持向量机的原理与应用

目录 🍔 SVM引入 1.1什么是SVM? 1.2支持向量机分类 1.3 线性可分、线性和非线性的区分 🍔 小结 学习目标 知道SVM的概念 🍔 SVM引入 1.1什么是SVM? 看一个故事,故事是这样子的: 在很久以前的情人节&#xf…

WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel

WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel 一、前言二、Grid 布局:万能的布局王者2.1 Grid 布局基础:构建网格世界2.2 子元素定位与跨行列:布局的精细操控2.3 自适应布局:灵活应变的秘诀 三、StackPanel…

性能测试网络风险诊断有哪些?

目录 一、网络定位分析手段 二、sar命令 三、netstat命令 以下是几种常见的网络风险诊断方法 网络连通性检查 带宽与延迟测量 丢包率分析 网络拓扑结构审查 安全设备影响评估 协议层面上的优化 负载均衡器效能检验 云化服务架构下的特殊考量 系统应用之间的交换&am…

ios打包:uuid与udid

ios的uuid与udid混乱的网上信息 新人开发ios,发现uuid和udid在网上有很多帖子里是混淆的,比如百度下,就会说: 在iOS中使用UUID(通用唯一识别码)作为永久签名,通常是指生成一个唯一标识&#xf…

微服务学习-服务调用组件 OpenFeign 实战

1. OpenFeign 接口方法编写规范 1.1. 在编写 OpenFeign 接口方法时,需要遵循以下规范 1.1.1.1. 接口中的方法必须使用 RequestMapping、GetMapping、PostMapping 等注解声明 HTTP 请求的类型。 1.1.1.2. 方法的参数可以使用 RequestParam、RequestHeader、PathVa…

开源项目Umami网站统计MySQL8.0版本Docker+Linux安装部署教程

Umami是什么? Umami是一个开源项目,简单、快速、专注用户隐私的网站统计项目。 下面来介绍如何本地安装部署Umami项目,进行你的网站统计接入。特别对于首次使用docker的萌新有非常好的指导、参考和帮助作用。 Umami的github和docker镜像地…

研究 Day.js 及其在 Vue3 和 Vue 框架中的应用详解

前言 在前端开发中,日期和时间处理是一个常见需求。随着技术的发展,我们有了更多高效、灵活的日期库可供选择。Day.js 就是一个轻量级、易于使用的 JavaScript 日期库,其灵感来源于 Moment.js,但体积更小,速度更快。本…

python基础语法(3) -------- 学习笔记分享

目录: 1. 函数 1.1 语法格式 1.2 函数参数 1.3 函数返回值 1.4 变量的作用域 1.5 函数的执行过程 1.6 函数的链式调用 1.7 函数的嵌套调用 1.8 函数递归 1.9 参数默认值 1.10 函数的关键字传参 2. 列表和元组 2.1 列表和元组是啥 2.2 创建列表 2.3 访问下标 2.…

ceph新增节点,OSD设备,标签管理(二)

一、访问客户端集群方式 方式一: 使用cephadm shell交互式配置 [rootceph141 ~]# cephadm shell # 注意,此命令会启动一个新的容器,运行玩后会退出! Inferring fsid c153209c-d8a0-11ef-a0ed-bdb84668ed01 Inferring config /var/lib/ce…

解决查看服务器ESN(许可证管理)

服务器的ESN(许可证管理)和SN码是两个东西。 查看步骤如下: 进入服务器的iBMC管理系统(一般为机房运维人员可以查看) 选择“许可证管理” 红框中即可看到信息。

《深入解析:DOS检测的技术原理与方法》

DDOS入侵检测与防御 一、实现Linux下DDOS的入侵检测与防御 利用Python编程实现对wrk的泛洪攻击检测,并让程序触发调用Linux命令实现防御: 1、泛洪攻击的检测,可以考虑使用的命令,这些命令可以通过Python进行调用和分析 (1) netstat -ant …

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(四)

Understanding Diffusion Models: A Unified Perspective(四) 文章概括学习扩散噪声参数(Learning Diffusion Noise Parameters)三种等效的解释(Three Equivalent Interpretations) 文章概括 引用&#xf…

1.23 补题 寒假训练营

E 一起走很长的路! 输入描述 第一行输入两个整数 n,q(1≤n,q≤210^5),代表多米诺骨牌的个数和询问次数。 第二行输入 n 个整数 a1,a2,…,an​(1≤ai≤10^9),表示多米诺骨牌的重量。 此后输入…

dmfldr实战

dmfldr实战 本文使用达梦的快速装载工具,对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…

在深度Linux (Deepin) 20中安装Nvidia驱动

文章创作不易,麻烦大家点赞关注收藏一键三连。 在Deepin上面跑Tensorflow, pytorch等人工智能框架不是一件容易的事情。特别是如果你要使用GPU,就得有nvidia的驱动。默认情况下Deepin系统自带的是nouveau开源驱动。这是没办法用tensorflow的。下面内容是…

【Linux】IPC:匿名管道、命名管道、共享内存

⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 1、管道2、进程池3、命名管道4、共享内存 1、管道 我们知道进程具有独立性,但是在一些场景中进程间也需要通信&#…

Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用

QTableView 是QT的一个强大的表视图部件,可以与模型结合使用以显示和编辑数据。QSqlQueryModel、QSqlTableModel 都是用于与 SQL 数据库交互的模型,将二者与QTableView结合使用可以轻松地展示和编辑数据库的数据。 QSqlQueryModel的简单应用 import sys from PySid…

DeepSeek学术题目选择效果怎么样?

论文选题 一篇出色的论文背后,必定有一个“智慧的选题”在撑腰。选题足够好文章就能顺利登上高水平期刊;选题不行再精彩的写作也只能“当花瓶”。然而许多宝子们常常忽视这个环节,把大量时间花在写作上,选题时却像抓阄一样随便挑一…