前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【教程】Ubuntu20.04安装NVIDIA CUDA全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

【教程】Ubuntu20.04安装NVIDIA CUDA全纪录+解决SSH一段时间自动断开报Destination Host Unreachable

作者头像
小锋学长生活大爆炸
发布2022-12-02 15:00:51
1.2K0
发布2022-12-02 15:00:51
举报

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] 网上没一个系统的全流程教程,算了还是自己来吧。

目录

完全卸载旧版(可选)

安装NVIDIA驱动

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

安装CUDA Toolkit

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

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


完全卸载旧版(可选)

代码语言:javascript
复制
# 卸载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驱动

代码语言:javascript
复制
sudo apt-get install build-essential gcc-multilib dkms
代码语言:javascript
复制
ubuntu-drivers devices

        选一个安装版本,如果不懂,无脑选“recommended”的那个(但我选了510的):

eb802d34eb134bd3aa630a5c89e72e82.png
eb802d34eb134bd3aa630a5c89e72e82.png
代码语言:javascript
复制
sudo apt install nvidia-driver-510 -y

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

代码语言:javascript
复制
sudo reboot

        这时候驱动就可以用了:

代码语言:javascript
复制
nvidia-smi
359a61c58c6447abac10ff6b81e02f00.png
359a61c58c6447abac10ff6b81e02f00.png

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

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

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就行了

9eaeeb5f86d94600a2f857516193ba77.png
9eaeeb5f86d94600a2f857516193ba77.png

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

6aecd0538eb54f009017a640860b277e.png
6aecd0538eb54f009017a640860b277e.png

        不同版本不同选项下生成的命令都不一样。建议用这个runfile方式吧。(2G+,下载较慢)

代码语言:javascript
复制
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
fdb1fdfc9c884ae28586947185aa56fd.png
057b5dc8f1804205915f673d38b0fa9e.png
057b5dc8f1804205915f673d38b0fa9e.png
69eee7ce22d54be193decef5fed20a9c.png
69eee7ce22d54be193decef5fed20a9c.png
d7a3a7aa0e6a4cd4a147b9a9cc4d3986.png
d7a3a7aa0e6a4cd4a147b9a9cc4d3986.png

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

75a85d152d6c4d4d9b395d8e958dce9d.png
75a85d152d6c4d4d9b395d8e958dce9d.png

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

代码语言:javascript
复制
sudo vim ~/.bashrc

        在最后添加:

代码语言:javascript
复制
export PATH=/usr/local/cuda-11.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH

        然后更新:

代码语言:javascript
复制
source ~/.bashrc
sudo ldconfig

        好了,可以用了:

代码语言:javascript
复制
nvcc --version
50d01fd88f884739b7b8bf3ba6322a80.png
50d01fd88f884739b7b8bf3ba6322a80.png

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

代码语言:javascript
复制
sudo vim /etc/bash.bashrc

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

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

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

fa3adbca212a461db6ff1ec41f356db4.png
fa3adbca212a461db6ff1ec41f356db4.png

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

代码语言:javascript
复制
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
e9acec1b047846e3b24b4fc416b4510c.png

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

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

代码语言:javascript
复制
systemctl status sleep.target
a71fbecd2cda4d4fa3fc58f59459ab6a.png
a71fbecd2cda4d4fa3fc58f59459ab6a.png

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

        关闭自动休眠:

代码语言:javascript
复制
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

        可以再看一下:

代码语言:javascript
复制
systemctl status sleep.target
7b3bc80f99094d638443e5f054a31495.png
7b3bc80f99094d638443e5f054a31495.png

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 完全卸载旧版(可选)
  • 安装NVIDIA驱动
  • CUDA Toolkit与驱动版本的对应关系表
  • 安装CUDA Toolkit
  • 报错cannot find -lcudart/cannot find -lcusparse的修复
  • SSH一段时间自动断开报Destination Host Unreachable
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档