因为做深度学习的研究项目,为全新机器在Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、Cuda、Cudnn。并进行CUDA版本切换
成功安装完成了,写个记录。
1. 安装Nvidia 显卡驱动
步骤一: 安装更新软件列表和依赖项
- 在安装Nvidia显卡驱动之前,需要更新软件列表和必要的依赖项。
sudo apt-get update # 更新软件列表
sudo apt-get install g++# 下载g++编译器
sudo apt-get install gcc # 下载gcc编译器
sudo apt-get install make # 下载GNU Make编译器
sudo apt-get install initramfs-tools # 下载安装initramfs-tools
步骤二: 查看GPU型号,并下载对应驱动
# lspci -n/-nn:显示设备的vendor厂商号和device设备号;显示厂商等信息和名称。
lspci -nn | grep VGA
# 例如我这边输出# 2d:00.0 VGA compatible controller: NVIDIA Corporation Device 2204 (rev a1)
- 输入数字代码(2204)查询显卡型号 http://pci-ids.ucw.cz/read/PC/10de/2504![在这里插入图片描述](https://img-blog.csdnimg.cn/dfb20f4236e84aa49e7d0b16c36f4b2f.png)
- 知道了显卡型号,就可以在官网下载对应的显卡驱动 https://www.nvidia.cn/Download/index.aspx?lang=cn
- 选择对应的显卡类型、信号
- 我这边安装的是Ubuntu 20.04 LTS,选择操作系统Linux 64-bit
- 也可以输出命令
arch
查询操作系统架构 - 下载类型选生成分支生,语言选中文即可
- 点击下载,即可
步骤三:禁用nouveau通用驱动
- 同时,我这边是服务器版Ubuntu,无图形界面,若安装的是有图形界面的Ubuntu,可输入
Ctrl + Alt + F1
到F6
,以免出现报错 - 我这边原先是没驱动的,就不用删除原有显卡驱动,要是有的话,需要提前进行删除。
sudo apt-get remove --purge nvidia*
,需要彻底删除,否则安装时会报错。 - 修改blacklist.conf文件
sudo vim /etc/modprobe.d/blacklist.conf
- 在blacklist.conf文件,最下方添加命令
blacklist nouveau
options nouveau modeset=0
- 更新配置
sudo update-initramfs -u
- 之后必须进行重启,
sudo reboot
,重启后输入下方命令,若无输出则说明禁用成功
lsmod | grep nouveau
步骤三:安装Nvidia 显卡驱动
对显卡驱动run文件,进行赋权,并进行安装。
#修改权限
sudo chmod 777 NVIDIA-Linux-x86_64-384.111.run
#安装驱动
sudo ./NVIDIA-Linux-x86_64-525.105.17.run –no-x-check –no-nouveau-check –no-opengl-files
#–no-x-check 关闭X服务#–no-nouveau-check 禁用nouveau#–no-opengl-files 不安装OpenGL文件
- 安装过程中出现以下提示,进行选择。(顺序可能不同)
1.Install NVIDIA's 32-bit compatibility libraries?是否安装NVIDIA的32位兼容库?选择 NO2.The distribution-provided pre-install script failed! Are you sure you want to continue?分发提供的预安装脚本失败!你确定要继续吗?选择 continue installation3.Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 您想向DKMS注册内核模块源吗?这将允许DKMS自动构建一个新模块,如果您稍后安装不同的内核?选择 No 4.Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 是否要运行nvidia-xconfigutility来自动更新x配置,以便在重新启动x时使用nvidia x驱动程序?任何预先存在的x confile都将被备份。选择 Yes
安装完成后,
# 可进行重启
sudo reboot
# 输入指令查看显卡信息
nvidia-smi
2. 安装CUDA
步骤一: 下载CUDA安装包
- 根据 Tensorflow 对应的GCC、CUDA、cuDNN版本信息,保证,版本大于等于推荐版本。https://tensorflow.google.cn/install/source#linux
- 进行CUDA和cuDNN的选择,也可以直接根据官方推荐进行下载安装。
- 从Nvidia官网下载CUDA https://developer.nvidia.com/cuda-downloads 下方链接,选择更多版本 https://developer.nvidia.com/cuda-toolkit-archive
- 接下来根据提示进行下载、安装
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
sudo sh cuda_12.1.0_530.30.02_linux.run
- 其中,可以直接依据指令wget命令进行下载。也可以复制run包到浏览器 中,进行下载。(ps:这边需注意对应的cuda版本)
https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
步骤二: 安装CUDA安装包过程中的选择
Do you accept the above EULA? (accept / decline / quit):
- 是否接受最终用户许可协议,输入
accept
- 回车键进行勾选,X就是选中,没有X就是没有选中,把安装驱动进行取消。之后向下键,回车确认
install
步骤三: 配置CUDA环境
sudo vim ~/.bashrc
- 在bashrc文件最下方,添加下入代码
- (ps:这边需要注意cuda的版本,版本不同,路径的命名需修改)
export CUDA_HOME=/usr/local/cuda-11.2
export PATH=$PATH:/usr/local/cuda-11.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64
- 更新环境
source ~/.bashrc
- 测试CUDA是否安装成功
nvcc -V
# 或者 nvcc --version
输出下述结果,表示安装成功
3. 安装cuDNN
步骤一:下载cuDNN包
- 根据Tensorflow对应CUDA,下载相应的cuDNN包。(这边下载,可能需要登录Nvida账号,可按照网站指引,进行登录或注册。) https://developer.nvidia.com/rdp/cudnn-archive
- 例如这边选择了
Download cuDNN v8.2.0 (April 23rd, 2021), for CUDA 11.x
- 点击
cuDNN Library for Linux (x86_64)
即可下载压缩包 - 将压缩包,放入自定义路径后,输入命令进行解压
tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32
- 解压后,输入命令,讲cuDNN对应文件拷贝至CUDA指定路径。
sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.2/include
sudo cp cuda/lib64/libcudnn*/usr/local/cuda-11.2/lib64
sudo chmod a+r /usr/local/cuda-11.2/include/cudnn*.h /usr/local/cuda-11.2/lib64/libcudnn*
4. CUDA版本切换
- 因为后续部分项目,用的库对应的CUDA不同,无需进行修改,修改环境CUDA路径即可。例如需要11.1的CUDA,可通过修改bashrc进行修改
sudo vim ~/.bashrc
将原先的cuda-11.2注释掉,添加cuda-11.1新的环境设置,即可
# cuda-11.2# export CUDA_HOME=/usr/local/cuda-11.2# export PATH=$PATH:/usr/local/cuda-11.2/bin# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64# cuda-11.1
export CUDA_HOME=/usr/local/cuda-11.1
export PATH=$PATH:/usr/local/cuda-11.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
版权归原作者 夫子耶. 所有, 如有侵权,请联系我们删除。