深度学习环境安装

1.安装英伟达显卡驱动

首先需要到NAVIDIA官网去查自己的电脑是不是支持GPU运算。
网址是:CUDA GPUs | NVIDIA Developer。打开后的界面大致如下,只要里边有对应的型号就可以用GPU运算,并且每一款设备都列出来相关的计算能力(Compute Capability)。
在这里插入图片描述

明确了显卡性能后,接下来就开始在Ubuntu20.04中安装对应的显卡驱动。

首先,检测NVIDIA图形卡和推荐的驱动程序的模型,在终端输入:

ubuntu-drivers devices

具体可以使用下面的命令安装:

sudo ubuntu-drivers autoinstall

或者去官网下载驱动再手动安装的方式,命令官网上有。

安装完成后重启系统,然后在终端中输入命令检测是否安装成功:

nvidia-smi

效果如下图所示:
在这里插入图片描述

2.安装CUDA

首先要知道硬件支持的CUDA版本:
在上图右上角我们看到“CUDA Version:12.2”,这个表明对于这款显卡,我们后面要装的CUDA版本最高不能超过12.2。

其次要明确CUDA版本需求:

本文最终的目的是装好深度学习环境,这里指的是最终能够正常的使用pytorch和paddlepaddle。这两款是当前使用比较多的深度学习框架,pytorch侧重于科研和模型验证,paddlepaddle更适合工业级深度学习开发部署(当然也可以使用tensorflow)。

为了能够使用他们,我们接下来需要按照顺序安装CUDA、cuDNN、nccl、paddlepaddle、pytorch。

在正式安装前我们首先要来确定当前的版本一致性,否则装到后面就会发现各种版本问题了。

前面2.2节我们装好了对应显卡的驱动,并且我们通过nvidia-smi命令知道了当前驱动最高适配到CUDA11.4,因此,我们后面安装的CUDA版本不能超过11.4。

接下来我们先看paddlepaddle和pytorch官网目前稳定版所支持的cuda。

paddlepaddle目前官网安装界面如下图所示:
在这里插入图片描述
pytorch官网安装界面:
在这里插入图片描述
尽量选择两个框架都支持的了,并且本机驱动也支持的CUDA版本。

接下来开始安装:

首先在英伟达官网下载cuda12.2进行安装即可。
在这里插入图片描述
这里选择CUDA Toolkit 12.2.0,单击进入下载页面。然后按照下图所示进行选择:
在这里插入图片描述

按照runfile(local)安装的方式简单,只需要在终端输入图中下方的两条NVIDIA推荐的命令就好了。

为了提高下载速度,可以先在windows上将这个run文件下载下来,然后再拷贝到Ubuntu服务器上进行安装。

在安装过程中会跳出一些选择界面,首先是 Abort和continue,选择continue。然后输入accept后出现CUDA Installer,如果已经安装过NVIDIA的驱动了,而弹出的CUDA Installer 自带显卡驱动,需要按空格去掉安装显卡驱动的选项(如果不去掉可能会引起驱动冲突),然后选择install。

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

在终端输入下面的命令打开文件:

gedit ~/.bashrc

在文件结尾输入以下语句,保存:

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

上面语句需要结合自己安装的CUDA版本对照着修改即可,此处是CUDA12.2版本。

最后,更新环境变量配置:

source ~/.bashrc

至此cuda安装完成,输入nvcc -V命令查看cuda信息。
在这里插入图片描述
如果没有输出,证明没有安装成功,此时基本只能重装系统,想想哪里和上面的步骤不一致,然后按上面的过程再来一遍。

如果想要卸载CUDA(例如重新安装了驱动等情况),需要使用下面的命令:

cd /usr/local/cuda-xx.x/bin/
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-xx.x

3.安装CUDNN

安装CUDNN的过程相对比较简单。上官网进行下载。
在这里插入图片描述
选择对应的CUDA版本,单击后选择cuDNN Library for Linux(x86_64)下载安装包。

然后打开终端输入类似下面的命令进行解压并拷贝安装:

