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

文章目录

流程:

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

版本: CUDA12.5

系统: Ubuntu22.04

内核: 6.5.0-35-generic

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

一、安装前准备工作

查看GPU和型号

spci | grep -i nvidia

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

bash 复制代码
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

不需要下载的请跳过!

bash 复制代码
# 查看之前的版本
> 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版本,具体命令我这直接复制官网的,一条一条执行。

bash 复制代码
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

三、安装后的工作

必要操作

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

bash 复制代码
export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}

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

bash 复制代码
# 打开配置文件
vi ~/.bashrc
# 添加到最后一行,保存并退出
export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}

# 重新激活配置文件
source ~/.bashrc

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

bash 复制代码
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依赖的其他库也可能会被删除!!可能会导致你的其他程序无法正常运行!

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

删除命令

bash 复制代码
# 删除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

显示结果:

bash 复制代码
	libcudnn_ops.so.9 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_ops.so.9
	libcudnn_ops.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_ops.so
	libcudnn_heuristic.so.9 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_heuristic.so.9
	libcudnn_heuristic.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudnn_heuristic.so
	libcudnn_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}}

相关推荐
●^●6 分钟前
Linux 命令行与 vi/vim 编辑器完全指南
linux·编辑器·vim
哈哈幸运13 分钟前
Linux Awk 深度解析:10个生产级自动化与云原生场景
linux·云原生·自动化·awk·三剑客
Linux运维老纪19 分钟前
Linux之七大难命令(The Seven Difficult Commands of Linux)
linux·运维·服务器·云计算·运维开发
漫谈网络35 分钟前
Ollama工具调用(Tool Calls)业务应用案例
linux·ai·aigc·工具调用·ollama·tool calls
unique_落尘35 分钟前
java操作打印机直接打印及详细linux部署(只适用于机器和打印机处于同一个网段中)
java·linux·打印机
lswzw42 分钟前
Ubuntu K8s集群安全加固方案
安全·ubuntu·kubernetes
前进的程序员2 小时前
在Linux驱动开发中使用DeepSeek的方法
linux·运维·服务器·人工智能
彭友圈1012 小时前
CE第二次作业
linux·服务器·网络
银河麒麟操作系统2 小时前
【银河麒麟高级服务器操作系统】磁盘只读问题分析
java·linux·运维·服务器·jvm
孙克旭_2 小时前
day002
linux