[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是否能用
在这里插入图片描述

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

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

相关文章

长短期记忆(LSTM)与RNN的比较:突破性的序列训练技术

长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。 Why LSTM提出的动机是为了解…

【powershell】入门和示例

▒ 目录 ▒ 🛫 导读开发环境 1️⃣ 简介用途IDE解决此系统上禁止运行脚本 2️⃣ 语法3️⃣ 实战数据库备份执行循环拷贝文件夹 🛬 文章小结📖 参考资料 🛫 导读 开发环境 版本号描述文章日期2023-11-17操作系统Win10 - 22H21904…

Java JVM虚拟机

加载字节码文件.class 1字节一般为8位 字节码结构: 第一部分 4字节 cafebaby 第二部分 版本号 00 00 00 32, 第三部分 常量数量 count 第四部分常量池 常量类型表示: 继承关系改变 1.1以后 后面是属性方法 等参数 通过javap 反编译class ,javap xx.class javap -c xxx.…

【Redis】springboot整合redis(模拟短信注册)

要保证redis的服务器处于打开状态 上一篇: 基于session的模拟短信注册 https://blog.csdn.net/m0_67930426/article/details/134420531 整个流程是,前端点击获取验证码这个按钮,后端拿到这个请求,通过RandomUtil 工具类的方法生…

.nc格式文件的显示及特殊裁剪方式

最近我们遇到一个nc格式的文件,需要将它做成报告插图,bing搜索一番以后,了解到nc的全名为NetCDF(network Common Data Form),是一种网络通用数据格式,广泛用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。…

【超好用的工具库】hutool-all工具库的基本使用

简介(可不看): hutool-all是一个Java工具库,提供了许多实用的工具类和方法,用于简化Java开发过程中的常见任务。它包含了各种模块,涵盖了字符串操作、日期时间处理、加密解密、文件操作、网络通信、图片处…

指针传2(续集)

近期的天气是真的冷啊,老铁们一定要照顾好自己呀,注意防寒保暖,没有你们我怎么活啊! 上次的指针2的末尾,给大家分享了两个有趣的代码,今天就先来讲一讲那两个代码: 两个有趣的代码:…

Logrotate日志切割工具的应用与配置

Logrotate日志切割工具的应用与配置,以下是公司生产环境亲测,跳了不少的坑,最后已经部署到生产了,可放心使用 简介 Logrotate是一个在Unix和类Unix系统(如Linux)上用于管理日志文件的实用程序。它可以帮助…

官宣定档 | 3大主题论坛重磅行业颁奖,CGT Asia 2024第五届亚洲细胞与基因治疗创新峰会特色亮点抢先看

细胞与基因治疗代表着未来医学发展的趋势,随着技术的不断更新与发展与支持政策的持续推出,细胞与基因治疗产业的希望被无限扩大,自第一批细胞治疗与基因治疗产品上市到如今,行业已经进入快车道,步入高速发展期&#xf…

如何确保消息不会丢失

本篇文章大家还可以通过浏览我的博客阅读。如何确保消息不会丢失 - 胤凯 (oyto.github.io)很多人刚开始接触消息队列的时候&#xff0c;最经常遇到的一个问题就是丢消息了。<!--more-->对于大部分业务来说&#xff0c;丢消息意味着丢数据&#xff0c;是完全无法接受的。 …

C语言--给定一行字符串,获取其中最长单词【图文详解】

一.问题描述 给定一行字符串,获取其中最长单词。 比如&#xff1a;给定一行字符串&#xff1a; hello wo shi xiao xiao su 输出&#xff1a;hello 二.题目分析 “打擂台算法”&#xff0c;具体内容小伙伴们可以参考前面的内容。 三.代码实现 char* MaxWord(const char* str)…

CMakeLists.txt基础指令与cmake-gui生成VS项目的步骤

简介 本博客主要介绍cmake的基本指令&#xff0c;同时&#xff0c;很多使用Visual Studio小白从Gitbub下载项目源码后&#xff0c;看到CMakeLists.txt&#xff0c;不知道如何使用Visual Studio编译源码&#xff1b;针对以上问题&#xff0c;做一下简单操作与解释&#xff0c;方…

c语言-数据结构-堆

目录 一、二叉树 1、二叉树的概念 2、完全二叉树和满二叉树 3、完全二叉树的顺序存储 二、堆 2、堆的概念与结构 3、堆的创建及初始化 4、堆的插入&#xff08;小堆&#xff09; 5、堆的删除 6、显示堆顶元素 7、显示堆里的元素个数 8、测试堆的各个功能 9、 实现堆…

零代码编程:用ChatGPT批量转换多个视频文件夹到音频并自动移动文件夹

有很多个视频文件夹&#xff1a; 要全部转成音频&#xff0c;然后复制到另一个文件夹。 在ChatGPT中输入如下提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个批量将Mp4视频转为Mp3音频的任务&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;…

机器学习 天气识别

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/Nb93582M_5usednAKp_Jtw) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/)** >- **&#x1f680;…

matlab层次分析法模型及相关语言基础

发现更多计算机知识&#xff0c;欢迎访问Cr不是铬的个人网站 代码放在最后面! 这篇文章是学习层次分析法模型的笔记。 1.什么时候用层次分析法 层次分析法是建模比赛中最基础的模型之一&#xff0c;其主要用于解决评价类问题&#xff08;例如&#xff1a;选择哪种方案最好、…

Mysql数据库 16.SQL语言 数据库事务

一、数据库事务 数据库事务介绍——要么全部成功要么全部失败 我们把完成特定的业务的多个数据库DML操作步骤称之为一个事务 事务——就是完成同一个业务的多个DML操作 例&#xff1a; 数据库事务四大特性 原子性&#xff08;A&#xff09;&#xff1a;一个事务中的多个D…

ZYNQ7000---FLASH读写

提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Flash是什么&#xff1f;二、Flash的分类1、内部结构&#xff08;接口&#xff09;区分&#xff1a;2、外部接口区分&#xff1a;SPIQPSI Flash: QSPI 控制…

如何做好性能压测 —— 压测环境设计和搭建!

简介&#xff1a;一般来说&#xff0c;保证执行性能压测的环境和生产环境高度一致是执行一次有效性能压测的首要原则。有时候&#xff0c;即便是压测环境和生产环境有很细微的差别&#xff0c;都有可能导致整个压测活动评测出来的结果不准确。 1. 性能环境要考虑的要素 1.1 系…

SMART PLC星三角延时启动功能块(梯形图FC)

这里我们介绍SMART PLC星三角延时启动功能块,SMART PLC的周期定时器功能块请参考下面文章链接: 周期定时器FB_Cycle_time(SCL+梯形图代码)-CSDN博客文章浏览阅读80次。博途PLC定时器指令使用详细介绍请参考下面文章链接:博途PLC IEC定时器编程应用(SCL语言)_scl定时器-CS…