[Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例

写在前面

先检查自己有没有安装使用wget的命令,没有的话输入下面命令安装:

apt-get install wget -y

查看gcc的安装

sudo apt install gcc   #安装gcc
gcc --version          #查看gcc是否安装成功
#若上述命令不成功使用下面的命令尝试之后再执行上面的命令
sudo apt-get install libglib2.0-dev    #报错使用此命令进行依赖库安装
sudo apt-get update                    #更新一下软件资源
apt update -y 
sudo apt install gcc --fix-missing     #更新一下软件资源

在这里插入图片描述

一、检查本机是否有CUDA工具包,输入nvcc -V

在这里插入图片描述

二、安装cuda

[1] CUDA工具包:https://developer.nvidia.com/cuda-toolkit-archive
[2] cuDNN库:https://developer.nvidia.com/rdp/cudnn-archive

1.在命令行输入nvidia-smi查看显卡驱动版本也就是最高支持的CUDA工具包版本。
例如,本机可安装12.0及以下的CUDA工具包:
在这里插入图片描述

2.在nvidia官网选择对应版本的CUDA工具包并选择你的机器配置,我们就选择12.0版本下载

在这里插入图片描述
在这里插入图片描述
3.在终端执行如下命令

wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run
sudo sh cuda_12.0.0_525.60.13_linux.run

1)第一行命令下载安装包
在这里插入图片描述

2)使用第二行sudo sh命令需要提前下载gcc库,此过程会有点慢有点卡,耐心等待,出现界面之后卡了把终端框往下拉拉…
在这里插入图片描述

键入accept确认
在这里插入图片描述

我们已经有驱动了,这里取消安装驱动,上下键和回车键选择。
在这里插入图片描述

稍作等待,出现以下提示信息就安装好了,可以看到CUDA安装到了/usr/local/cuda-12.0/
在这里插入图片描述

4.修改环境变量
1)打开配置文件

# 打开bashrc配置文件
vi ~/.bashrc

2)在配置文件末尾加上:

# cuda env
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-12.0
export PATH=$PATH:/usr/local/cuda-12.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64

在这里插入图片描述

执行wq,保存退出

3)source 一下配置文件

source ~/.bashrc

5.检查是否安装完成
使用nvcc -Vnvidia-smi检查CUDA是否安装完成,出现以下提示代表安装完成
在这里插入图片描述
编译并执行CUDA样例程序,出现pass代表CUDA和GPU正常运行:

cd cd /usr/local/cuda-12.0/extras/demo_suite/
sudo make
./deviceQuery

在这里插入图片描述

三.安装cudnn

1.根据安装的CUDA工具包版本在官网选择适合版本的cuDNN,本文安装的CUDA版本是12.0,就选择与之对应的cuDNN v8.9.1,选择Local Installer for Linux x86_64 (Tar)。
在这里插入图片描述

2.复制cuDNN库的链接,使用wget下载或者下载到自己电脑之后再传到服务器上。
3.解压cuDNN文件,并进入解压出的文件夹,拷贝文件到/usr/local/cuda-12.0中

	tar -xvf cudnn-linux-x86_64-8.9.1.23_cuda12-archive.tar.xz  #解压文件cd cudnn-linux-x86_64-8.9.1.23_cuda12-archive               sudo cp lib/* /usr/local/cuda-12.0/lib64/                 #复制文件sudo cp include/* /usr/local/cuda-12.0/include/sudo chmod a+r /usr/local/cuda-12.0/lib64/*              #赋予权限sudo chmod a+r /usr/local/cuda-12.0/include/*

在这里插入图片描述

4.查看cuDNN版本cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
在这里插入图片描述

上述教程为这台机器上的所有用户安装了CUDA和cuDNN,我们切一下普通用户查看nvcc是否能用
在这里插入图片描述

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

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

相关文章

【数据结构算法(一)】递归篇(常见实例讲解)

🌈键盘敲烂,年薪30万🌈 ⭐本篇讲解实例: 斐波那契、兔子问题、猴子吃桃问题、跳台阶问题、汉诺塔、杨辉三角 ⭐用到的递归思想: 无记忆递归、记忆递归(重点掌握) 目录 一、斐波那契: ①无记忆多路递归&am…

【飞控调试】DJIF450机架+Pixhawk6c mini+v1.13.3固件+好盈Platinium 40A电调无人机调试

1 背景 由于使用了一种新的航电设备组合,在调试无人机起飞的时候遇到了之前没有遇到的问题。之前用的飞控(Pixhawk 6c)和电调(Hobbywing X-Rotor 40A),在QGC里按默认参数配置来基本就能平稳飞行&#xff0…

【Linux】21、软中断、网络小包、SYN FLOOD 攻击、sar tcpdump

文章目录 一、通俗理解:从“取外卖”看中断二、软中断2.1 网卡收发数据包2.2 查看软中断和内核线程2.3 案例2.3.1 案例:动态库 sleep 导致软中断2.3.2 Nginx 进程的不可中断状态是系统的一种保护机制,可以保证硬件的交互过程不被意外打断。所…

SpringBoot使用DevTools实现后端热部署

📑前言 本文主要SpringBoot通过DevTools实现热部署的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&…

docker 安装mongodb 实现 数据,日志,配置文件外挂

docker 安装mongodb 实现数据,日志,配置文件外挂 1 背景 最近开发了一个评论系统之前用mysql来存储数据,但是考虑到后期业务增大访问量也会增大,为了兼容这种高并发的场景,因此经过多方面的考虑,我们最终…

