Ubuntu20.04 安装 cudatookit 12.2 + cudnn 安装

最简约的部署Ubuntu20.04深度学习环境的教程

1. 安装Ubuntu20.04 系统

B站详细的安装教程
简约安装版

2. 安装Nvidia显卡驱动

我参考了各种资料,重装系统,完美解决开机显示器黑屏无法进入桌面的情况

黑屏问题主要是由linux内核更新导致,nvidia 不兼容 ubuntu的图像显示,所以很容易出现黑屏情况

在安装nvidia驱动前一定要使用命令:

# 一定要保持当前的内核,也就是安装 NVIDIA 驱动时用的内核
sudo apt-mark hold linux-image-generic linux-headers-generic

即保持当前系统的内核不更新之后,再去安装 NVIDIA 驱动,成功解决问题

打开应用程序里面的 软件与更新 选择最适合自己的版本,然后直接点击 应用更改,等待一会
在这里插入图片描述

安装完毕后,直接重新启动,然后输入nvidia-smi 成功出现以下画面:

在这里插入图片描述

3. 安装 cudatookit 12.2

由于显卡最高支持到CUDA 12.2
这个版本以前的CUDA都是兼容的,怕以后再升级麻烦,所以就直接安装支持的最高版本了

CUDA Toolkit Archive的网址为 https://developer.nvidia.com/cuda-toolkit-archive

点击CUDA Toolkit 12.2.0下载相应版本的CUDA12.2.0(选自己想要安装的版本即可,这里以12.2.0为例)

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

为了少输入点指令,所以就选择了runfile,感觉是最简单的方法了

运行上面指令后,会弹出如下界面,点击Continue,然后再输入accept

在这里插入图片描述
在弹出的界面中通过Enter键,取消Driver和535 的安装,然后点击Install,等待

配置CUDA的环境变量
CUDA安装完成后,需要配置变量环境才能正常使用。首先在终端输入

sudo gedit ~/.bashrc

打开.bashrc文件。然后,在.bashrc文件的最后添加以下CUDA环境变量配置信息

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

最后 ctrl+s 保存

刷新配置

source ~/.bashrc

查看并且测试安装

nvcc -V

在这里插入图片描述
查看到CUDA的安装信息,如下图所示,至此CUDA安装成功!

4. 安装cuDNN

cuDNN的网址为 https://developer.nvidia.com/rdp/cudnn-download

选择Ubuntu20.04系统下,CUDA12.X 对应的cuDNN v8.9.6版本,如下图所示:

在这里插入图片描述

下载对应版本的 deb 文件,在下载的文件夹里面,使用命令安装

sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.6.50_1.0-1_amd64.deb

安装完成会显示,后面的操作命令,执行对应的命令就行:

sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.6.50/cudnn-local-1998375D-keyring.gpg /usr/share/keyrings/

若没有显示提示命令则执行通用命令:

sudo cp /var/cudnn-local-*/cudnn-*-keyring.gpg /usr/share/keyrings/

安装对应的依赖包

进入文件夹cd /var/cudnn-local-repo-ubuntu2204-8.9.6.50/,安装对应的依赖包,这些依赖包直接下载安装会失败,都包含在deb文件中,进入上面提到的文件夹安装即可:

sudo dpkg -i libcudnn8_8.9.6.50-1+cuda12.2_amd64.deb
sudo dpkg -i libcudnn8-dev_8.9.6.50-1+cuda12.2_amd64.deb
sudo dpkg -i libcudnn8-samples_8.9.6.50-1+cuda12.2_amd64.deb

验证安装成功

cd /usr/src/cudnn_samples_v8	#  进入文件夹cd /usr/src/cudnn_samples_v8
cp -r /usr/src/cudnn_samples_v8/ $HOME	# 将 cuDNN 示例复制到用户文件
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make	# 编译 cuDNN mnisiCUDNN 示例
./mnistCUDNN	# 运行 mnistCUDNN 示例

在这里插入图片描述
返回 Test passed! 则证明安装成功!!!开始深度学习炼丹之旅吧!!!

