Linux|ubuntu22.04安装CUDA最新完整教程

文章目录

  • 一、安装前准备工作
    • 查看GPU和型号
    • 查看GCC版本
      • *下载gcc12
    • *检查驱动
  • 二、安装CUDA Toolkit
    • *安装驱动
  • 三、安装后的工作
    • 必要操作
    • 推荐的操作
      • 开启守护进程模式
      • 删除本地下载安装包
  • 四、验证
  • 删除CUDA
  • 常见问题及解决方案
    • 还需要安装cuDNN吗?
    • nvcc: No such file or directory
    • “error while loading shared libraries: <lib name>: cannot open shared object file: No such file or directory”

流程:
安装前检查->安装->安装后配置->验证

版本: CUDA12.5
系统: Ubuntu22.04
内核: 6.5.0-35-generic

本文参考官方指南CUDA Installation Guide for Linux

一、安装前准备工作

查看GPU和型号

spci | grep -i nvidia

看到类似内容,我这是1660 S

01:00.0 VGA compatible controller: NVIDIA Corporation TU116 [GeForce GTX 1660 SUPER] (rev a1)

查看GCC版本

gcc --version

虽然官方说6.0~13.0版本的都可以,但实测11.4版本的不行,可能有BUG。
若为11.4版本的,请下载12版本。

*下载gcc12

不需要下载的请跳过!

# 查看之前的版本
> gcc --version
gcc-11 (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.# 安装gcc12
> sudo apt-get install gcc-12 
# 将他添加到gcc备选组中,且设置优先级为12
> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
  • /usr/bin/gcc 主链接

  • gcc 组名

  • /usr/bin/gcc-12 要添加进组的命令

  • 12 优先级,数字越大约优先

查看gcc的链接设置,看一眼配置对了没

sudo update-alternatives --config gcc

这时候查看gcc版本就是12.4了

gcc --version

*检查驱动

非必要行为!我们在安装toolkit的时候会自动安装GPU驱动

二、安装CUDA Toolkit

https://developer.nvidia.com/cuda-downloads

按照你的来,我这是选择的本地安装,就是下载一个安装包,在本地安装,deb类型的安装包是由APT管理,方便更新与卸载。

在这里插入图片描述

截止到目前位置为12.5版本,具体命令我这直接复制官网的,一条一条执行。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda-repo-ubuntu2204-12-5-local_12.5.0-555.42.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-5-local_12.5.0-555.42.02-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-5-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-5

*安装驱动

上一步会自动安装GPU驱动的, 如果没有安装驱动成功,才去选择手动安装。
检查驱动版本nvidia-smi

安装命令,最新版

sudo apt-get install -y cuda-drivers

如果你想要安装指定版本,2选1即可

sudo apt-get install -y cuda-drivers-555

三、安装后的工作

必要操作

设置环境变量,注意路径哈,是你安装版本的路径

export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}

若想使其永久生效,,添加到.bashrc配置文件里面,如果你使用zsh,添加到.zshrc里面

# 打开配置文件
vi ~/.bashrc
# 添加到最后一行,保存并退出
export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}# 重新激活配置文件
source ~/.bashrc

如果你选择安装cuda toolkit的不是deb安装形式,而是runfile方式,还需要手动添加动态链接库的路径.注意路径哈,是你安装版本的路径

export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

推荐的操作

开启守护进程模式

开启守护进程持久化模式,比传统持久化模式更优雅稳定elegent and robust

sudo /usr/bin/nvidia-persistenced --verbose

如果没有任何提示,说明启动成功,linux惯例"没有消息就是最好的消息"

删除本地下载安装包

删除命令,按照你安装toolkit时的版本填入

sudo apt-get remove --purge "cuda-repo-<distro>-X-Y-local*"

我的删除命令

sudo apt-get remove --purge "cuda-repo-ubuntu2204-12-5-local*"

四、验证

验证CUDA版本,这是runtime运行时的版本
nvcc -V

验证驱动版本
nvidia-smi 右上角显示的cuda版本是驱动的CUDA版本 向下兼容,兼容比这个数字低的cuda 运行时版本

比如 nvidia-smi显示的cuda是12.5, 而 nvcc -V显示的是12.1这是没有问题的。但反过来不行哦!得更新驱动

二者的CUDA的区别
驱动API通常用于创建,因为它可以做更加精细化的控制,cuda RUNTIME API通常在运行使用时调用。
详细区别https://docs.nvidia.com/cuda/cuda-runtime-api/driver-vs-runtime-api.html

