nvidia-dokcer2 安装方法

最近想使用百度paddlpaddle框架下的DeepSpecch2模型训练语音数据,在服务器上配置了很多次,都失败了。尝试用docker容器技术安装,很容器就安装成功了。

配置需求:
1、nvidia-dokcer2
能够使容器使用主机的GPU服务,它是nvidia以docker为底层封装的上层应用。
2、docker
容器技术,nvidia-dokcer2与docker有版本对应关系,如果nvidia-dokcer2安装失败,可能对应的docker版本不对,尝试更换即可。
例如我的debian系统安装指定版本的docker:apt-get install docker-ce=17.12.1~ce-0~debian
3、cuda以及cudnn
GPU加速所需要的库,如果nvidia-dokcer2成功安装,并启动了镜像以后,这部分的配置和在本机正常安装是一样的。


安装步骤:

  • 第一步安装nvidia-dokcer2:

首先根据https://github.com/NVIDIA/nvidia-docker提示更新apt下载源,否则你在yum install -y nvidia-docker2 时会提示找不到nvidia-docker2。

如果是Ubuntu 14.04/16.04, Debian Jessie/Stretch系统:

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
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

# Add the package repositories
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

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

如果是CentOS 7, RHEL 7.4, Amazon Linux 2

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo yum remove nvidia-docker

# Add the package repositories
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

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo yum install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

注意:
这部分安装可能会出现两种情况:
第一种,在安装nvidia-docker2的同时,相应docker版本会自动下载
第二种,需要事先下载好对应的docker版本,版本号可以通过例如docker-ce=17.12.1~ce-0~debian来指定,然后再安装nvidia-docker2。

  • 第二步安装好nidia-docker2后导入docker镜像

1、提前下载好带有gpu环境的镜像包
下载参考连接https://hub.docker.com/r/paddlepaddle/paddle/tags/
我拉取的是最新版docker pull docker.paddlepaddlehub.com/paddle:latest-gpu
2、启动容器nvidia-docker run -it -v [本机地址绝对路径]:[容器地址绝对路径] [镜像ID] /bin/bash
这里说明一下,-it 创建交互环境 ,-v 将本机路径挂载到容器内,建议使用这种方式
3、使用已经创建好的容器nvidia-docker start -i [容器ID]

注意:
这里写的可能稍微简单了,建议根据不同的情况可以选择不同的方式,最好对docker容器技术有点基础之后,再操作,否则有些地方会很迷惑。

  • 第三步安装配置cuda以及cudnn

这里不做过多详述,有关cuda的安装和环境配置,可以参考以下连接:
cudnn下载地址 https://developer.nvidia.com/rdp/form/cudnn-download-survey
cudnn安装 http://blog.csdn.net/u010480194/article/details/54287727
配置cudnn环境变量
http://blog.csdn.net/haohaibo031113/article/details/71104088
http://blog.csdn.net/kkk584520/article/details/47312261

注意:
cuda版本和cudnn版本,以及paddlepaddle所需要的cuda及cudnn版本,它们之间都是有对应关系的,一定要明白对应关系,再去安装配置,否则很容易失败。大多数的失败情况都是版本不对应导致的。tensorflow-gpu版本的安装同样类似。

查看已安装cuda以及cudnn版本
1、cuda 版本

cat /usr/local/cuda/version.txt

2、cudnn 版本

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

3、查看NVIDIA 显卡

 nvidia-smi

注1:
在有些服务器上使用容器,需要设置代理
以Ubuntu 16.04.4 LTS为例:
在.bashrc文件内添加代理,要加http:以及反斜杠

export http_proxy=http://ip:port/
export https_proxy=http://ip:port/
export ftp_proxy=http://ip:port/

注2:
查看linux系统版本

cat /etc/issue

你可能感兴趣的:(docker)