参考文献

ubuntu20.04安装NVIDIA显卡以及重启黑屏的一种解决方案
Ubuntu 20.04-NVIDIA显卡驱动-安装和卸载-解决黑屏问题
Ubuntu系统安装nvidia(英伟达)驱动后,开机显示器黑屏无法进入桌面
Ubuntu20.04下CUDA、cuDNN的详细安装与配置过程(图文)
Ubuntu20.04配置NVIDIA+CUDA12.2+CUDNN【附所有下载资源】【亲测有效】【非常详细】
Ubuntu 22.04 安装 CUDA 和 cuDNN 及验证

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

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

相关文章

煤矿ar远程协作平台系统提升了操作的安全性和效率

工业AR远程专家协助系统为企业量身打造大型设施的虚拟布局方案。借助先进的AR增强现实技术,企业能够在虚拟环境中精准模拟并购买适配设备,确保设施的顺畅运行。同时,工业AR远程专家协助系统能提供的协作功能让团队成员能够实时共享虚拟布局&a…

昇思25天学习打卡营第8天|MindSpore-SSD目标检测

SSD目标检测介绍 SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(mean Average Precision)以及59FPS;对于512x512的网络,达到了76.9%mAP ,超…

Mouse Albumin ELISA Kit小鼠白蛋白ELISA试剂盒

白蛋白存在于所有哺乳动物和许多低等脊椎动物的血管内和血管外,是一种由肝脏合成的约67kDa的蛋白质。正常情况下,只有非常微量的白蛋白能逃过肾小球的重吸收,并被排泄到尿液中。ICL的Mouse Albumin ELISA Kit是一种高灵敏度的双抗体夹心法ELI…

基于“香港世界”的SLAM技术介绍

在视觉感知技术中,理解和描述复杂的三维室外场景至关重要,尤其是自动驾驶技术的发展要求对陌生环境具有更强的适应能力和鲁棒性。传统上,使用“曼哈顿世界”和“亚特兰大世界”模型来描述具有垂直和水平结构的城市场景。 当遇到像香港这样地形…

C++:类与面向对象static和this关键字其他关键字

类与面向对象 struct和class (1)struct是C中用户自定义类型,主要功能是对功能相关数据的封装 (2)struct不能直接封装函数,但可以通过封装函数指针来间接封装函数 (3)struct就是class的初级阶段,class在struct基础上做了很多扩展,便…

cartographer代码学习-扫描匹配(暴力搜索)

在学习栅格地图的时候&#xff0c;我们知道在栅格更新前会先进行扫描匹配获取当前机器人最有可能所在的位姿&#xff1a; // local map frame <- gravity-aligned frame// 扫描匹配, 进行点云与submap的匹配std::unique_ptr<transform::Rigid2d> pose_estimate_2d Sca…

[4]python+selenium - UI自动框架之封装基类BasePage页面

这部分内容是页面上的一些基本操作 from selenium.common.exceptions import TimeoutException, NoSuchElementException, WebDriverException, \StaleElementReferenceException from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support im…

某安全公司DDoS攻击防御2024年6月报告

引言&#xff1a; 在2024年6月&#xff0c;网络空间的安全挑战汹涌澎湃。分布式拒绝服务&#xff08;DDoS&#xff09;攻击频发&#xff0c;针对云服务、金融科技及在线教育平台的精密打击凸显出当前网络威胁环境的严峻性。 某安全公司作为网络安全防护的中坚力量&#xff0c…

mybatis之动态标签

有些时候&#xff0c;sql语句where条件中&#xff0c;需要一些安全判断&#xff0c;例如按性别检索&#xff0c;如果传入的参数是空的&#xff0c;此时查询出的结果很可能是空的&#xff0c;也许我们需要参数为空时&#xff0c;是查出全部的信息。这是我们可以使用动态sql&…

代码随想录算法训练营Day55|42.接雨水、84.柱状图中最大的矩形

