服务器ubuntu系统安装cuda_11.1.0_455.23.05_linux.run、cudnn-11.1-linux-x64-v8.0.4.30.tgz和docker安装

文章目录

  • 准备工作
  • 一、nvidia
    • 1.卸载旧驱动
    • 2.查看适合本机的nvidia驱动
    • 3.根据自身情况选择适合的nvidia版本,我这里安装的是nvidia-460
    • 3.重启一下
  • 二、CUDA cuda_11.1.0_455.23.05_linux.run
    • 1.CUDA下载
    • 2.nouveau驱动,nvidia安装失败也可以先禁用这个驱动重新试试
    • 3.执行安装脚本
    • 4.添加环境变量
    • 5.验证
  • 二、CUDNN cudnn-11.1-linux-x64-v8.0.4.30.tgz
    • 1.下载对应版本的文件
    • 2.解压cudnn
    • 3.将解压文件放到指定位置
    • 4.验证
  • 三、docker
    • 1.Ubuntu安装docker踩雷
      • 执行了apt-get update的指令,然后出现了下面一大堆
      • 安装docker:https://blog.csdn.net/qq_38463737/article/details/120031656
      • 官方文档安装docker2
  • 总结


准备工作

知己知彼百战不殆,我们在开始这些重要程序软件的安装之前,一定要对自己的电脑有所了解。知道自己电脑,服务器的配置来选择安装程序软件的版本

