转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net]

网上没一个体系的全流程教程,算了仍是自己来吧。

目录

彻底卸载旧版(可选)

装置NVIDIA驱动

CUDA Toolkit与驱动版别的对应联系表

装置CUDA Toolkit

装置CUDNN(可选)

报错cannot find -lcudart/cannot find -lcusparse的修正

SSH一段时间主动断开报Destination Host Unreachable


彻底卸载旧版(可选)

# 卸载CUDA Toolkit:
#   这儿的“11.6”改成你需求卸载的版别
sudo /usr/local/cuda-11.6/bin/cuda-uninstaller
sudo apt-get --purge remove "*cublas*" "cuda*"
# 卸载NVIDIA驱动
sudo apt-get --purge remove "*nvidia*"
# 删除无用包
sudo apt autoremove

装置NVIDIA驱动

sudo apt-get install build-essential gcc-multilib dkms
ubuntu-drivers devices

选一个装置版别,假如不懂,无脑选“recommended”的那个(但我选了510的;下面有驱动与cuda的版别对应表):

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

sudo apt install nvidia-driver-510 -y

装完必定需求重启,否则可能会报错的:

sudo reboot

这时候驱动就能够用了:

nvidia-smi

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

特别留意上面的“CUDA Version:11.6”!!后边装CUDA Toolkit的版别需求跟他一直,否则运行CUDA程序,就可能会报CUDA API过错等等。。。

一般来说,NVIDIA驱动程序的版别应该与CUDA版别相匹配,因为它们是相互依赖的。假如使用的NVIDIA驱动程序版别高于CUDA版别,可能会导致一些问题。

主要原因是CUDA版别和NVIDIA驱动版别之间有必定的兼容性要求。虽然某些情况下能够在不严厉匹配的情况下运行,可是这样做可能会导致GPU计算过错、崩溃等问题。

因此,主张使用与CUDA版别相匹配的NVIDIA驱动程序版别,以保证体系稳定性和计算精度。能够检查NVIDIA官方文档,了解CUDA版别和NVIDIA驱动程序版别之间的兼容性。

官方关于兼容性的阐明:docs.nvidia.com/deploy/cuda…

CUDA Toolkit与驱动版别的对应联系表

官方实时更新地址:docs.nvidia.com/cuda/cuda-t…

CUDA Toolkit Toolkit Driver Version
Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 11.8 GA >=520.61.05 >=522.06
CUDA 11.7 Update 1 >=515.48.07 >=516.31
CUDA 11.7 GA >=515.43.04 >=516.01
CUDA 11.6 Update 2 >=510.47.03 >=511.65
CUDA 11.6 Update 1 >=510.47.03 >=511.65
CUDA 11.6 GA >=510.39.01 >=511.23
CUDA 11.5 Update 2 >=495.29.05 >=496.13
CUDA 11.5 Update 1 >=495.29.05 >=496.13
CUDA 11.5 GA >=495.29.05 >=496.04
CUDA 11.4 Update 4 >=470.82.01 >=472.50
CUDA 11.4 Update 3 >=470.82.01 >=472.50
CUDA 11.4 Update 2 >=470.57.02 >=471.41
CUDA 11.4 Update 1 >=470.57.02 >=471.41
CUDA 11.4.0 GA >=470.42.01 >=471.11
CUDA 11.3.1 Update 1 >=465.19.01 >=465.89
CUDA 11.3.0 GA >=465.19.01 >=465.89
CUDA 11.2.2 Update 2 >=460.32.03 >=461.33
CUDA 11.2.1 Update 1 >=460.32.03 >=461.09
CUDA 11.2.0 GA >=460.27.03 >=460.82
CUDA 11.1.1 Update 1 >=455.32 >=456.81
CUDA 11.1 GA >=455.23 >=456.38
CUDA 11.0.3 Update 1 >= 450.51.06 >= 451.82
CUDA 11.0.2 GA >= 450.51.05 >= 451.48
CUDA 11.0.1 RC >= 450.36.06 >= 451.22
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62

装置CUDA Toolkit

去官网找到你需求的版别:

CUDA Toolkit Archive | NVIDIA Developer

我这选个11.6.0就行了

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

选一下,下面有指令行,复制过来运行就行。

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

不同版别不同选项下生成的指令都不相同。主张用这个runfile方法吧。(2G+,下载较慢)

wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo sh cuda_11.6.0_510.39.01_linux.run

由于前面现已装了驱动,这儿需求撤销驱动的装置:

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

装完后会提示要增加途径,假如不加,指令就履行不了:

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

假如你是自己用,就加在自己的环境变量中:

sudo vim ~/.bashrc

最终增加:

export PATH=/usr/local/cuda-11.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH

然后更新:

source ~/.bashrc
sudo ldconfig

好了,能够用了:

nvcc --version

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

假如是大家一起用,那就增加到公共环境变量里,比如:

sudo vim /etc/bash.bashrc

增加的内容和履行的指令,跟上面是相同的,不多写了。

装置CUDNN(可选)

developer.nvidia.com/rdp/cudnn-d…

Installation Guide :: NVIDIA cuDNN Documentation

# 下载:Local Installer for Ubuntu20.04 x86_64 (Deb)
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.1.23_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.1.23/cudnn-local-A9C84908-keyring.gpg /usr/share/keyrings/
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.1.23_1.0-1_amd64.deb
# 或许下载:Local Installer for Linux x86_64 (Tar)
tar -xvf cudnn-linux-x86_64-8.9.1.23_cuda11-archive.tar.xz
cd cudnn-linux-x86_64-8.9.1.23_cuda11-archive
# 留意替换为你的cuda
sudo cp -P include/cudnn*.h  /usr/local/cuda-11.7/include 
sudo cp -P lib/libcudnn*     /usr/local/cuda-11.7/lib64 
sudo chmod a+r /usr/local/cuda-11.7/include/cudnn*.h /usr/local/cuda-11.7/lib64/libcudnn*
# ls -l /usr/local/cuda-11.7/lib64 | grep libcudnn
# ls -l /usr/local/cuda-11.7/targets/x86_64-linux/lib/ | grep libcudnn
# ls -l /usr/local/cuda-11.7/include | grep cudnn
# ls -l /usr/local/cuda-11.7/targets/x86_64-linux/include/ | grep cudnn

报错cannot find -lcudart/cannot find -lcusparse的修正

有时装完上述内容,在编译时会呈现报错,如:

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

是因为库找不到,调整一下就行。

sudo ln -s /usr/local/cuda/lib64 /usr/local/lib64

动态库的查找途径先后顺序:

  1. 编译目标代码时指定的动态库查找途径;
  2. 环境变量LD_LIBRARY_PATH指定的动态库查找途径;
  3. 配置文件 /etc/ld.so.conf中指定的动态库查找途径;
  4. 默许的动态库查找途径 /lib
  5. 默许的动态库查找途径 /usr/lib

SSH一段时间主动断开报Destination Host Unreachable

报错长这样:

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

通过一系列测试,发现不管干啥,固定20~30分钟后就会呈现这个问题。榜首反应便是体系是不是主动进入睡觉状况了,就跟Windows相同。(确实是的)

看一下是不是有主动睡觉:

systemctl status sleep.target

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

能够发现loaded。阐明主动sleep是启用了。

关闭主动休眠:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

能够再看一下:

systemctl status sleep.target

【教程】保姆级安装NVIDIA CUDA、CUDNN环境全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

能够发现masked。阐明主动sleep是关闭了。