dockr虽然安装好了,但是安装到这一步的docker只能在cpu下使用或者将docker的gpu环境导出到宿主机上使用,无法在docker中使用gpu。
nvidia-docker
是一个可以使用GPU
的docker
,nvidia-docker
是在docker
上做了一层封装,需要先安装好docker。
官网:https://github.com/NVIDIA/nvidia-docker
由于我的nvidia-docker2安装失败了,所以参考官方强调的使用nvidia-docker2升级(已弃用)我就升级了docker到19.03版本
其中docker的安装参考教程:https://blog.csdn.net/Diana_Z/article/details/97376691
需要预先安装好nvidia,ubuntu上的nvidia安装教程参考:https://blog.csdn.net/Diana_Z/article/details/100011628
本人使用的系统是ubuntu18.04,4个gpu,具体安装信息如下
# Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker
就是官方教程里面Ubuntu 16.04/18.04, Debian Jessie/Stretch的步骤
执行起来是这样的:
#### Test nvidia-smi with the latest official CUDA image
#### 调用所有gpu的方法
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
# Start a GPU enabled container on two GPUs
# 调用固定数量的GPU,从前面开始数n个,这里是两个
$ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi
# Starting a GPU enabled container on specific GPUs
# 选择其中几个gpu来使用,这里选择的1,2是编号1,2的gpu,四个gpu的编号是从0开始的,
# 我的四个gpu的名字是0,1,2,3
# 可以看到我的第一个gpu显存是12192,但是调用1,2的GPU的显存都是11178
$ docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
使用caffe官方提供的caffe项目的gpu版本进行使用
docker run --gpus all -ti bvlc/caffe:gpu /bin/bash
--gpus all,调用了所有gpu
--ti,进入了命令交互界面 ,具体可以参考:https://blog.csdn.net/uphailin/article/details/80892505
进入之后再docker容器中查看,可以看到容器中已经有四个gpu啦
参考:https://www.cnblogs.com/journeyonmyway/p/10318624.html(以下代码截图来自这个教程)
官网说最新的docker19.03以上的版本nvidia-docker2已经启用了,所以先查看我安装的docker版本
18.09.7,所以就使用nvidia-docker2
安装时候报错,暂时找不到解决途径