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

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

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

目录

完全卸载旧版(可选)

安装NVIDIA驱动

CUDA Toolkit与驱动版本的对应关系表

安装CUDA Toolkit

安装CUDNN(可选)

安装NCCL(可选)

报错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
sudo apt-get autoclean

# 查看是否卸载干净。如果卸载干净了,这条指令后将无提示
dpkg -l | grep nvidia

安装NVIDIA驱动

sudo apt-get install build-essential gcc-multilib dkms gcc g++ make -y
sudo apt install nvidia-common -y
ubuntu-drivers devices

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

eb802d34eb134bd3aa630a5c89e72e82.png

# 安装指定版本
sudo apt install nvidia-driver-510 -y

# 或者使用自动选择最合适的安装
sudo ubuntu-drivers autoinstall

如果安装时遇到了问题,如:Error! Bad return status for module build on kernel

通常是安装了多个版本的驱动引起,这里是DKMS编译出问题了。可以参考以下修复步骤(注意我的报错是550,对于你的情况注意修改版本):

# 移除现有的NVIDIA DKMS模块
sudo dkms remove nvidia/550.54.14 --all
# 删除任何残余的NVIDIA崩溃文件
sudo rm /var/crash/nvidia-*.crash
# 重新安装驱动
sudo apt install nvidia-driver-550

如果问题仍然存在,看看是不是卸载干净了:

# 查看是否卸载干净。如果卸载干净了,这条指令后将无提示
dpkg -l | grep nvidia

把没有卸载的全部手动卸载了,然后再重新安装驱动即可。

        装完一定需要重启,不然可能会报错的:

sudo reboot

        这时候驱动就可以用了:

nvidia-smi

359a61c58c6447abac10ff6b81e02f00.png

        特别注意上面的“CUDA Version:11.6”!!后面装CUDA Toolkit的版本需要跟他一直,不然运行CUDA程序,就可能会报CUDA API错误等等。。。

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

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

        因此,建议使用与CUDA版本相匹配的NVIDIA驱动程序版本,以确保系统稳定性和计算精度。可以查看NVIDIA官方文档,了解CUDA版本和NVIDIA驱动程序版本之间的兼容性。

        官方对于兼容性的说明:https://docs.nvidia.com/deploy/cuda-compatibility/

CUDA Toolkit与驱动版本的对应关系表

官方实时更新地址:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

CUDA Toolkit

Toolkit Driver Version

Linux x86_64 Driver Version

Windows x86_64 Driver Version

CUDA 12.4 Update 1

>=550.54.15

>=551.78

CUDA 12.4 GA

>=550.54.14

>=551.61

CUDA 12.3 Update 1

>=545.23.08

>=546.12

CUDA 12.3 GA

>=545.23.06

>=545.84

CUDA 12.2 Update 2

>=535.104.05

>=537.13

CUDA 12.2 Update 1

>=535.86.09

>=536.67

CUDA 12.2 GA

>=535.54.03

>=536.25

CUDA 12.1 Update 1

>=530.30.02

>=531.14

CUDA 12.1 GA

>=530.30.02

>=531.14

CUDA 12.0 Update 1

>=525.85.12

>=528.33

CUDA 12.0 GA

>=525.60.13

>=527.41

CUDA 11.8 GA

>=520.61.05

>=520.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就行了

9eaeeb5f86d94600a2f857516193ba77.png

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

6aecd0538eb54f009017a640860b277e.png

        不同版本不同选项下生成的命令都不一样。建议用这个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

        由于前面已经装了驱动,这里需要取消驱动的安装:

fdb1fdfc9c884ae28586947185aa56fd.png

057b5dc8f1804205915f673d38b0fa9e.png

69eee7ce22d54be193decef5fed20a9c.png

d7a3a7aa0e6a4cd4a147b9a9cc4d3986.png

        装完后会提示要添加路径,如果不加,命令就执行不了:

75a85d152d6c4d4d9b395d8e958dce9d.png

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

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

50d01fd88f884739b7b8bf3ba6322a80.png

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

sudo vim /etc/bash.bashrc

        添加的内容和执行的命令,跟上面是一样的,不多写了。

安装CUDNN(可选)

https://developer.nvidia.com/rdp/cudnn-download

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

sudo ldconfig

安装NCCL(可选)

1、去官网找你的系统和cuda版本:nccl-legacy-downloads

2、根据你选的执行指令,比如:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update

sudo apt install libnccl2=2.21.5-1+cuda12.2 libnccl-dev=2.21.5-1+cuda12.2

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

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

fa3adbca212a461db6ff1ec41f356db4.png

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

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

        报错长这样: 

e9acec1b047846e3b24b4fc416b4510c.png

        经过一系列测试,发现不管干啥,固定20~30分钟后就会出现这个问题。第一反应就是系统是不是自动进入睡眠状态了,就跟Windows一样。(确实是的)

        看一下是不是有自动睡眠:

systemctl status sleep.target

a71fbecd2cda4d4fa3fc58f59459ab6a.png

        可以发现loaded。说明自动sleep是启用了。

        关闭自动休眠:

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

        可以再看一下:

systemctl status sleep.target

7b3bc80f99094d638443e5f054a31495.png

        可以发现masked。说明自动sleep是关闭了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小锋学长生活大爆炸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值