2018년 4월 4일 수요일

Pytorch v0.3.0 빌드, Docker image 만들기 (Ubuntu 16.04, xenial, ppc64le, Minsky)

http://hwengineer.blogspot.kr/search?q=pytorch

이미 같은 내용의 과정이 위 블로그에 나와있습니다. 아래 내용은 위 블로그와는 다른 버전의 Pytorch v0.3.0를 빌드, Anaconda3을 이용하였습니다. 

1. Pytorch 0.3.0 on Minsky (ubuntu 16.03, ppc64le) 빌드하기

아나콘다 3 버전 설치하기
root@minsky:/home/minsky# wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-ppc64le.sh
root@minsky:/home/minsky# chmod u+x Anaconda3-5.1.0-Linux-ppc64le.sh
root@minsky:/home/minsky# ./Anaconda3-5.1.0-Linux-ppc64le.sh
설치 경로는 /opt/anaconda3 으로 설정함

root@minsky:/home/minsky# . /root/.bashrc
root@minsky:/home/minsky# env | grep PATH
LD_LIBRARY_PATH=/usr/lib/openmpi/lib:/usr/lib/mpich/lib:
PATH=/opt/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
root@minsky:/home/minsky# whicn conda
/opt/anaconda3/bin/conda
root@ubuntu:/home/minsky# export CMAKE_PREFIX_PATH=/opt/anaconda3
root@minsky:/home/minsky# conda install numpy pyyaml setuptools cmake cffi openblas 

Pytorch github 에서 소스 복제, 빌드하기
root@minsky:/home/minsky# mkdir data
root@minsky:/home/minsky# cd data
root@minsky:/home/minsky/data# git clone --recursive https://github.com/pytorch/pytorch/
root@ubuntu:/home/minsky/data/pytorch# git checkout tags/v0.3.0
root@ubuntu:/home/minsky/data/pytorch# python setup.py install
git clone https://github.com/pytorch/pytorch

2. Docker image로 Pytorch v0.3.0 빌드하기
우선 Docker image 내에 설치할 관련 파일들을 모두 /docker_img 디렉토리에 모아 놓습니다. 기본 base image를 nvidia에서 제공하는 nvidia/cuda-ppc64le:8.0-cudnn6-devel-ubuntu16.04 로 사용할 것이기 때문에, cuda와 libcudnn 별도 설치는 필요 없습니다.

root@minsky:/home/minsky/docker_img# ls -al
total 2370376
drwxr-xr-x 2 root root 4096 Apr 4 00:15 .
drwxr-xr-x 18 minsky minsky 4096 Apr 4 00:11 ..
-rwxr--r-- 1 root root 299557404 Apr 4 00:11 Anaconda3-5.1.0-Linux-ppc64le.sh
-rw-r--r-- 1 root root 386170568 Apr 4 00:12 mldl-repo-local_4.0.0_ppc64el.deb

root@minsky:/home/minsky# nvidia-docker run -ti -v /home/minsky/docker_img:/docker nvidia/cuda-ppc64le:8.0-cudnn6-devel-ubuntu16.04
Unable to find image 'nvidia/cuda-ppc64le:8.0-cudnn6-devel-ubuntu16.04' locally
8.0-cudnn6-devel-ubuntu16.04: Pulling from nvidia/cuda-ppc64le
Digest: sha256:1ca56d91ac9c3045383ec4ea2789499f9ac1a62f2daa9a447539c4e147ff0518
Status: Downloaded newer image for nvidia/cuda-ppc64le:8.0-cudnn6-devel-ubuntu16.04

root@0e1b46e8b699:/# cd docker
root@0e1b46e8b699:/docker# ls -al
total 2370364
drwxr-xr-x 2 root root 4096 Apr 4 04:49 .
drwxr-xr-x 1 root root 4096 Apr 4 04:53 ..
-rwxr--r-- 1 root root 299557404 Apr 4 04:11 Anaconda3-5.1.0-Linux-ppc64le.sh
-rw-r--r-- 1 root root 386170568 Apr 4 04:12 mldl-repo-local_4.0.0_ppc64el.deb
root@0e1b46e8b699:/docker#

