Deepin系统深度学习环境配置指南

news2024/11/23 19:31:53

Deepin深度操作系统在众多Linux发行版本中深受欢迎,在实用性和专业方面到达了很好的均衡,该系统软件适配丰富支持很多第三方软件,增加了系统任务的灵活性。在装好该系统后,如何在该系统上进行深度学习代码训练调试,这就得需要配置好相应的显卡驱动程序,CUDA和CUDNN环境,下面我将详细介绍该环境配置指南。

如何安装Deepin系统,大家可以参考我之前的博客指南:

二、下载安装Nvidia显卡驱动

下载Nvidia显卡驱动

在安装显卡驱动之前,首先要确定自己的显卡版本。

在终端中输入如下代码:

sudo lshw -numeric -C display

在这里插入图片描述

在Nvidia官网查找下载对应版本的显卡驱动

官方地址:官方 | NVIDIA驱动程序

比如我的显卡是GTX1060按照相应的搜索参数进行查找,就会得到一系列的驱动列表
在这里插入图片描述
在这里插入图片描述

选择其中任意一个下载到文件夹,Deepin默认保存到Downloads文件夹中

这里建议下载稍为时间靠前的驱动版本,也就是稍微旧一点的版本,因为这样在后面安装Pytorch的时候能匹配的上

安装之前设置

在安装之前首先要进行相应的设置

禁用nouveau驱动

Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,让Linux更容易的应对各种复杂的NVIDIA显卡环境,安装完Linux系统即可进入桌面并且有不错的显示效果,所以,很多Linux发行版默认集成了Nouveau驱动,在使用NVIDIA显卡时默认安装Nouveau驱动。但是用户除了想让正常显示图形界面外很多时候还需要一些其他功能,Nouveau驱动不能完成,同时还会对安装其他插件造成干扰。因此需要禁用。

1.在终端中输入如下命令:

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

2.打开后在最下面输入以下代码,保存退出

blacklist nouveau
options nouveau modeset=0

3.在终端中输入代码,更新initramfs

sudo update-initramfs -u

4.在终端中输入代码,重启

reboot

5.重启之后,再次打开终端,输入以下代码

lsmod | grep nouveau

如果没有显示任何内容,说明操作全部成功。

开始安装驱动

安装Nvidia驱动程序,需要关闭停止当前的图形界面

使用快捷键 **CTRL+ALT+F2(或者 终端输入 sudo service lightdm stop) (或者 在终端中输入 init 3)**进入超级终端,也就是黑窗口界面,前面三种操作方式在不同的机器上不同,都试一下即可。

在黑窗命令中,可能会需要切换到root用户下进行操作,

首先要重置root用户密码,输入密码就OK了,

接下来 (cd /Downloads) 使用cd 命令进入到下载的Nvidia驱动文件夹

给驱动文件添加可执行权限

sudo chmod +x NVIDIA-Linux-x86_64-525.78.01.run

其中后面这个(NVIDIA-Linux-86_64-495-46.run)选择你下载的驱动版本

然后执行安装

sh NVIDIA-Linux-x86_64-525.78.01.run

划重点,接下来几步非常重要!!

出现只有一个 "OK"选项的,点击 OK 继续

下面按照顺序,选中红框的选项继续执行

选择NO

选择NO

选择yes

点击OK

只有OK,点击OK

安装结束以后,可以输入以下代码,回到桌面图像界面:

输入

nvidia-smi

显示如下图,表示安装成功

在这里插入图片描述

三、下载安装CUDA

CUDA 是 NVIDIA 发明的一种并行计算平台和编程模型。它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能。

在上面的Nvidia-smi 中我们可以看到CUDA Version是11.5,这里我们去官网查找11.5的CUDA版本下载安装。

选择如下选项:

在这里插入图片描述

在终端依次运行红框中的命令:

这条命令是先下载CUDA,可以在Downloads文件夹中右键在终端中打开,执行该命令

wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run

然后记得给下载好的文件添加可执行权限:

chmod +x cuda_11.0.2_450.51.05_linux.run

之后在运行安装命令

sudo sh cuda_11.0.2_450.51.05_linux.run

需要注意,下图红框不要选择,把 x 去掉,因为我们之前已经安装了NVIDIA驱动。

然后直接安装等待完成。

然后桌面右键打开终端,在 bashrc中添加如下代码

sudo gedit ./~bashrc #打开编辑 bashrc文件

在文件底部添加如下代码

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0.2/lib64
export PATH=$PATH:/usr/local/cuda-11.0.2/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.0.2

