ubuntu21.04安装cuda和cudnn

1、安装显卡驱动

安装流程

ubantu 安装显卡_tankpanv的博客-CSDN博客

2.ubuntu21.04环境下NVIDIA显卡驱动以及CUDA、CUDNN安装

参考原文:ubuntu 21.04下安装pytorch环境过程全记录(1) - 知乎

2.1安装版本

根据后续安装包的兼容性,选择cuda11.1.0版本。具体程序包为cuda_11.1.0_455.23.05,该程序包包含了GPU驱动,版本为455.23.05;仅安装cuda应该可以实现同步驱动显卡,但是测试的过程中同步安装驱动会出错,原因未知。

使用ubuntu自带的软件与驱动安装程序安装显卡驱动,安装版本为nvidia-driver-460-server。在安装cuda前,需要安装gcc-9.3.0

(cuda11.1.0对应的kernel为5.4.0,default gcc为9.3.0,glibc为2.31,参考nvidia官网)

ubuntu21.04安装cuda和cudnn_第1张图片

参考:https://docs.nvidia.com/cuda/archive/11.1.0/cuda-installation-guide-linux/index.html

2.2配置国内ubuntu源

编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前做好相应备份)

cd /etc/apt
sudo cp sources.list sources.list.bak
sudo vim sources.list
#增加阿里云,在source.list文件开头增加如下内容
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#保存并更新
sudo apt update
sudo apt upgrade

2.3安装多版本gcc并配置默认版本

安装 gcc-9、gcc-10并在系统中并存:

1、安装gcc-8、gcc-9、gcc-10

sudo apt install gcc-8 g++-8 gcc-9 g++-9 gcc-10 g++-10

2、以下命令为每个版本配置替代版本,并将优先级与之关联。默认版本是优先级最高的版本,在本例中为gcc-10。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8

3、切换gcc版本

sudo update-alternatives --config gcc

4、分别查看内核、gcc、glibc版本

uname -a
gcc --version
ldd --version

本例中系统版本为ubuntu21.04,5.11.0-16-generic,gcc-9.3.0,ldd2.33

2.4显卡驱动、cuda及cudnn安装

第1步,禁用自带的显卡驱动

sudo vi /etc/modprobe.d/blacklist-nvidia-nouveau.conf
#增加如下两行
blacklist nouveau
options nouveau modeset=0
#更新系统并重启系统
sudo update-initramfs -u
#查看是否成功禁用,无输出说明禁用成功
lsmod | grep nouveau

第2步,安装显卡驱动

使用自带的软件和更新管理程序安装nvidia显卡驱动,本例选择nvidia driver 460 server版本

ubuntu21.04安装cuda和cudnn_第2张图片

第3步,下载并安装cuda

wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
sudo sh ./cuda_11.1.0_455.23.05_linux.run
###

将显卡驱动前的x去掉,这一步骤不再安装显卡驱动安装会提示:

Driver: Installed
Toolkit: Installed in /usr/local/cuda-11.1/
Samples: Installed in /home/user/, but missing recommended libraries

Because some CUDA samples use third-party libraries which may not be installed by default on your system.

部分第三方库未默认安装,不用管这个问题。

这里如果发现安装cuda失败参考下面:在linux上安装cuda的时候报错:Existing package manager installation of the driver found._星空-CSDN博客

#如果遇到其他驱动相关的问题

参考这篇博客显卡驱动的安装,绝大部分cuda安装的问题都是由于驱动问题导致的!

查看是否同时安装了多个驱动版本:

dpkg -l | grep Nvidia

删除旧版本的驱动:

sudo apt-get purge nvidia*

或

sudo apt-get remove --pure nvidia\*

避免安装的时候存在多个驱动,导致安装失败:

sudo sh ./cuda_10.2..run --toolkit --silent --override

第4步,配置环境变量

gedit ~/.bashrc
#文本最后添加以下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#保存退出,打开新终端激活
source ~/.bashrc

在安装的过程中,程序安装在了/usr/local/cuda-11.1,但是安装后已经默认建立了软连接 /usr/local/cuda <----/usr/local/cuda-11.1,环境变量指向/usr/local/cuda即可

第5步,测试cuda安装

方法一:(这里我的cuda没有生成sample文件,所以使用第二种方式验证的)

cd ~/NVIDIA_CUDA-11.1_Samples/1_Utilities/deviceQuery
make
./deviceQuery

显示Result = PASS,表示安装成功

方法二

然后用命令“nvcc -V”进行测试

即如下的代码

nvcc -V

运行的结果如下 

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Tue_Sep_15_19:10:02_PDT_2020
Cuda compilation tools, release 11.1, V11.1.74
Build cuda_11.1.TC455_06.29069683_0

第6步,安装cudnn

下载:(因为NVIDIA默认需要登录才可以下载,我这里按原文下载会提示403 forbiden)

wget https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.5/11.1_20201106/Ubuntu20_04-x64/libcudnn8_8.0.5.39-1+cuda11.1_amd64.deb
wget https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.5/11.1_20201106/Ubuntu20_04-x64/libcudnn8-dev_8.0.5.39-1+cuda11.1_amd64.deb
wget https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.5/11.1_20201106/Ubuntu20_04-x64/libcudnn8-samples_8.0.5.39-1+cuda11.1_amd64.deb

所以这里需要手动到官网注册账号下载的:cuDNN Archive | NVIDIA Developer

ubuntu21.04安装cuda和cudnn_第3张图片

 下载完成后按照以下顺序安装

安装:

sudo dpkg -i libcudnn8_8.2.2.26-1+cuda11.4_amd64.deb
sudo dpkg -i libcudnn8-dev_8.2.2.26-1+cuda11.4_amd64.deb
sudo dpkg -i libcudnn8-samples_8.2.2.26-1+cuda11.4_amd64.deb

测试安装效果:

#复制cuDNN samples到home目录下
cp -r /usr/src/cudnn_samples_v8 /$HOME
#进入home目录
cd $HOME/cudnn_samples_v8/mnistCUDNN/
#编译mnistCUDNN
sudo make clean
sudo make
#运行mnistCUDNN
sudo ./mnistCUDNN

显示test passed说明安装成功。

如果测试遇到问题参考下面方法

编译mnistCUDNN时出错:fatal error: FreeImage.h: No such file or directory

4. 执行“sudo make”时候可能会报以下编译错误 fatal error: FreeImage.h

 
mnistCUDNN  sudo make
CUDA_VERSION is 11010
Linking agains cublasLt = true
CUDA VERSION: 11010
TARGET ARCH: x86_64
HOST_ARCH: x86_64
TARGET OS: linux
SMS: 35 50 53 60 61 62 70 72 75 80 86
test.c:1:10: fatal error: FreeImage.h: No such file or directory
    1 | #include "FreeImage.h"
      |          ^~~~~~~~~~~~~
compilation terminated.
5. 执行

sudo apt-get install libfreeimage3 libfreeimage-dev


6. 重新编译后,运行

./mnistCUDNN


7.出现 Test passed! 代表 cudnn 正常使用
 

你可能感兴趣的:(机器学习,python,开发语言,后端)