root@0e1b46e8b699:/docker# dpkg -i mldl-repo-local_4.0.0_ppc64el.deb
Selecting previously unselected package mldl-repo-local.
Preparing to unpack mldl-repo-local_4.0.0_ppc64el.deb ...
Unpacking mldl-repo-local (4.0.0) ...
Setting up mldl-repo-local (4.0.0) ...
OK

root@0e1b46e8b699:/docker# apt-get update
root@0e1b46e8b699:/docker# apt-get install -y libnccl-dev libnccl1 python-ncclient bazel libopenblas-dev libopenblas libopenblas-base git vim

위에서 했던 1. Pytorch Build 하기 과정을 컨테이너 안에서 동일하게 수행
다른 터미널에서 해당 도커 컨테이너의 ID를 확인하여 Commit 수행

root@minsky:/home/minsky# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e1b46e8b699 nvidia/cuda-ppc64le:8.0-cudnn6-devel-ubuntu16.04 "/bin/bash" 30 minutes ago Up 30 minutes festive_stallman

root@minsky:/home/minsky# docker commit 0e1b46e8b699 brlee/pytorch-ppc64le-xenial:v0.3.0

2018년 4월 1일 일요일

PowerAI Vision Technical Preview(1.4) 설치해보기


PowerAI Vision은 IBM에서 출시하고 있는 GPU 컴퓨팅 서버(Minsky, Newell) 기반에서 사용할수 있도록 딥러닝용 Image classification / Object detection / Semi-auto labeling 기능을 제공해주는 툴입니다. 아직 공식 출시 전이지만 IBM Developer works 공식 사이트에 들어가보시면, 이미 PowerAI Vision 이라는 새로운 SW에 대한 소개자료 및 데모 영상, 베타 테스터 버전용 설치 파일이 제공되고 있습니다. 

현재 올라와 있는 Technical preview 1.4 버전을 가지고 테스트 해보려 합니다. 
설치를 위한 Prerequisite은 사이트에 나와있는데, 아래와 같습니다. 저는 Minsky (S822LC for HPC, P100 GPU 4장 탑재) 서버, Ubuntu 16.04, CUDA8, Cudnn6 버전에서 테스트해보려 합니다.

Prerequisites

Hardware
CPU: POWER8 or OpenPOWER Ecosystem, minimum 8 hardware cores
Memory: 128GB memory or larger
GPU: At least 1 NVIDIA Tesla GPU. Tesla K40 or newer. GPU memory of 1 GPU core > 4GB
Disk: > 20GB free disk disk space
Network: At least 1 ethernet interface
Software
Ubuntu 16.04 LTS (Architecture: ppc64le), Red Hat Enterprise Linux (RHEL) 7.4
Docker.io 1.12.0 or newer
NVIDIA driver version 384.59 or higher is required.
NVIDIA CUDA version 8.0.44 or higher is required.
NVIDIA cuDNN 6.0 or higher is required.

1. PowerAI Vision 설치파일 다운로드

위 사이트에 들어가보시면, 아래와 같은 링크가 있습니다. IBM 계정이 없으시면 가입하시고, 쉽게 deb or rpm 패키지를 다운로드 받으실 수 있습니다. 
함께 다운로드 받을 수 있는 pdf 를 보시면 설치 과정도 참조하실 수 있습니다.
저는 아래 파일들을 다운로드 받아서, deb 패키지를 사용해 설치했습니다.
powerai-vision_1.0.TP4_ppc64el.deb
powerai-vision_1.0.TP4_ppc64el.rpm

2. deb pkg 설치하기

root@minsky:~# dpkg -i powerai-vision_1.0.TP4_ppc64el.deb
root@minsky:~# cd /opt/powerai-vision/sbin
root@minsky:/opt/powerai-vision/sbin# ./check_port.sh