说明:上面的命令中cuda后面的版本号因人而异,注意自己下载的cuda版本号
另外我发现,直接写cuda 不用写cuda-xxx版本号也是可以的,通过路径实际查看一下就知道,/usr/local/cuda中的cuda这个文件夹实际上是个快捷方式,它指向的就是 cuda-xxx版本号这个文件夹

保存退出,输入如下命令,更新bashrc

检查CUDA是否安装安装成功,输入

显示以上内容,代表安装成功。

四、下载安装CUDNN

cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。

官方网站:NVIDIA cuDNN

下载cudnn需要注册登录NVIDIA账号,这个直接操作就可以了。

选择更多可选版本

在这里下载cudnn的时候,要记得选择的cudnn要与之前的cuda版本相匹配,具体看面。

这里选择了与cuda11.5版本对应cudnnv8.3.1,直接下载文件

下载完成后的是压缩包,因此需要解压命令将其解压打开

tar -xvf cudnn-linux-x86_64-8.3.1.22_cuda11.5-archive.tar.xz

解压之后

解压之后会有两个文件夹,接下来执行Linux copy命令,复制到相应的文件夹

在这个页面下右键终端打开

将include中的cudnn*.h文件复制到 cuda-11.5/include中

sudo cp include/cudnn*.h /usr/local/cuda-11.5/include/

将lib中的cudnn*.h文件复制到 cuda-11.5/include中

sudo cp -P lib/libcudnn* /usr/local/cuda-11.5/lib64

-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

给复制的文件添加权限

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

a是指所有的用户组,包括root用户组,文件拥有者的用户组,还有其他用户组。
+x是指添加执行权限。

验证CUDNN安装

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

或者使用这条命令

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

显示如图所示的页面则表示cudnn安装成功。

四、撒花

经过了很多次踩坑之后总结出了该安装指南,在此感谢实验室小伙伴的帮助~

恭喜你,Deepin上的NVIDIA显卡驱动,CUDA,CUDNN已经全部配置完毕,

接下来,你可以尽情去尝试学习深度学习了!

** 附:(卸载指令)**

sudo ./NVIDIA-Linux-x86_64-390.77.run --uninstall

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络编程.

文章目录一、概述通信要素一:IP和端口号IP端口号通信要素二:网络协议TCP网络编程UDP网络编程URL网络编程每日一考一、概述 1、网络编程中两个主要问题: 如何定位网上的一台或多台主机,定位主机上的特定应用 找到主机后&#xff0…

北京化工大学1/17寒假集训题解(>1800)

目录 A - 文艺平衡树 B - 可持久化文艺平衡树 C - 可持久化平衡树 主要思路:FHQ Treap 可持久化 D - 维护数列 初始化 Insert操作 Delete操作 Reverse操作 Make-Same操作 Get-Sum操作 Max-Sum操作 懒标记的处理 E - 文本编辑器 A - 文艺平衡树 这里的…

贪心策略(二)兑换零钱(最后还得是动规)

兑换零钱(一)_牛客题霸_牛客网 兑换零钱(二)_牛客题霸_牛客网 兑换零钱(一)_牛客题霸_牛客网 描述 给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要…

C++程序设计——类和对象II

一、再谈构造函数 1.构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量赋一个合适的初始值。 虽然上述构造函数调用后,对象中已经有了初始值,但是不能将其称之为类对象成员的初始化,构造函数…

Vue学习笔记(三)

Vue学习笔记三1.组件的引入及使用2.插槽3. 插槽三种写法3.1 第一种3.2 第二种3.3 第三种简化写法4.组件生命周期4.Vue路由1.组件的引入及使用 在components中写入组件Header.vue 在App.vue中进行引入 <template><div><!-- 组件化: 1个页面由不同的部分组合而…

excel日期函数:DATEDIF的几个实际应用公式编写

DATEDIF函数不仅可以用来计算年龄、工龄、工龄工资、项目周期&#xff0c;还可以用来做生日倒计时提醒&#xff0c;项目竣工日倒计时提醒等等。用上它&#xff0c;您再也不会缺席那些重要的日子&#xff0c;不论是亲人生日、项目竣工日&#xff0c;还是儿女的毕业典礼日。DATED…

明道云大湾区2023年季度闭门会议圆满结束

2023年1月12日&#xff0c;明道云在深圳坂田天安云谷召开明道云大湾区2023年季度闭门分享会。超过百位来自中大型企业组织的IT部门代表和业务技术专家莅临现场&#xff0c;进行了一下午的同台交流。广汽本田、深圳龙华区人民医院、民生银行及华润置地的项目代表&#xff0c;深度…

WebService最优方案选择

