这边主要记录一台新机子快速安装cuda的过程
1.安装显卡驱动
禁用nouveau驱动
使用下面命令没有输出即表示已禁用
lsmod | grep nouveau
在/etc/modprobe.d/blacklist.conf
最后一行加入blacklist nouveau
,然后更新并重启
sudo vim /etc/modprobe.d/blacklist.conf # 编辑文件
# 更新文件并重启
sudo update-initramfs -u
sudo reboot
安装NVIDIA显卡驱动
使用命令下面命令查看自己机子的显卡型号
lspci -vnn | grep VGA

然后根据自己的显卡型号去官网下载对应的驱动,NVIDIA官网
选择以.run
为结尾的文件进行下载,先赋予该文件可执行权限,然后运行(注意将文件名换成自己下载的文件)
sudo chmod +x NVIDIA-Linux-x86_64-525.105.17.run
sudo ./NVIDIA-Linux-x86_64-525.105.17.run
安装过程中,按照下面图片进行选择

最后使用nvidia-smi
显示信息即表示完成安装

2.安装CUDA
首先是要选择好你需要的CUDA版本,下面以cuda11.6
为例
进入官网选择你要的cuda版本,CUDA各个发行版下载
然后安装一些依赖库文件
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
进入下载的cuda目录下,运行cuda,启动安装
sudo sh cuda_11.6.0_510.39.01_linux.run
按照下面进行选择,如果安装的cuda是低于10.1的,则界面有有所不同

其中,CUDA Toolkit必选,Driver取决于是否安装了nvidia驱动,本文在第一步已安装过驱动,这里不选,其他选项都可以不选

最后配置环境变量,根据你的shell,选择不同的文件写入,我使用的是zsh,则往~/.zshrc写入
vim ~/.zshrc
# 往最后加入下面内容
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
# 激活配置文件
source ~/.zshrc
# 查看是否安装成功,显示版本号即成功
nvcc -V
3.安装CUDNN
cudnn
需要适配cuda的版本,前往官网下载对应的版本即可cudnn下载

使用命令解压
# 解压后出现一个cuda文件夹
tar -xvzf cudnn-11.6-linux-x64.tgz
# 移动文件并赋予权限
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.6/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.6/lib64
sudo chmod a+r /usr/local/cuda-11.6/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.6/lib64/libcudnn*
# 查看版本
cat /usr/local/cuda-10.1/include/cudnn.h | grep CUDNN_MAJOR -A 2
显示下面内容即安装成功
安装低版本gcc
不一样的cuda是有一个最低的gcc版本要求的。我在配置深度学习项目时,害怕出现莫名的报错,所以力求所有的环境版本达到一致,所以一般gcc和g++也会选择保持和别人的项目一致。下面以gcc-4.8
为例
直接使用apt install gcc-4.8
会出现无法找到包的情况,所以需要增加源
sudo vim /etc/apt/sources.list
# 在最后加入下面两个源
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe
# 更新源
sudo apt update
如果更新时出现下面没有数字签名的错误
解决方法
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
sudo apt update
安装gcc-4.8和g++4.8
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
重新设置系统中的gcc软链(这里使用update-alternatives管理软链,更加方便)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
最后使用gcc -v
查看gcc的版本号
如果需要切换gcc的版本(g++同理)
update-alternatives --config gcc
