《MXNet深度学习实战》—2.2.4 安装nvidia-docker
2.2.4 安装nvidia-docker
安装好Docker后,你就可以开始使用镜像了。前面我们提到过如果要在MXNet中使用GPU,不仅要安装显卡驱动、CUDA和cuDNN,还需要安装支持GPU的MXNet版本,虽然在镜像中可以安装CUDA、cuDNN和MXNet,但是镜像中是没有显卡驱动的,因此如果你要在镜像中使用GPU,那么你还需要将本机的显卡驱动映射到Docker镜像中,这就需要安装nvidia-docker了,nvidia-docker的任务就是将显卡驱动映射到Docker镜像中。目前nvidia-docker版本主要是nvidia-docker1和nvidia-docker2,本书采用的是nvidia-docker2。接下来我们看看如何安装nvidia-docker2,主要参考官方链接进行安装。
首先如果你的机器上已经安装了nvidia-docker1,那么可以通过以下两条命令卸载和移除相关内容:
$ docker volume ls -q -f driver=nvidia-docker | \
xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
$ sudo apt-get purge -y nvidia-docker
接下来添加GPG key并建立一个仓库,注意接下来的操作最好以root用户进行,否则可能会出现一些问题。以root用户进行安装时,命令最前面的sudo可以删去,代码如下:
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ 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
接下来就可以安装nvidia-docker2了,安装完成后需重新导入Docker配置文件,代码如下:
$ sudo apt-get install -y nvidia-docker2
$ sudo pkill -SIGHUP dockerd
安装好nvidia-docker2之后,就可以测试下该命令是否有效。这里我们启动一个名为nvidia/cuda的镜像(假如你的机器上没有该镜像,那么run命令在启动之前会自动拉取该镜像),然后在镜像中运行nvidia-smi命令。在前面我们介绍过,nvidia-smi命令是用来查看显卡信息的,因此如果你成功将显卡驱动映射到镜像中,那么就会得到如显卡信息:
$ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
如果你成功看到如图2-5所示的显卡信息,那么你现在已经可以在镜像中成功使用GPU了。
图2-5 显卡信息
但是到这里还没有结束,如果你仔细看看上一条命令,会发现多了一个参数:--runtime=nvidia,如果你去掉这个参数再运行就会发现报错。若每次运行Docker镜像都加上这个参数还是有些麻烦的,解决方法是我们可以在配置文件中配置该参数,这个配置文件就是/etc/docker/daemon.json。可以通过如下命令打开该文件:
$ vim /etc/docker/daemon.json
可以看到里面的内容如图2-6所示。
图2-6 原配置文件内容
这时,需要你添加一行使其变成如图2-7所示的内容。
图2-7 修改后的配置文件内容
保存该文件的修改内容之后,接下来需要重启下Docker服务:
$ sudo service docker restart
最后,你可以使用以下命令在镜像中看到显卡驱动信息了:
$ docker run --rm nvidia/cuda nvidia-smi
- 点赞
- 收藏
- 关注作者
评论(0)