root@minsky:/opt/powerai-vision/sbin# cd ../bin
root@minsky:/opt/powerai-vision/bin# ./build_image.sh
Sending build context to Docker daemon  187.4kB
Step 1/9 : FROM ppc64le/ubuntu:16.04
 ---> 10b52ecfd0b3
Step 2/9 : MAINTAINER Yubo Li <liyubobj@cn.ibm.com>
 ---> Using cache
 ---> 04dbdaa674cd
Step 3/9 : ENV DLTASK_ROOT /opt/dltask
 ---> Using cache
 ---> d348de6bd908
Step 4/9 : RUN apt-get update && apt-get install -y     rsyslog     python     python-dev     python-setuptools     python-pip     python-numpy     python-scipy     python-flask &&     apt-get clean
 ---> Using cache
 ---> 44585af1550f
(생략)
Successfully installed pyyaml-3.12
Requirement already satisfied: Pillow>=2.3.0 in /usr/lib/python2.7/dist-packages
Requirement already satisfied: six>=1.1.0 in /usr/lib/python2.7/dist-packages
Downloading pretrained ImageNet models (1G)...
Resolving dl.dropbox.com (dl.dropbox.com)... failed: Temporary failure in name resolution.
wget: unable to resolve host address 'dl.dropbox.com'
Unzipping...

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Done. Please run this command again to verify that checksum = ed34ca912d6782edfb673a8c3a0bda6d.
mv: cannot stat '/opt/py-faster-rcnn/data/imagenet_models': No such file or directory
The command '/bin/sh -c pip install --upgrade pip &&     cat $FRCNN_CAFFE_ROOT/caffe-fast-rcnn/python/requirements.txt | xargs -L 1 pip install &&     cd $FRCNN_CAFFE_ROOT && ./data/scripts/fetch_imagenet_models.sh &&     mv $FRCNN_CAFFE_ROOT/data/imagenet_models $FRCNN_CAFFE_ROOT/models/' returned a non-zero code: 1

제가 테스트했던 환경에서는 /opt/powerai-vision/bin/build_image.sh 수행 시 위와 같은 에러가 발생했습니다. dl.dropbox.com 에 있는 파일을 다운로드 받으려 할때 발생하는 resolve host 관련 에러였는데, nslookup으로 해당 다운로드 주소를 접근해보아도 제대로 접근이 되지 않았습니다. 그런데, 로컬 PC 윈도우에서 다운로드 받으니 imagenet_models.tgz 파일이 제대로 다운로드 되었습니다. 이를 ibm.box.com 에 올려놓았습니다. (https://ibm.box.com/s/mz86len0dvc5bys7rffsl3alfggqf6xu)

1) 위에서 에러가 발생했던 부분의 수행 스크립트를 찾아서, 다이렉트 다운로드 링크 주소로 바꾸던지, 2) 혹은 별도로 다운로드 받은 imagenet_models.tgz 파일을 caffe-frcnn.tar.gz 안에 함께 넣어서 수행(물론 스크립트도 일부 변경하셔야 합니다만, 여기서는 생략하겠습니다.)하시면 정상적으로 진행됩니다. 저는 이것저것 시도하다 보니 2) 번의 방법으로 수행했습니다만, 더 간단한 1) 번 방법을 올려두겠습니다. 대신 1번 방법은 wget 으로 바로 다운로드 받을 수 있도록 local ftp 등을 구현하여 링크를 생성해두셔야 합니다.

/opt/powerai-vision/bin/build_image.sh 를 열어보시면, /opt/powerai-vision/pkg에 있는 각 build_image.sh를 순차적으로 수행하게 되어있습니다. 로그를 보니, 그 중에서 frcnn 패키지를 빌드할 때 에러가 발생했습니다. frcnn 패키지를 생성하기 위한 Dockerfile 을 열어보시면, 에러가 발생하는 지점이 보입니다. caffe-frcnn.tar.gz 을 풀어서, 내부에 있는 스크립트를 수정하고 다시 말아놓겠습니다.

