全文以Ubuntu 22.04为例进行安装
Linux下驱动安装
# 以下命令按顺序执行
sudo apt update && sudo apt upgrade -y
# or sudo apt update
# 查看显卡信息
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
# or sudo apt install nvidia-driver-510
reboot
nvidia-smi
安装完成驱动以后,nvidia-smi
命令是可用的,会输出显卡信息。
通过此种方式进行显卡的驱动安装,不需要去手动禁止使用
禁用nouveau驱动
和Bios禁用secure boot
安装CUDA和CUDNN
lsb_release -a
'''
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
'''
uname --p
'''
x86_64
'''
进入cuda-toolkit-archive 官网会看到众多版本的cuda包,此处我们选择cuda11.3 ,选择11.3的原因有以下几点:
- pytorch的GPU支持cuda11.3版本;
- tensorflow2.x以上版本支持11.0以上版本;
- fastestimator高级深度学习框架,要求tf的版本是2.9.1,推荐安装的pytorch是对应cuda11.3的1.10.2版本;
综上,我们最好选择cuda 11.3
作为我们的安装版本。
在选择安装中,没有提供22.04的cuda安装包,但是我们可以去下载安装20.04的包,cuda默认向下兼容。
安装之前再检查下是否安装gcc:gcc --version
,如果没有安装,则执行以下命令:
# 没有安装gcc情况下执行
sudo apt-get install manpages-dev
sudo apt-get update
sudo apt install build-essential
sudo apt-get install manpages-dev
给出的安装命令有7条,我们只需要执行除去1和2的剩下的5行即可:
>>wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
>>sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
>>sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
>>sudo apt-get update
>>sudo apt-get -y install cuda-11-3 # 原来sudo apt-get -y install cuda(默认安装最新版本)
确认一下cuda在本电脑上的具体文件夹名称。输入如下代码。发现确实有cuda-11.3的文具文件夹,那么我们可以直接使用这个路径。
(base) gem@lambda-quad:~/cuda11.3$ cd /usr/local/
(base) gem@lambda-quad:/usr/local$ ls
bin cuda cuda-11 cuda-11.3 etc games include lib man sbin share src
设置环境变量:
export PATH="/usr/local/cuda-11.3/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH"
此时,输入nvcc -V
,可以看到版本输出。
#sudo dpkg -i cudnn-local-repo-${OS}-8.x.x.x_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.5.0.96_1.0-1_amd64.deb
#sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
sudo cp /var/cudnn-local-repo-ubuntu2004-8.5.0.96/cudnn-local-0579404E-keyring.gpg /usr/share/keyrings/
sudo apt-get update
#sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
#sudo apt-get install libcudnn8=8.5.0.96-1+cuda11.3
sudo apt-get install libcudnn8=8.5.0.96-1+cuda11.7
# https://itcn.blog/p/57211130760.html
#sudo apt-get install libcudnn8-dev=8.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn8-dev=8.5.0.96-1+cuda11.7
#sudo apt-get install libcudnn8-samples=8.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn8-samples=8.5.0.96-1+cuda11.7
验证安装
cudnn
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
中间可能出现gcc版本过高的提示,解决方式为:
sudo apt-get install gcc-9
sudo apt-get install g++-9
# 第一种方式
# sudo ln -s /usr/bin/gcc-9 /usr/local/cuda/bin/gcc
# sudo ln -s /usr/bin/g++-9 /usr/local/cuda/bin/g++
# 第二种方式
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9
tf
import tensorflow as tf
TF_ENABLE_ONEDNN_OPTS=0
print('GPU', tf.test.is_gpu_available())
pytorch
import torch
torch.cuda.is_availabel()