tar -xf cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz
cp cuda/lib/* /usr/local/cuda-12.2/lib64/
cp cuda/include/* /usr/local/cuda-12.2/include/

注意,将上面的版本替换为你自己的版本。到这里就安装完成了。其实,cuDNN的安装本质上就是复制一堆的文件到CUDA中去。

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

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

CUDN + cuDNN安装完成,我们可以监控一下gpu状态:

watch -n 1 nvidia-smi

如果能有输出,就证明cuda和cudnn能正确匹配。

4.安装NCCL

由于深度学习分布式训练需要nccl支持,因此本小节来安装nccl。

首先从官网下载对应版本的nccl.
在这里插入图片描述
单击对应版本的nccl进行本地下载或在线下载:
在这里插入图片描述
本地下载需要执行以下命令:

sudo dpkg -i nccl-local-repo-ubuntu2004-2.19.3-cuda12.2_1.0-1_amd64.deb
sudo apt-get update
sudo apt install libnccl2=2.19.3-1+cuda12.2 libnccl-dev=2.19.3-1+cuda12.2

5.安装anconda

首先下载Anaconda3
在[清华镜像]下载Linux版本的anaconda
清华镜像官网Anaconda下载
在这里插入图片描述
这里选择的是Anaconda3-5.0.0-Linux-x86_64.sh

在用户文件夹下新建一个名为anaconda的文件夹,并将刚刚下载的文件放在此文件夹中,执行以下命令:

bash Anaconda3-5.0.0-Linux-x86_64.sh

需要都很多页协议,不断按回车键跳过。
出现询问时就输入yes
之后选择默认的安装目录,按回车确定。
出现询问是否初始化或配置环境变量就输入yes
安装完成。
创建虚拟环境:

conda create -n 环境名 python=版本号

进入虚拟环境:

conda activate 环境名

即可进行环境的安装。

6. 安装PaddlePaddle

这里参照官网进行安装即可:
在这里插入图片描述
最后进行验证。

使用 python 或 python3 进入python解释器,输入:

import paddle 
paddle.utils.run_check()

如果出现PaddlePaddle is installed successfully!,说明您已成功安装。同时会显示当前可以并行使用的GPU数量。

7.安装Pytorch

参照官网命令进行安装:
在这里插入图片描述
最后验证安装是否成功。

打开Python,输入以下命令:

import torch
print(torch.cuda.is_available())

正常的话输出“True”。

参考文献:

一文掌握Ubuntu20.04深度学习环境搭建(显卡驱动、CUDA、CUDNN、NCCL、Pytorch、PaddlePaddle)
Ubuntu安装Anaconda详细步骤(Ubuntu22.04.1,Anaconda3-2023.03)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu常见配置

ubuntu各个版本的安装过程大差小不差,可以参考,ubuntu20.04 其它版本换一下镜像版本即可 安装之后需要配置基本的环境,我的话大概就以下内容,后续可能有所删改 sudo apt-get update sudo apt-get install gcc sudo apt-get inst…

就业班 2401--2.26 Linux Day5--进程管理一

一、权限扩展 文件权限管理之: 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ----------------…

mongoose httpserver浅析

文章目录 前言一、结构体及其功能二、函数MG_LOGmg_http_listenmg_mgr_poll question参考链接 前言 mongoose是一款基于C/C的网络库,可以实现TCP, UDP, HTTP, WebSocket, MQTT通讯。mongoose是的嵌入式网络程序更快、健壮,易于实现。 mongoose只有mong…

LeetCode 0938.二叉搜索树的范围和:深度优先搜索(可中序遍历)

【LetMeFly】938.二叉搜索树的范围和:深度优先搜索(可中序遍历) 力扣题目链接:https://leetcode.cn/problems/range-sum-of-bst/ 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。…

【踩坑】PyTorch中指定GPU不生效和GPU编号不一致问题

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 指定GPU不生效问题 解释:就是使用os.environ["CUDA_VISIBLE_DEVICES"] "1"后,后面使用起来仍然是cuda0. 解决:在最开头就使用 import os os.environ[&…

测试开发(6)软件测试教程——自动化测试selenium(自动化测试介绍、如何实施、Selenium介绍 、Selenium相关的API)

接上次博客:测试开发(5)测试分类标准 :按测试对像划分、按是否查看代码划分、按开发阶段划分、按测试实施组织、按是否运行划分、按是否手工划分、按测试地域划分-CSDN博客 目录​​​​​​​ 什么是自动化测试 自动化测试介绍…

【React架构 - Scheduler中的MessageChannel】

前序 我们都知道JS代码是在浏览器5个进程(下面有介绍)中渲染进程中的Js引擎线程执行的,其他还有GUI渲染线程、定时器线程等,而页面的布局和绘制是在GUI线程中完成的,这些线程之间是互斥的,所以在执行Js的同时会阻塞页面的渲染绘制…

MCU最小系统电路设计(以STM32F103C8T6为例)

目录 一、何为最小系统? 二、最小系统电路设计 1.电源 (1)各种名词解释 (2)为什么会有VDD_1 _2 _3区分? (3)Mirco USB (4)5v->3.3v滤波电路 &#…

VsCode的leetcode插件无法登录

前提 想使用VsCode的leetcode插件进行刷题,然后按照网上的教程进行安装下载,但是到了登录这一步,死活也登录不了,然后查看log一直报的错误是invalid password。 解决方法 首先确定在插件中设置的站点是Leetcode中国&#xff0c…

面试笔记系列四之SpringBoot+SpringCloud基础知识点整理及常见面试题

什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 Spring Boot 有哪…

nodejs 实现pdf与图片互转

PDF转图片 效果图 代码 const path require(path); const pdf require(pdf-poppler); const fs require(fs); // PDF文件路径 const pdfFilePath ./path/test.pdf; // 转换选项 const opts { format: png, // 输出图片格式,可以是 jpeg, png, ppm…

Springboot+vue的考务报名平台(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的考务报名平台(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的考务报名平台,采用M(model&#xff0…

Redis7

摘录 https://github.com/Romantic-Lei/Learning-in-practice/blob/master/Redis/ 官网地址: 英文:Redis 中文:CRUG网站 redis中文文档 安装包:https://redis.io/download/,选择redis7.0版本即可 Redis在线测试地址(不用下载也…

jmeter(四)HTTP请求

启动jmeter,建立一个测试计划 这里再次说说怎么安装和启动jmeter吧,昨天下午又被人问到怎样安装和使用,我也是醉了;在我看来,百度能解决百分之八十的问题,特别是基础的问题。。。 安装:去官网…

黑马程序员——接口测试——day03——Postman断言、关联、参数化

目录: Potman断言 Postman断言简介Postman常用断言 断言响应状态码断言包含某字符串断言JSON数据Postman断言工作原理Postman关联 简介实现步骤核心代码创建环境案例1案例2Postman参数化 简介数据文件简介编写数据文件 CSV文件JSON文件导入数据文件到postman读取数…

springboot-基础-添加model和controller的简单例子+常用注解含义

备份笔记。所有代码都是2019年测试通过的,如有问题请自行搜索解决! 上一篇:springboot-基础-eclipse配置helloword示例 目录 添加model和controller的例子注解开发使用RestController 大坑 Model ModelMap和ModelAndView的区别 添加model和c…

Python算法100例-2.6 分糖果

完整源代码项目地址,关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.运行结果 1.问题描述 10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块&…

vue 中实现音视频播放进度条(满足常见开发需求)

由于开发需要,作者封装了一个音视频播放进度条的插件,支持 vue2 及 vue3 ,有需要的朋友后台私信作者获取插件哦,下面是对该款插件的介绍。 插件默认样式👇(插件提供了多个配置选项,可根据自身需…

深度访谈 | 模块化建筑让设计和建造更简单!

从汽车行业转行建筑行业转行建筑行业,将汽车工业理念和建筑营造结合。大咖面对面,优积科技CEO刘其东接受自媒体视频号——Elaine深度专访。解读像造汽车一样造房子。 汽车行业和建筑行业有何渊源?到底是什么样的机缘巧合使一帮造汽车的团队要…

PDF文件转换为图片

现在确实有很多线上的工具可以把pdf文件转为图片,比如smallpdf等等,都很好用。但我们有时会碰到一些敏感数据,或者要批量去转,那么需要自己写脚本来实现,以下脚本可以提供这个功能~ def pdf2img(pdf_dir, result_path…