理论与实践相结合之Cisco Packet Tracer网络模拟器安装教程

简介 Packet Tracer是由思科设计的跨平台可视化仿真工具,它允许用户创建网络拓扑以模仿计算机网络和使用命令行界面来模拟配置思科路由器和交换机。Packet Tracer的用户界面为拖放式,允许用户根据自己的需要添加和删除模拟的网络设备。 Packet Tracer很…

RVC从入门到......

RVC变声器官方教程:10分钟克隆你的声音!一键训练,低配显卡用户福音!_哔哩哔哩_bilibili配音:AI逍遥散人(已授权)关注UP主并私信"RVC"(三个字母)自动获取一键训…

MySQL 的执行原理(一)

5.1 单表访问之索引合并 我们前边说过 MySQL 在一般情况下执行一个查询时最多只会用到单个二级 索引,但存在有特殊情况,在这些特殊情况下也可能在一个查询中使用到多个二 级索引,MySQL 中这种使用到多个索引来完成一次查询的执行方法称之为&…

IntelliJ IDEA 2023 v2023.2.5

IntelliJ IDEA 2023是一款功能强大的集成开发环境(IDE),为开发人员提供了许多特色功能,以下是其特色介绍: 新增语言支持:IntelliJ IDEA 2023新增对多种编程语言的支持,包括Kotlin、TypeScript、…

局部指令和全局指令的注册和使用

全局指令 先写一个js文件 import store from /store const directivePlugin {install(Vue) {Vue.directive(checkBtn, {inserted(el, binding) {// el: 指令绑定的那个元素对象 dom// binding.value: 指令等于号后面绑定的表达式的值 v-if"xxx"// 拿到el 拿到v…

【机器学习12】集成学习

1 集成学习分类 1.1 Boosting 训练基分类器时采用串行的方式, 各个基分类器之间有依赖。每一层在训练的时候, 对前一层基分类器分错的样本, 给予更高的权重。 测试时, 根据各层分类器的结果的加权得到最终结果。 1.2 Bagging …

远程炼丹教程

【精选】深度学习远程炼丹:一文离线完成ubuntudockerpycharm环境配置_不能联网的电脑如何用docker配置深度学习环境_Yunlord的博客-CSDN博客文章浏览阅读2.6k次,点赞8次,收藏10次。本文详细讲解如何在离线服务器中安装dockerpycharm的远程深度…

java 实现串口通讯

1、引入依赖 <dependency><groupId>org.scream3r</groupId><artifactId>jssc</artifactId><version>2.8.0</version> </dependency>2、配置启动串口 Component public class ContextHolder implements ApplicationContextAw…

Windows网络「SSL错误问题」及解决方案

文章目录 问题方案 问题 当我们使用了神秘力量加持网络后&#xff0c;可能会和国内的镜像源网站的之间发生冲突&#xff0c;典型的有 Python 从网络中安装包&#xff0c;如执行 pip install pingouin 时&#xff0c;受网络影响导致无法完成安装的情况&#xff1a; pip config…

量化交易:建立趋势跟踪策略的五个指标

什么是趋势跟踪策略&#xff1f; 趋势跟踪策略是只需需顺势而为的策略&#xff0c;即在价格上涨时买入&#xff0c;在价格开始下跌时卖出。在趋势跟踪策略中&#xff0c;人们的目标不是预测或预测&#xff0c;而只是关注市场上的任何新兴趋势。 趋势是如何出现的&#xff1f;…

SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段

SQL INSERT INTO 语句用于在表中插入新记录。 INSERT INTO 语法 可以以两种方式编写INSERT INTO语句&#xff1a; 指定要插入的列名和值&#xff1a; INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);如果要为表的所有列添加值&#xff0c;则无需在SQL…

系列六、JVM的内存结构【栈】

一、产生背景 由于跨平台性的设计&#xff0c;Java的指令都是根据栈来设计的&#xff0c;不同平台的CPU架构不同&#xff0c;所以不能设计为基于寄存器的。 二、概述 栈也叫栈内存&#xff0c;主管Java程序的运行&#xff0c;是在线程创建时创建&#xff0c;线程销毁时销毁&…

LabVIEW编程开发NI-USRP

LabVIEW编程开发NI-USRP 可编程性是SDR的关键特性&#xff0c;它使人们能够将无线电外围设备转换为先进的无线系统。USRP是市场上最开放、最通用的SDR&#xff0c;可帮助工程师在主机和FPGA上使用各种软件开发工具构建系统。 有多种选项可用于对基于SDR的系统的主机进行编程。…

Pytorch D2L Subplots方法对画图、图片处理

问题代码 def show_images(imgs, num_rows, num_cols, titlesNone, scale1.5): #save """绘制图像列表""" figsize (num_cols * scale, num_rows * scale) _, axes d2l.plt.subplots(num_rows, num_cols, figsizefigsize) axes axes.flatten…

springMVC学习笔记-请求映射,参数绑定,响应,restful,响应状态码,springMVC拦截器

目录 概述 springMVC做了什么 springMVC与struts2区别 springMVC整个流程是一个单向闭环 springMVC具体的处理流程 springMVC的组成部分 请求映射 RequestMapping 用法 属性 1.value 2.method GET方式和POST方式 概述 HTTP给GET和POST做了哪些规定 GET方式&…