root@minsky:/opt/powerai-vision/bin# cd ../pkg/frcnn
root@minsky:/opt/powerai-vision/pkg/frcnn# cp caffe-frcnn.tar.gz caffe-frcnn.tar.gz.original
root@minsky:/opt/powerai-vision/pkg/frcnn# ls -al
total 1109904
drwxr-xr-x  2 root root       4096 Apr  1 00:19 .
drwxr-xr-x 12 root root       4096 Mar 28 22:20 ..
-rwxr-xr-x  1 root root        636 Feb 16 02:14 build_image.sh
-rw-r--r--  1 root root 1101581655 Apr  1 00:18 caffe-frcnn.tar.gz
-rw-r--r--  1 root root   33539855 Feb 16 02:17 caffe-frcnn.tar.gz.original
-rw-r--r--  1 root root         56 Feb 16 02:14 caffe-ld-so.conf
-rw-r--r--  1 root root       2720 Feb 16 02:14 Dockerfile
-rw-r--r--  1 root root     435120 Feb 16 02:17 err-handler.tar.gz
-rw-r--r--  1 root root     942816 Feb 16 02:17 FRCNN.tar.gz

caffe-frcnn.tar.gz 압축을 푸는 것은, 다른 디렉토리에서 진행하시는 것이 좋습니다.
root@minsky:/opt/powerai-vision/pkg/frcnn# mkdir imsi
root@minsky:/opt/powerai-vision/pkg/frcnn# mv caffe-frcnn.tar.gz ./imsi
root@minsky:/opt/powerai-vision/pkg/frcnn# tar -xzf ./imsi/*.gz ./
root@minsky:/opt/powerai-vision/pkg/frcnn# vi ./imsi/data/sciprts/fetch_imagenet_models.sh

#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )"
cd $DIR

FILE=imagenet_models.tgz
if [ -f $FILE ]; then
  echo "File already exists. Checking md5..."
  os=`uname -s`
  if [ "$os" = "Linux" ]; then
    checksum=`md5sum $FILE | awk '{ print $1 }'`
  elif [ "$os" = "Darwin" ]; then
    checksum=`cat $FILE | md5`
  fi
  if [ "$checksum" = "$CHECKSUM" ]; then
    echo "Checksum is correct. No need to download."
    exit 0 
  else
    echo "Checksum is incorrect. Need to download again."
  fi
fi

# If you can't download from dl.dropbox.com, then use below link
URL=다운로드 받을 URL(Local ftp 주소 등)

:wq

위의 붉은 색 부분을 변경해줍니다. vi 모드에서 빠져나온 후 다시 패키지를 말아줍니다. 

root@minsky:/opt/powerai-vision/pkg/frcnn# cd imsi
root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# tar -czf ../caffe-frcnn.tar.gz ./*

이제 /opt/powerai-vision/bin/build_image.sh 을 다시 수행합니다. 저는 끝나는데까지 약 1시간 정도 걸렸습니다.

root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# cd ../../../bin
root@minsky:/opt/powerai-vision/bin# ./build_image.sh
(생략)
Step 14/15 : WORKDIR /app
Removing intermediate container 3a96c32cc904
 ---> 8319f1228a9d
Step 15/15 : ENTRYPOINT bash -c "pm2 start websocket-relay.js -- video 9090 8080 && nginx -g 'daemon on;' && python stream.py"
 ---> Running in a7c2a49013b7
Removing intermediate container a7c2a49013b7
 ---> eb2dd5ec8358
Successfully built eb2dd5ec8358
Successfully tagged powerai-vision-video-test-stream:1.4.0
make[4]: Leaving directory '/opt/powerai-vision/pkg/video-detection-test/build_docker/ppc64le/k8s/video_streamer'
make[3]: Leaving directory '/opt/powerai-vision/pkg/video-detection-test/build_docker/ppc64le/k8s'
make[2]: Leaving directory '/opt/powerai-vision/pkg/video-detection-test/build_docker/ppc64le'
make[1]: Leaving directory '/opt/powerai-vision/pkg/video-detection-test'

