nvidia官方建议
- 使用.run文件安装驱动
- 不要使用PPA安装,即不通过add-gpt或software&updates安装,因为不容易卸载干净
- 卸载之前的nvidia驱动sudo nvidia-uninstall
- 如果使用PPA安装过驱动的话,使用如下指令卸载,否则不用
sudo apt-get remove --purge nvidia-*
sudo apt autoremove
sudo apt autoclean
- 安装过程中如果内核编译不通过则需要升级内核
- 安装过程中提示缺失32bit库的错误,不用理会
安装驱动流程
- 1.禁用ubuntu自带的nouveau驱动
把nouveau加入黑名单,nouveau是第三方开发的NVIDIA显卡驱动,linux系统自带,目的是适配大多数显卡,但是一旦需要用高级功能,比如训练模型,就必须要装cuda,这与nouveau冲突,据说会出现黑屏、无限循环登录等问题,所以要根据下述命令首先禁用
sudo chmod 666 /etc/modprobe.d/blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
# 在文件blacklist-nouveau.conf中加入如下内容
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvdiafb
# 刷新一下
sudo update-initramfs -u
# 重启系统执行下面的指令,如果没有输出则表示禁用完成
lsmod | grep nouveau
- 2.关闭图形界面
# 关闭图形界面 按Ctrl+Alt+F2~F6(F2到F6按哪个都行,一般是F6,都试试,总之进入无图形界面)
# 如果没有安装lightdm的话可以跳过下面步骤
sudo service lightdm stop
# 提示unit lightdm.service not loaded,先执行下面的安装然后再stop
# 这里很奇怪,没有还要安装,安装后提示选择gm3(记不清了)或lightdm(我选的lightdm)
# 2022/7月19测试没有安装lightdm的话可以不执行
sudo apt-get install lightdm
- 3.安装驱动
# 安装驱动
# 给驱动文件赋予执行权限
# 注意安装驱动需要gcc,安装build-essentia包含了gcc
sudo apt install build-essential
sudo chmod a+x NVIDIA-Linux-x86_64-375.20.run
sudo ./NVIDIA-Linux-x86_64-375.20.run
- 4.开启图形界面
# 安装完成后启动图形界面,没有安装lightdm的话则跳过
sudo service lightdm start
# 按Ctrl+Alt+F1 回到图形界面(有人说按F7,不确定就挨个试试)
# 最后执行nvidia-smi测试
nvidia-smi
安装cuda
CUDA尽量不要安装太新的版本,比如现在最新的应该是11.7,我们选择安装的是11.3,因为最新版有些程序支持的也不太好,同时也要根据pytorch官网支持的cuda版本,现在支持10.2,11.3和11.6
CUDA下载地址:https://developer.nvidia.cn/cuda-toolkit-archive
点击下图中的红框可以进入历史版本下载界面,下载runfile文件,据说deb文件容易安装出错
安装cudnn
cudnn根据cuda的版本选择,如下图所示,其中的CUDA 11.x表示11系列的CUDA都可以安装此cudnn
cudnn网址:https://developer.nvidia.com/rdp/cudnn-archive
下载完成后将cudnn复制到cuda文件中,按下面的指令做:
xz -d ***.tar.xz # 解压tar.xz为tar文件
tar -xv ***.tar #解压tar文件
sudo cp include/*.h /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64/
配置cuda路径
# 下面两个是增加的cuda环境
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
# PATH 表示执行文件目录,比如nvcc指令
# LD_LIBRARY_PATH 表示lib库目录
# /usr/local/cuda/bin是路径,:$PATH和:$LD_LIBRARY_PATH是固定写法
# 保存并推出文本编辑然后刷新一下
source ~/.bashrc
禁止ubuntu自己更新
1.命令行禁止
# 用下面的指令打开配置文件,将其中的双引号中的1都改成0
sudo vim /etc/apt/apt.conf.d/10periodic
# 用下面的指令打开配置文件,将其中的双引号中的1都改成0
sudo vim /etc/apt/apt.conf.d/20auto-upgrades
# 下面是用指令关闭内核更新
sudo apt-mark hold linux-image-generic linux-headers-generic
2.桌面设置禁止
settings -> About -> Software & Updates -> Updates
安装SSH
# 为了远程SSH登录安装openssh-server
sudo apt update
sudo apt install openssh-server