NVIDIA Container Toolkit 深度学习 Docker 环境 CentOS 如何升级gpu driver教程

2021-08-05由程序员日记发表于系统教程 浏览32次

目录

1 需求

pytorch、tensorflow、mxnet等深度学习框架使用GPU的时候,不一样的版本会有一些CUDA要求,所以环境一直是困扰,Docker推出后,NVIDIA基于Docker给出解决方案,答案就是NVIDIA Container Toolkit。
github链接:
https://github.com/NVIDIA/nvidia-docker
架构图:
在这里插入图片描述

2 安装

2.1 安装前需要知道

我的机器是centOS 7,显卡是2080TI 11G,上面有GPU驱动和CUDA。
NVIDIA Container Toolkit 深度学习 Docker 环境 CentOS 如何升级gpu driver教程

参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#install-guide

必须要有英伟达GPU驱动,版本大于等于418.81.07。
在这里插入图片描述
安装必要包:

sudo yum install -y tar bzip2 make automake gcc gcc-c++ vim pciutils elfutils-libelf-devel libglvnd-devel iptables

2.2 安装Docker

curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun

2.3 安装NVIDIA Container Toolkit

Setup the stable repository and the GPG key:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum clean expire-cache

安装nvidia-docker2

sudo yum install -y nvidia-docker2

重启

sudo systemctl restart docker

听说Docker版本大于19,可以用yum install -y nvidia-container-toolkit 代替nvidia-docker2安装,我觉得都行。
安装nvidia-docker2后,可以vim /etc/docker/daemon.json看一下Docker的配置文件,是改写了的,重启Docker后生效了。

测试安装是否成功:

docker run --rm --gpus all nvidia/cuda:10.1-base nvidia-smi

会看到:
在这里插入图片描述

3 总结

3.1 如何安装CUDA 11.0

官网安装后测试用的是CUDA11,我没有执行成功,那么如何才能成功?

sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

官网的GPU驱动版本是:

NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    CUDA Version: 11.0   

所以在官网查看GPU驱动和CUDA对应,找到了官网的兼容性介绍:
https://docs.nvidia.com/deploy/cuda-compatibility/
在这里插入图片描述
所以对于我来说,机器上的CUDA和cudnn不用改动,但我升级gpu driver是OK的,向下兼容,一直保持gpu driver是最新版本是OK的。
此外Docker Hub的介绍也很明确,NVIDIA推出的镜像包含CUDA和cuDNN。
在这里插入图片描述

3.2 如何升级gpu driver?

首先搜索显卡能用得了的驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn#,然后下载下来即可。
在这里插入图片描述
依次执行:

chmod a+x NVIDIA-Linux-x86_64-465.31.run  #修改权限
./NVIDIA-Linux-x86_64-465.31.run --uninstall #卸载原有版本
NVIDIA-Linux-x86_64-465.31.run #安装新版本