GCP에서 움직이는 Nvidia-docker2
7589 단어 NVIDIAgcpDeepLearningCUDA도커
GCP에서 움직이는 Nvidia-docker2
이전부터 개발이 진행되고 있던 Nvidia-docker2를 설치할 수 있게 되었으므로, 사용해 보았습니다.
htps : // 기주 b. 코 m / 응 ぃ ぢ 아 / 응 ぃ ぢ 아- c r
Nvidia-docker1과의 가장 큰 차이점은 시작 명령이 nvidia-docker run
가 아니었다는 것입니다.
Nvidia-docker2의 시작은 docker run
로 끝납니다.
GCE의 Ubuntu16.04 인스턴스에 GPU K80에서 Nvidia-docker2를 설치하고 실행해 보았으므로 그 단계를 설명합니다.
일단 설치해보자
Nvidia-docker2는 표준으로 docker-ce 지원과 같으므로 먼저 docker-ce를 설치합니다.
명령은 다음과 같습니다. 자세한 내용은 공식 문서을 참조하십시오.
sudo su -
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get -y update
apt-get -y install docker-ce
이제 docker-ce가 설치됩니다. 계속해서 nvidia-docker2를 설치합니다.
이미 nvidia-docker1이 설치되어 있으면 apt-get purge
해야합니다.
htps : // 기주 b. 코 m / 응 ぃ ぢ 아 / 응 ぃ ぢ 아- c r
sudo su -
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list
apt-get -y update
apt-get -y install nvidia-docker2
바로 사용해 봅시다.
systemctl start docker
systemctl enable docker
systemctl status docker
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
오, 오류가 발생했습니다.nvidia
선택 사항을 모르겠습니다.
CUDA를 설치하고 Nvidia-docker2를 dockerd에 등록
Nvidia-docker2를 사용하려면 CUDA를 설치하고 nvidia-container-runtime을 dockerd에 등록해야합니다.
우선 CUDA 설치입니다.
htps : //에서 ゔぇぺぺr. 응아아. 코 m / 쿠다 - ww 아아 ds
일단 CUDA8.0을 넣어 둡니다.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
apt-get -y update
apt-get -y install --allow-unauthenticated cuda-8-0
echo 'export CUDA_HOME=/usr/local/cuda' >> /etc/profile
echo 'export PATH=/usr/local/cuda-8.0/bin:${PATH}' >> /etc/profile
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/lib/nvidia-384:/usr/lib/nvidia:${CUDA_HOME}:${LD_LIBRARY_PATH}' >> /etc/profile
source /etc/profile
이어서 nvidia-container-runtime입니다.
nvidia-container-runtime은 별다른 설명이 없지만 nvidia-docker2를 docker로 사용하기위한 런타임이라고 생각합니다. 이름적으로.
htps : // 기주 b. 코 m / 응 ぃ ぢ 아 / 음
설치 및 설정은 다음과 같습니다.
apt-get -y install nvidia-container-runtime
# Setup a rootfs based on Ubuntu 16.04
cd $(mktemp -d) && mkdir rootfs
curl -sS http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04-core-amd64.tar.gz | tar --exclude 'dev/*' -C rootfs -xz
# Create an OCI runtime spec
nvidia-container-runtime spec
sed -i 's;"sh";"nvidia-smi";' config.json
sed -i 's;\("TERM=xterm"\);\1, "NVIDIA_VISIBLE_DEVICES=0";' config.json
# Run the container
nvidia-container-runtime run nvidia_smi
nvidia-container-runtime run nvidia_smi
를 실행하면 nvidia-smi
에서 GPU의 작동 정보를 표시합니다.
마지막으로 dockerd 재정의입니다.
mkdir -p /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
EOF
systemctl daemon-reload
systemctl restart docker
systemctl status docker
공식 문서 을 읽으면 위의 히어 문서를 하고 있는 부분은 다음의 용도로 되어 있습니다만, 이것이라면 docker.service 가 기동하지 않았습니다.
tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF
이것으로 준비 완료입니다.
nvidia-docker2를 docker run
해 봅시다.
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
--runtime=nvidia
를 지정하고 nvidia/cuda 이미지에서 nvidia-smi
합니다.
실행 결과는 다음과 같습니다.
겨자 Keras에서 Cifar10의 CNN를 흘려 보겠습니다.
제대로 GPU를 사용해주는 것 같습니다.
Reference
이 문제에 관하여(GCP에서 움직이는 Nvidia-docker2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cvusk/items/e34b19f4c112a1b11b76
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo su -
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get -y update
apt-get -y install docker-ce
sudo su -
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list
apt-get -y update
apt-get -y install nvidia-docker2
systemctl start docker
systemctl enable docker
systemctl status docker
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
apt-get -y update
apt-get -y install --allow-unauthenticated cuda-8-0
echo 'export CUDA_HOME=/usr/local/cuda' >> /etc/profile
echo 'export PATH=/usr/local/cuda-8.0/bin:${PATH}' >> /etc/profile
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/lib/nvidia-384:/usr/lib/nvidia:${CUDA_HOME}:${LD_LIBRARY_PATH}' >> /etc/profile
source /etc/profile
apt-get -y install nvidia-container-runtime
# Setup a rootfs based on Ubuntu 16.04
cd $(mktemp -d) && mkdir rootfs
curl -sS http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04-core-amd64.tar.gz | tar --exclude 'dev/*' -C rootfs -xz
# Create an OCI runtime spec
nvidia-container-runtime spec
sed -i 's;"sh";"nvidia-smi";' config.json
sed -i 's;\("TERM=xterm"\);\1, "NVIDIA_VISIBLE_DEVICES=0";' config.json
# Run the container
nvidia-container-runtime run nvidia_smi
mkdir -p /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
EOF
systemctl daemon-reload
systemctl restart docker
systemctl status docker
tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Reference
이 문제에 관하여(GCP에서 움직이는 Nvidia-docker2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cvusk/items/e34b19f4c112a1b11b76텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)