생성된 docker images 들을 확인해보면, PowerAI Vision 구동을 위한 이미지들이 생성된 것이 보입니다.
root@minsky:/opt/powerai-vision/bin# docker images
REPOSITORY                         TAG                              IMAGE ID            CREATED              SIZE
powerai-vision-video-test-stream   1.4.0                            eb2dd5ec8358        About a minute ago   1.65GB
powerai-vision-video-test-nginx    1.4.0                            ed22cb20cf6f        9 minutes ago        494MB
powerai-vision-video-test-portal   1.4.0                            d65010bfe046        15 minutes ago       1.87GB
powerai-vision-video-mongo         1.4.0                            de0b77830144        21 minutes ago       429MB
powerai-vision-video-rabbitmq      1.4.0                            87ca3c27ac86        22 minutes ago       330MB
powerai-vision-video-redis         1.4.0                            81262a3784cf        26 minutes ago       188MB
powerai-vision-video-mysql         1.4.0                            3b6294c6588f        32 minutes ago       346MB
powerai-vision-video-nginx         1.4.0                            767335fc4c03        38 minutes ago       483MB
powerai-vision-video-portal        1.4.0                            14afd66b4b5e        44 minutes ago       1.83GB
powerai-vision-preprocessing       1.4.0                            1c79e45ef947        About an hour ago    1.75GB
powerai-vision-dnn-custom          1.4.0                            10822f9a110c        About an hour ago    3.74GB
powerai-vision-frcnn               1.4.0                            dae51a58f9d2        About an hour ago    5.56GB
powerai-vision-taskanaly           1.4.0                            82e86c3e5088        2 days ago           570MB
powerai-vision-taskanaly           dev                              82e86c3e5088        2 days ago           570MB
powerai-vision-mongodb             1.4.0                            0b4c8254a88c        2 days ago           492MB
powerai-vision-portal              1.4.0                            7a5c5a1e3813        2 days ago           649MB
powerai-vision-dnn                 1.4.0                            3953c6c13ee5        2 days ago           2.55GB
vicamo/debian                      jessie-ppc64el                   314644e2e393        3 days ago           132MB
ppc64le/ubuntu                     16.04                            10b52ecfd0b3        3 weeks ago          152MB
ppc64le/ubuntu                     14.04                            42f269a6e745        3 weeks ago          261MB
nvidia/cuda-ppc64le                8.0-cudnn5-devel-ubuntu16.04     c620d94bf929        7 weeks ago          1.87GB
nvidia/cuda-ppc64le                8.0-cudnn6-runtime-ubuntu16.04   468aefd36d7a        7 weeks ago          970MB
ppc64le/kubernetes                 v1.6.1                           b2c4f049e634        10 months ago        784MB
ppc64le/etcd                       v3.1.5                           18f75e83abef        10 months ago        168MB
ppc64le/nginx-ingress-controller   0.8.3                            c0e6f8e17b2d        14 months ago        510MB
ppc64le/defaultbackend             1.2                              b030bcb986ca        20 months ago        10.3MB



----------- 아래는 위에서 소개하지 않았던 2번 방법입니다.

root@minsky:/opt/powerai-vision/pkg/frcnn# cp caffe-frcnn.tar.gz ./imsi/caffe-frcnn.tar.gz
root@minsky:/opt/powerai-vision/pkg/frcnn# cd imsi
root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# tar -czf ../caffe-frcnn.tar.gz ./*

로컬에 받아두었던 imagenet_models.tgz를 /opt/powerai-vision/pkg/frcnn/imsi/ 폴더에 ftp 등을 이용해 업로드합니다. 
root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# ls -al
total 1042880
drwxr-xr-x 10 root root       4096 Mar 31 23:01 .
drwx------ 10 root root       4096 Mar 31 23:00 ..
drwxr-xr-x 16 root root       4096 Feb 16 01:55 caffe-fast-rcnn
drwxr-xr-x  4 root root       4096 Feb 16 01:48 data
drwxr-xr-x  2 root root       4096 Feb 16 01:48 deploy
drwxr-xr-x  4 root root       4096 Feb 16 01:48 end2end
drwxr-xr-x  5 root root       4096 Feb 16 01:48 experiments
-rwxr-xr-x  1 root root       2325 Feb 16 01:48 faster_rcnn_end2end.sh
-rw-r--r--  1 root root 1067856673 Mar 31 23:05 imagenet_models.tgz
drwxr-xr-x 10 root root       4096 Feb 16 01:51 lib
drwxr-xr-x  4 root root       4096 Feb 16 01:48 models
drwxr-xr-x  2 root root       4096 Feb 16 01:48 tools

