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。
参考: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 #安装新版本