uname -m && cat /etc/*release

知晓操作系统的信息,这次使用的是–64位的Ubuntu 18.04.6系统

lspci | grep -i nvidia

查看可用的nvidia设备
在这里插入图
由于驱动问题无法显示显卡的具体型号,在下面的网址输入2216,可以看到显卡型号是GeForce RTX 3080。
点这里可以查询

uname -r

linux内核版本----5.4.0-84-generic


替换源,下面推荐用阿里apt,但是可能会报错(看下面 执行了apt-get update的指令,然后出现了下面一大堆)。
sudo cp /etc/apt/sources.list /etc/apt/sources_back 
sudo vim /etc/apt/sources.list

替换apt 阿里源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ bionic stable
# deb-src [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ bionic stable

替换apt 中科大

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

替换apt

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

deb [arch=amd64] https://apt.releases.hashicorp.com bionic main
# deb-src [arch=amd64] https://apt.releases.hashicorp.com bionic main
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable


然后执行

sudo apt-get update

禁用nouveau

安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
编辑文件blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
之后需要重新启动
启动后,验证nouveau是否已禁用
lsmod | grep nouveau

接下来,我们开始cuda11.1,cudnn11.1和docker的安装

一、nvidia

安装前先进行GPU检查,通过命令nvidia-smi这时就出现问题了,一直显示no devices were found,或者出现其他的报错。这里我是重新安装了nvidia驱动。

1.卸载旧驱动

sudo apt-get purge nvidia*

下面这个命令有时候不用也可以#这个命令有时候不用也可以

sudo apt-get autoremove 

2.查看适合本机的nvidia驱动

sudo ubuntu-drivers devices

服务器ubuntu系统安装cuda_11.1.0_455.23.05_linux.run、cudnn-11.1-linux-x64-v8.0.4.30.tgz和docker安装_第1张图片

3.根据自身情况选择适合的nvidia版本,我这里安装的是nvidia-460

sudo apt-get install nvidia-driver-460 nvidia-settings nvidia-prime

我是想安装470的,他一直报错E: 无法定位软件包:nvidia-470,然后我又试了一下460成功了(之前也是460)。
服务器ubuntu系统安装cuda_11.1.0_455.23.05_linux.run、cudnn-11.1-linux-x64-v8.0.4.30.tgz和docker安装_第2张图片

3.重启一下

这个时候输入nvidia-smi 还是没有输出,就需要重新启动一下服务器了。

sudo reboot

nvidia-smi查出来的CUDA Version显示是11.2,之后安装了11.1也没有改变,可能是其实是因为CUDA 有两种API,分别是 运行时 API 和 驱动API,即所谓的 Runtime API 与 Driver API。nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API的型号,这里是 11.0。而nvcc的结果是对应 CUDA Runtime API。

二、CUDA cuda_11.1.0_455.23.05_linux.run

1.CUDA下载

进入官网 https://developer.nvidia.com/cuda-downloads ,选择对应的版本后,下面会出现一行链接,进入这个链接下载runfile,大约2.5G,得到文件cuda_11.1.0_455.23.05_linux.run
服务器ubuntu系统安装cuda_11.1.0_455.23.05_linux.run、cudnn-11.1-linux-x64-v8.0.4.30.tgz和docker安装_第3张图片
输入最下面的那两行命令,$ 。

2.nouveau驱动,nvidia安装失败也可以先禁用这个驱动重新试试

终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。

Ubuntu的nouveau禁用方法:
在/etc/modprobe.d中创建文件blacklist-nouveau.conf 输入命令:$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf 利用编辑器编辑和保存文件)
在文件中输入一下内容:

blacklist nouveau options
nouveau modeset=0

执行: $ sudo update-initramfs -u
再执行: $ lsmod | grep nouveau 若无内容输出,则禁用成功,若仍有内容输出,请检查操作,并重复上述操作。我执行以上操作后,还是有输出,reboot重启后,无输出了。

3.执行安装脚本

到下载cuda的位置,执行安装命令。这里图的版本不一样是因为我已经安装过了,图是在另外一个服务器上截的其他都是一样的。

sudo sh cuda_***_linux.run

服务器ubuntu系统安装cuda_11.1.0_455.23.05_linux.run、cudnn-11.1-linux-x64-v8.0.4.30.tgz和docker安装_第4张图片
由于我之前已经安装了Nvidia的显卡驱动,这里不安装driver,那么只需要移动到Driver,按enter键,将"[]"中的X去掉即是不选择.

服务器ubuntu系统安装cuda_11.1.0_455.23.05_linux.run、cudnn-11.1-linux-x64-v8.0.4.30.tgz和docker安装_第5张图片
安装成功

4.添加环境变量

sudo gedit ~/.bashrc

然后会弹出来一个文档,在这个文档的末尾添加下面三句话。

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

最后使其生效

source ~/.bashrc

5.验证

输入nvcc -V,查看CUDA版本信息

nvcc -V
watch -n 1 nvidia-smi   #实时查看GPU的使用情况

二、CUDNN cudnn-11.1-linux-x64-v8.0.4.30.tgz

1.下载对应版本的文件

就是需要注册一个账号:https://developer.nvidia.com/rdp/cudnn-archive

2.解压cudnn

根据官网,和CUDA11.1配套的是CUDNN8.0.4
下载下来的是一个tar文件,那么首先需要解压这个文件,解压之后得到一个cuda文件夹,里面有lib64、include还有一个不知道什么用的文档

tar -xvf cudnn-***.tgz

3.将解压文件放到指定位置

将解压缩的文件放入对应cuda项目下,并设上只读权限。

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

4.验证

查看cudnn版本信息:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  #应该不可用

应该会出现安装的版本号,但是我在运行时并没有输出,查看了include文件里面的文件后,发现新版本的版本信息放在了cudnn_version.h,可以把1.将cudnn_version.h文件放到usr/local/cuda/include目录下 .
2.在执行下面面命令.

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

服务器ubuntu系统安装cuda_11.1.0_455.23.05_linux.run、cudnn-11.1-linux-x64-v8.0.4.30.tgz和docker安装_第6张图片
经查看,cudnn版本为8.0.4

三、docker

至于安装docker,官方文档已经很完善了。。。
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

1.Ubuntu安装docker踩雷

执行了apt-get update的指令,然后出现了下面一大堆

Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:4 http://repo.mysql.com/apt/ubuntu bionic InRelease [19.4 kB]
Err:4 http://repo.mysql.com/apt/ubuntu bionic InRelease
  The following signatures were invalid: EXPKEYSIG 8C718D3B5072E1F5 MySQL Release Engineering <mysql-build@oss.oracle.com>
Hit:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:2 https://www.rabbitmq.com/debian testing InRelease
Hit:7 http://archive.ubuntu.com/ubuntu bionic-security InRelease
Reading package lists... Done
W: GPG error: http://repo.mysql.com/apt/ubuntu bionic InRelease: The following signatures were invalid: EXPKEYSIG 8C718D3B5072E1F5 MySQL Release Engineering <mysql-build@oss.oracle.com>
E: The repository 'http://repo.mysql.com/apt/ubuntu bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

对策

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C718D3B5072E1F5

安装docker:https://blog.csdn.net/qq_38463737/article/details/120031656

官方文档安装docker2

在Ubuntu20.04 18.04下,按nvidia-docker官方安装指南安装nvidia-docker时,遇到了如标题所示的两个问题,所以在安装时apt无法定位nvidia-docker2。

gpg: 找不到有效的 OpenPGP (源于指令:curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -)
E: 无法定位软件包 nvidia-docker2 (源于指令:curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list)

分析:
这两个问题都在于无法访问nvidia.github.io这个网页,一开始我以为是科学上网才能解决,后面发现不是,应该是ip地址的问题。
解决办法:
打开ipaddress,搜索查找nvidia.github.io,即可得到对应的ip地址:

# nvidia.github.io
185.199.108.153 nvidia.github.io
185.199.109.153 nvidia.github.io
185.199.110.153 nvidia.github.io
185.199.111.153 nvidia.github.io

然后将上面的信息写入host文件即可:可在命令行输入sudo vi /etc/hosts,然后将上面的内容复制在文件下方,保存退出即可。
这时候重新打开终端,再按安装指南一步一步操作的时候,就不会出现上面的问题了。
https://nvidia.github.io/nvidia-docker/ubuntu20.04/nvidia-docker.list 的内容:

deb https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/$(ARCH) /
#deb https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/$(ARCH) /
#deb https://nvidia.github.io/nvidia-container-runtime/experimental/ubuntu18.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-docker/ubuntu18.04/$(ARCH) /

总结

其实安装还是很简单的,难的是中途的各种报错,版本不匹配等等。几乎所有的报错之前的大佬们都经历过了,百度都能找到解决方案。

你可能感兴趣的:(linux,docker,ubuntu,linux)