root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# vi ./data/sciprts/fetch_imagenet_models.sh

#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )"

#cd $DIR

FILE=imagenet_models.tgz
CHECKSUM=ed34ca912d6782edfb673a8c3a0bda6d

if [ -f $FILE ]; then
  echo "File already exists. Checking md5..."
  os=`uname -s`
  if [ "$os" = "Linux" ]; then
    checksum=`md5sum $FILE | awk '{ print $1 }'`
  elif [ "$os" = "Darwin" ]; then
    checksum=`cat $FILE | md5`
  fi
  if [ "$checksum" = "$CHECKSUM" ]; then
    echo "Checksum is correct. No need to download."
#    exit 0
  else
    echo "Checksum is incorrect. Need to download again."
  fi
fi

#echo "Downloading pretrained ImageNet models (1G)..."

#wget $URL -O $FILE

echo "Unzipping..."

tar zxvf $FILE

echo "Done. Please run this command again to verify that checksum = $CHECKSUM."

:wq

root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# tar -czf ../caffe-frcnn.tar.gz ./*
root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# cd ../
root@minsky:/opt/powerai-vision/pkg/frcnn# cp Dockerfile Dockerfile.original
root@minsky:/opt/powerai-vision/pkg/frcnn# vi Dockerfile

RUN pip install --upgrade pip && \
    cat $FRCNN_CAFFE_ROOT/caffe-fast-rcnn/python/requirements.txt | xargs -L 1 pip install && \
    cd $FRCNN_CAFFE_ROOT && ./data/scripts/fetch_imagenet_models.sh && \
    mv $FRCNN_CAFFE_ROOT/imagenet_models $FRCNN_CAFFE_ROOT/models/

:wq

이제 /opt/powerai-vision/bin/build_image.sh 을 다시 수행합니다.
root@minsky:/opt/powerai-vision/pkg/frcnn/imsi# cd ../../../bin
root@minsky:/opt/powerai-vision/bin# ./build_image.sh
---------------------------------------------------

3. External IP 설정하기

PowerAI Vision Portal 에 웹으로 접근할 수 있도록 외부 IP를 설정해줍니다. 각 테스트 서버 네트워크 환경에 따라 다를텐데, 저의 경우 데모 시스템의 원격 접근 IP를 사용하였습니다. 그리고 K8S 서비스 IP 기본 대역으로 설정되어 있는 20.0.0.0/16 을 사용하는 서비스가 따로 없어서, 이를 그대로 사용했습니다.

root@minsky:/opt/powerai-vision/bin# vi config.sh
# global config for PowerAI Vision

# External IP for accessing web portal.
EXTERNAL_IP=각자 환경에 맞게 변경(예.121.xxx.xxx.xx)

# Kubernetes serice IP range, do not need to change if the default IP range is not used by other ethernets.
K8S_SERVICE_IP_RANGE=20.0.0.0/16

:wq

root@minsky:/opt/powerai-vision/bin# ./config.sh


4. PowreAI Vision 서비스 시작하기