需求 最近&#xff0c;接触到了一个java对接C#的项目&#xff0c;使用WebService技术开发。项目已经快告一段落了&#xff0c;经过这几个月接触和使用。我有了一个清晰的认识&#xff0c;之前也调研了互联网上大部分实现的通讯&#xff0c;他们的优缺点&#xff0c;我都有一定…

linux系统下如何获取文件的创建时间

linux 获取文件的创建时间 提到获取文件的创建时间&#xff0c;写Java的小伙伴可能会说&#xff0c;那太简单了&#xff0c;java.nio.file.attribute.BasicFileAttributes下这个类不就记录了文件的相关信息吗&#xff0c;比如下面这段代码不就得到文件的创建时间了嘛&#xff…

chrono_CLOCK(二)

chrono_CLOCK&#xff08;二&#xff09; 文章目录chrono_CLOCK&#xff08;二&#xff09;从测量C程序运行时间引入C风格C风格时钟的成员和源码分析成员函数成员变量Clock提供的操作例子三个clock区别例子三个clock的精度问题方式一方式二从测量C程序运行时间引入 C风格 在C…

数据库,计算机网络、操作系统刷题笔记33

数据库&#xff0c;计算机网络、操作系统刷题笔记33 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle…

自定义View的学习笔记1-1

这一系列主要是跟随扔物线的学习笔记。 自定义View主要是三个部分&#xff0c;绘制&#xff0c;布局&#xff0c;触摸反馈。 绘制是这三个部分中&#xff0c;最重要的一个。 先说绘制&#xff0c;所谓绘制&#xff0c;指的就是控件内容的显示。啥意思&#xff0c;比如我们作…

02 技术太卷我学Apex-级联值列表

02 技术太卷我学Apex-级联值列表 0 值列表概念 就是页面输入时从下拉列表中选择固定值。 值列表可以在APEX中【共享组件】-【其它组件】-【值列表】创建&#xff0c;也可以也页面上自己用sql语句&#xff08;一般需要级联值列表最好在页面上创建&#xff09;创建。 1 创建一…

Node版本锁定

Node版本锁定问题方案一、锁定Node版本二、自动切换Node版本问题 接手项目时&#xff0c;不知道项目所用的Node版本同一个项目&#xff0c;不同人用不同的Node版本&#xff0c;引起编译后的未知问题 方案 一、锁定Node版本 在package.json中配置 engines&#xff0c;限定项目…

【微电网】基于改进粒子群算法的微电网优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

云原生周刊 | 使用 ChatGPT 协助解决 Prometheus 告警

开源项目推荐 kubernetes-chatgpt-bot 这是一个适用于 Slack 的 ChatGPT 机器人&#xff0c;只要有监控告警发送到 Slack 频道中&#xff0c;你就可以通过机器人向 ChatGPT 咨询如何解决这个告警&#xff0c;ChatGPT 将会给出一个较为详细的解决方案。 Copacetic Copacetic …

WEB文件管理器和上传器:GleamTech FileUltimate 8.5.1.0

GleamTech FileUltimate适用于 ASP.NET Core、MVC 和 WebForms 的FileUltimate文件管理器和上传器 将文件管理器快速集成到您的 ASP.NET 应用程序或站点中。 使用访问控制浏览和管理文件。 接受具有高级上传功能的文件&#xff08;上传器也可作为独立组件使用&#xff09;。 提…

应用程序进程启动过程

1 应用程序进程简介 想要启动一个应用程序&#xff0c;首先要保证这个应用程序所需要的应用程序进程已经启动。 AMS 在启动应用程序时会检查这个应用程序所需要的应用程序进程是否已经存在&#xff0c;如果不存在就会请求 Zygote 进程启动需要的应用程序进程。 在 Zygote进程启…

2023牛客寒假算法基础集训营1--鸡玩炸蛋人(带权并查集) 诈骗题?

题目如下&#xff1a; 示例1 输入 6 4 1 2 2 3 1 3 4 6 0 0 0 0 0 0输出 14示例2 输入 6 4 1 2 2 3 1 3 4 6 0 0 0 0 2 0输出 1题目链接 题解 or 思路&#xff1a; 首先如果我们理解题意了&#xff0c;这个题是顶级诈骗。 因为是无向图&#xff0c;我们需要记录图中 环…

算法第十三期——BFS-双向广搜

双向广搜 应用场景&#xff1a;有确定的起点s和终点t&#xff1b;把从起点到终点的单向搜索&#xff0c;变换为分别从起点出发和从终点出发的“相遇”问题。操作&#xff1a;从起点s(正向搜索&#xff09;和终点t(逆向搜索&#xff09;同时开始搜索&#xff0c;当两个搜索产生…