删除CUDA

如果你安装遇到问题,折腾好久没搞好!请先清除所有关于cuda的文件,再重新安装。

注意,在清除的时候,cuda依赖的其他库也可能会被删除!!可能会导致你的其他程序无法正常运行!

在删除的时候,注意下有哪些库被卸载了

删除命令

# 删除CUDA TOOLKIT
sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \"*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"# 删除驱动
sudo apt-get --purge remove "*nvidia*" "libxnvctrl*"# 清除一些依赖和安装包
sudo apt-get autoremove

常见问题及解决方案

还需要安装cuDNN吗?

不需要,安装CUDA Toolkit的时候,已经装好了
如何查看?
ldconfig -p | grep cudnn
显示结果:

	libcudnn_ops.so.9 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_ops.so.9libcudnn_ops.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_ops.solibcudnn_heuristic.so.9 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_heuristic.so.9libcudnn_heuristic.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_heuristic.solibcudnn_graph.so.9 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_graph.so.9

nvcc: No such file or directory

没有添加环境变量!请仔细看安装后的工作哦

export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}

“error while loading shared libraries: : cannot open shared object file: No such file or directory”

没有设置动态库链接变量

export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

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

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

相关文章

贪心-AcWing 1522. 排成最小的数字-XMUOJ石板序列

题目 思路 getline() 是 C 标准库中的一个函数&#xff0c;用于从输入流中读取一行文本&#xff0c;并将其存储为字符串。它可以从标准输入、文件流、字符串流等不同类型的输入流中读取数据。C中istringstream、ostringstream、stringstream详细介绍和使用_c istringstream-CS…

C++之std::is_trivially_copyable(平凡可复制类型检测)

目录 1.C基础回顾 1.1.平凡类型 1.2.平凡可复制类型 1.3.标准布局类型 2.std::is_trivially_copyable 2.1.定义 2.2.使用 2.3.总结 1.C基础回顾 在C11中&#xff0c;平凡类型&#xff08;Trivial Type&#xff09;、平凡可复制类型&#xff08;TrivialCopyable&#x…

Python语言基础学习(下)

目录 一、顺序语句 二、条件语句 (1) if (2) if - else (3) if - elif - else 缩进和代码块 空语句 pass 三、循环语句 while 循环 for 循环 continue break 四、函数 创建函数 调用函数 函数返回 函数变量 函数递归 关键字参数 五、列表和元组 创建列表 …

Windows、Linux下,基于QT的打包方法

整理这篇文档的意义在于&#xff1a;自己走了很多弯路&#xff0c;淋过雨所以想为别人撑伞&#xff0c;也方便回顾&#xff0c;仅供参考 ps: 第一次做Windows下打包&#xff0c;用了2小时&#xff0c;第二次20秒第一次做Linux(ubuntu)下打包&#xff0c;用了8小时&#xff0c;…

不拍视频,不直播怎么在视频号卖货赚钱?开一个它就好了!

大家好&#xff0c;我是电商糖果 视频号这两年看着抖音卖货的热度越来越高&#xff0c;也想挤进电商圈。 于是它模仿抖音推出了自己的电商平台——视频号小店。 只要商家入驻视频号小店&#xff0c;就可以在视频号售卖商品。 具体怎么操作呢&#xff0c;需要拍视频&#xf…

【顶刊新文】nature plants|植物高度作为高山碳固存和生态系统对变暖响应的指标

文章简介 论文名称&#xff1a;Plant height as an indicator for alpine carbon sequestration and ecosystem response to warming&#xff08;植物高度作为高山碳固存和生态系统对变暖响应的指标&#xff09; 第一作者及单位&#xff1a;Quan Quan&#xff08;中国科学院地…

【ai】pycharm安装langchain 相关module

pycharm module install 【Python学习 】一篇文章教你PyCharm如何快速安装module 【python】pycharm如何安装python的模块包版本 2024.1.2 RC2 找到当前的虚拟项目 找到解释器 我现在配置为专门为openai-start 准备的3.10 版本+ 号可以找到模块

pdf拆分成多个文件 pdf拆分成一页一页

pdf拆分成多个文件的方法。在现代办公环境中&#xff0c;PDF文件因其跨平台、保持格式一致等特性&#xff0c;成为了广泛使用的文件格式。然而&#xff0c;有时我们需要对PDF文件进行拆分&#xff0c;以便更好地管理和使用其中的内容。本文将详细介绍PDF拆分的方法和步骤&#…

一.架构设计