root@minsky:/opt/powerai-vision/bin# ./powerai_vision_start.sh
INFO: Setting up GPU...
Init cuda devices...
Devices init completed!
Persistence mode is already Enabled for GPU 0002:01:00.0.
Persistence mode is already Enabled for GPU 0003:01:00.0.
Persistence mode is already Enabled for GPU 000A:01:00.0.
Persistence mode is already Enabled for GPU 000B:01:00.0.
All done.
INFO: Starting kubernetes...
INFO: Copying kubectl out of k8s image...
Booting up kubernetes cluster...
INFO: Booting up kubernetes master...
6c698ec34dac5be93dbebfe9513dc60fa4c834677a34310afbe0bdd74907c758
4a83f66506a02b50d7ceda123f9919c675d080765408ecb8466d97b50f62e31b
f30cd7ceefe5963e37bbb5abee9e434eac833d49a0c985cefc6882531855450d
ba479f7447eaa7c951040a0d2c2fff1e9b9f89e35d42204b718de5582ec569c7
Collecting GPU driver volume on /opt/powerai-vision/nvidia-driver/361.119...
Booting up kubernetes worker...
e5acf6d6306a2062b3324d324a4b897b0b3789233267fe8300b775555469cc67
02a9b8c74c01ef509a867d60e12eeadee03a63450e910f234f1c79d1be20b9f3
Checking kubernetes cluster status...
INFO: Probing cluster status #1: NotReady
INFO: Probing cluster status #2: NotReady
(생략)
docker-compose -f docker-compose-files/dev/docker-compose.yml up -d
Creating videodetectiontest_rabbitmq-server_1
Creating videodetectiontest_mysql_1
Creating videodetectiontest_redis-server_1
Creating videodetectiontest_mongo_1
Creating videodetectiontest_uwsgi-server_1
Creating videodetectiontest_nginx_1
INFO: PowerAI Vision Web Portal: http://121.xxx.xxx.xx:9080/powerai-vision

PowerAI vision 구동이 완료되었습니다. 위 포탈 링크로 접근해봅니다.

Powerai-vision 데몬 종료는 아래와 같이 수행할 수 있습니다.
root@minsky:/opt/powerai-vision/bin# ./powerai_vision_stop.sh
Stopping video detect addon...
docker-compose -f docker-compose-files/dev/docker-compose.yml down
Stopping videodetectiontest_nginx_1 ... done
Stopping videodetectiontest_uwsgi-server_1 ... done
Stopping videodetectiontest_mongo_1 ... done
Stopping videodetectiontest_mysql_1 ... done
Stopping videodetectiontest_redis-server_1 ... done
Stopping videodetectiontest_rabbitmq-server_1 ... done
Removing videodetectiontest_nginx_1 ... done
Removing videodetectiontest_uwsgi-server_1 ... done
Removing videodetectiontest_mongo_1 ... done
Removing videodetectiontest_mysql_1 ... done
Removing videodetectiontest_redis-server_1 ... done
Removing videodetectiontest_rabbitmq-server_1 ... done
Stopping video data platform...
docker-compose -f docker-compose-files/dev/docker-compose.yml down
Stopping dev_nginx_1 ... done
Stopping dev_uwsgi-server_1 ... done
Stopping dev_rabbitmq-server_1 ... done
Stopping dev_mysql_1 ... done
Stopping dev_mongo_1 ... done
Stopping dev_redis-server_1 ... done
Removing dev_nginx_1 ... done
Removing dev_uwsgi-server_1 ... done
Removing dev_rabbitmq-server_1 ... done
Removing dev_mysql_1 ... done
Removing dev_mongo_1 ... done
Removing dev_redis-server_1 ... done
Stopping main portal...
powerai-vision-portal
powerai-vision-taskanaly
powerai-vision-mongodb
Stopping kubernetes...
Stopping kube-system services...
configmap "nginx-load-balancer-conf" deleted
daemonset "nginx-ingress-lb-ppc64le" deleted
service "default-http-backend" deleted
deployment "default-http-backend" deleted
Checking kube-system services status...
Checking kubernetes cluster status...
No resources found.
Probing cluster status #1:
Stopping kubernetes cluster...
Stop kubernetes master...
k8s-scheduler
k8s-controller-manager
k8s-apiserver
k8s-etcd
Stop kubernetes worker...
k8s-kubelet
k8s-proxy
PowerAI Vision stopped successfully.