接雨水 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 暴力解法 对计算接到的雨水&#xff0c;有两种方式&#xff0c;一是按照行来计算。 另一种是按列计算 按列计算容易不乱。基本思路如下&#xff1a; 对每列i进行循环&#xff0c;在循环中&#xff0c;找到该列左…

HarmonyOS Next开发学习手册——视频播放 (Video)

Video组件用于播放视频文件并控制其播放状态&#xff0c;常用于为短视频和应用内部视频的列表页面。当视频完整出现时会自动播放&#xff0c;用户点击视频区域则会暂停播放&#xff0c;同时显示播放进度条&#xff0c;通过拖动播放进度条指定视频播放到具体位置。具体用法请参考…

【JVM-02】垃圾收集(回收)算法

【JVM-02】垃圾收集/回收算法 1. 分代收集算法2. 标记-清除算法3. 标记-复制算法4. 标记-整理算法 1. 分代收集算法 分代收集(回收)算法根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代&#xff0c;这样我们就可以根据各个年代的特点选择合适的垃圾收集…

Kotlin中object关键字的作用

1、对象声明&#xff0c;通过这种方式创建一个单例对象。 object MySingleton{ fun function{ //方法代码块 } } 调用方式&#xff1a;MySingleton.function(),类似像Java的静态方法 2、在类内部声明伴生对象 class OutClass { companion object{ val value 1 fun method(…

【算法题】爬楼梯 (经典递归)

题 爬楼梯&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 输入&#xff1a; n 2 输出&#xff1a; 2 解释&#xff1a; 有两种方法可以爬到楼顶。 1 阶 1 阶 2 阶 示例 2&#x…

寒武纪实现高维向量的softmax进阶优化和库函数对比

关于寒武纪编程可以参考本人之前的文章添加链接描述,添加链接描述,添加链接描述 实验证明,axis=0和axis=-1的时候,手写softmax速度可以和库函数媲美,甚至于更甚一筹。 src/softmax.mlu #include <bang.h> #include

Nik Collection by DxO:摄影师的创意利器与调色宝典

在数码摄影的世界里&#xff0c;后期处理是摄影师们展现创意、调整细节、提升作品质量的重要步骤。而Nik Collection by DxO作为一款由DxO公司开发的强大照片编辑插件套件&#xff0c;为摄影师们提供了一套全面的、功能丰富的工具集&#xff0c;让他们的创意得以充分发挥。 Ni…

遇到多语言跨境电商系统源码问题?这里有解决方案!

从手机到电脑&#xff0c;从线下到线上&#xff0c;如今&#xff0c;跨境电商正在打破地域界限&#xff0c;成为全球贸易的新引擎。在这个全球化的背景下&#xff0c;跨境电商平台的运营也面临着一系列的挑战&#xff0c;其中之一就是多语言问题。如果你遇到了多语言跨境电商系…

2065. 最大化一张图中的路径价值 Hard

给你一张 无向 图&#xff0c;图中有 n 个节点&#xff0c;节点编号从 0 到 n - 1 &#xff08;都包括&#xff09;。同时给你一个下标从 0 开始的整数数组 values &#xff0c;其中 values[i] 是第 i 个节点的 价值 。同时给你一个下标从 0 开始的二维整数数组 edges &#xf…

小抄 20240629

1 很多人当下焦虑的原因&#xff0c;是短期内无法实现别人长期才能做到的目标&#xff0c;总想几天就能追赶别人几年的努力&#xff0c;只看到了别人的结果&#xff0c;没有思考过别人的过程。 2 把时间线拉长看&#xff0c;人和人都只是阶段性在一起&#xff0c;只要人还在成…

vivado FIFO IP核 中的rd_valid信号

在Vivado中使用FIFO IP核时&#xff0c;valid信号&#xff08;通常称为rd_valid或dout_valid&#xff09;是一个重要的控制信号。让我详细解释它的作用和使用场景。 valid信号的作用&#xff1a; 功能&#xff1a; valid信号是一个输出信号&#xff0c;用于指示FIFO输出数据的…