架构采用 ddd 架构&#xff0c;不同于传统简单的三层的架构&#xff0c;其分层的思想对于大家日后都是很有好处的&#xff0c;会给大家的思想层级&#xff0c;提高很多。 传统的项目 现有的架构 采取ddd架构&#xff0c;给大家在复杂基础上简化保留精髓&#xff0c;一步步进行…

LabVIEW直方图应用解析

概述 在LabVIEW中&#xff0c;直方图是一种重要的工具&#xff0c;用于分析和展示数据的分布情况。它通过将数据分成若干区间并绘制对应频数&#xff0c;可以帮助用户了解数据的集中趋势、离散程度和分布形态。本文将详细介绍LabVIEW中直方图的使用方法、适用场合、实际意义及…

19 QinQ技术(Vlan两层封装)

1 什么是QinQ&#xff1f; QinQ&#xff08;802.1Q-in-802.1Q&#xff09;&#xff0c;也叫做VLAN Stacking或Double VLAN&#xff0c;由IEEE 802.1ad标准定义&#xff0c;**是一项扩展VLAN空间的技术&#xff0c;**通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩…

工具使用-网络性能测试工具(iperf)-TCP 和 UDP 的吞吐量-包转发率参数的理解

时间戳&#xff1a;2024年5月26日15:18:39 iperf 和 netperf 都是最常用的网络性能测试工具&#xff0c;测试 TCP 和 UDP 的吞吐量。它们都以客户端和服务器通信的方式&#xff0c;测试一段时间内的平均吞吐量。 接下来&#xff0c;我们就以 iperf 为例&#xff0c;看一下 TC…

9.2 Go语言入门(包和导入)

Go语言入门&#xff08;包和导入&#xff09; 目录一、包和导入1. 包&#xff08;Package&#xff09;1.1 包的定义1.2 包的作用1.3 main 包1.4 非 main 包 2. 导入&#xff08;Import&#xff09;2.1 导入标准库2.2 导入第三方包2.3 导入本地包2.4 导入别名2.5 导入并调用初始…

国内最受欢迎的7大API供应平台对比和介绍||电商API数据采集接口简要说明

本文将介绍7款API供应平台&#xff1a;聚合数据、百度APIStore、Apix、数说聚合、通联数据、HaoService、datasift 。排名不分先后&#xff01; 免费实用的API接口 第一部分 1、聚合数据&#xff08;API数据接口_开发者数据定制&#xff09; 2、百度API Store(API集市_APIStore…

数据库系统原理实验报告6 | 视图

整理自博主本科《数据库系统原理》专业课自己完成的实验报告&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 专业课本&#xff1a; ​ ———— 本次实验使用到的图形化工具&#xff1a;Heidisql ​ 目录 一、实验目的 二、实验内容 1&#xff0e;根据EDUC数…

揭秘C++ String容器:字符串操作的艺术

目录 ​编辑 引言 一、初识std::string&#xff1a;构造与初始化 二、字符串的操纵艺术&#xff1a;拼接、查找与替换 三、访问与遍历&#xff1a;字符的细腻触感 四、大小与容量&#xff1a;动态调整的智慧 五、进阶功能&#xff1a;探索更多可能 结语 引言 在C标准库…

Java 8

这次我学习了第八次Java课程 这次课在假期&#xff0c;包含了两天的一大波内容 对于编写项目过程中有许多的 辅助类 System System.out.println() 打印 Scanner Scanner sc new Scanner(System.in) 赋值 Random 随机数 Math 数学运算 日期 要想使用日期方法就要引入包Date 1…

人工智能为犯罪地下世界带来了巨大的生产力提升

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

详解 Scala 的集合类型

一、集合简介 1. 类型 序列 Seq&#xff1a;类似于 Java 中的 List 接口集 Set&#xff1a;类似于 Java 中的 Set 接口映射 Map&#xff1a;类似于 Java 中的 Map 接口所有的集合都扩展自 Iterable 特质 2. 不可变集合 位于 scala.collection.immutable 包&#xff0c;指该集…

ISSCC论文详解 2023 16.1 MulTCIM 存内计算在多模态领域的应用前沿论文

多模态模型&#xff0c;是指具备理解来自不同模态&#xff08;如视觉、自然语言、语音等&#xff09;的混合信号能力的神经网络模型&#xff0c;是当今人工智能模型发展的重要方向之一。本文将要介绍的文献题目为《16.1 MulTCIM: A 28nm 2.24μJ/Token Attention-Token-Bit Hyb…