From d16756d33aafc5b42bc1660f066e9447d01cbb44 Mon Sep 17 00:00:00 2001 From: leonwanghui Date: Tue, 7 Apr 2020 11:04:49 +0800 Subject: [PATCH] Reduce MindSpore docker image size Signed-off-by: leonwanghui --- docker/README.md | 12 +-- .../{ => 0.1.0-alpha}/Dockerfile | 0 docker/mindspore-cuda9.2/Dockerfile | 83 ------------------- .../0.1.0-alpha}/Dockerfile | 21 ++++- 4 files changed, 21 insertions(+), 95 deletions(-) rename docker/mindspore-cpu/{ => 0.1.0-alpha}/Dockerfile (100%) delete mode 100644 docker/mindspore-cuda9.2/Dockerfile rename docker/{mindspore-cuda10.1 => mindspore-gpu/0.1.0-alpha}/Dockerfile (78%) diff --git a/docker/README.md b/docker/README.md index 76eae12f8..c6851fe53 100644 --- a/docker/README.md +++ b/docker/README.md @@ -7,17 +7,11 @@ This folder hosts all the `Dockerfile` to build MindSpore container images with * CPU ``` - cd mindspore-cpu && docker build . -t mindspore/mindspore-cpu:0.1.0-alpha + cd mindspore-cpu/0.1.0-alpha && docker build . -t mindspore/mindspore-cpu:0.1.0-alpha ``` -* GPU (CUDA 9.2) +* GPU ``` - cd mindspore-cuda9.2 && docker build . -t mindspore/mindspore-cuda9.2:0.1.0-alpha - ``` - -* GPU (CUDA 10.1) - - ``` - cd mindspore-cuda10.1 && docker build . -t mindspore/mindspore-cuda10.1:0.1.0-alpha + cd mindspore-gpu/0.1.0-alpha && docker build . -t mindspore/mindspore-gpu:0.1.0-alpha ``` diff --git a/docker/mindspore-cpu/Dockerfile b/docker/mindspore-cpu/0.1.0-alpha/Dockerfile similarity index 100% rename from docker/mindspore-cpu/Dockerfile rename to docker/mindspore-cpu/0.1.0-alpha/Dockerfile diff --git a/docker/mindspore-cuda9.2/Dockerfile b/docker/mindspore-cuda9.2/Dockerfile deleted file mode 100644 index 6e4010639..000000000 --- a/docker/mindspore-cuda9.2/Dockerfile +++ /dev/null @@ -1,83 +0,0 @@ -FROM nvidia/cuda:9.2-cudnn7-devel-ubuntu18.04 - -MAINTAINER leonwanghui - -# Set env -ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 -ENV CMAKE_ROOT_PATH /usr/local/cmake-3.14.1 -ENV PATH ${PYTHON_ROOT_PATH}/bin:${CMAKE_ROOT_PATH}/bin:/usr/local/bin:$PATH - -# Install base tools -RUN apt update \ - && DEBIAN_FRONTEND=noninteractive apt install -y \ - vim \ - wget \ - curl \ - xz-utils \ - net-tools \ - openssh-client \ - git \ - ntpdate \ - tzdata \ - tcl \ - sudo \ - bash-completion - -# Install compile tools -RUN DEBIAN_FRONTEND=noninteractive apt install -y \ - gcc \ - g++ \ - zlibc \ - make \ - libgmp-dev \ - patch \ - autoconf \ - libtool \ - automake \ - flex - -# Set bash -RUN echo "dash dash/sh boolean false" | debconf-set-selections -RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash - -# Install python (v3.7.5) -RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ - libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ - && cd /tmp \ - && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ - && tar -xvf v3.7.5.tar.gz \ - && cd /tmp/cpython-3.7.5 \ - && mkdir -p ${PYTHON_ROOT_PATH} \ - && ./configure --prefix=${PYTHON_ROOT_PATH} \ - && make -j4 \ - && make install -j4 \ - && rm -f /usr/local/bin/python \ - && rm -f /usr/local/bin/pip \ - && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ - && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ - && rm -rf /tmp/cpython-3.7.5 \ - && rm -f /tmp/v3.7.5.tar.gz - -# Set pip source -RUN mkdir -pv /root/.pip \ - && echo "[global]" > /root/.pip/pip.conf \ - && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ - && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf - -# Install pip package -RUN pip install --no-cache-dir \ - numpy \ - wheel \ - nose \ - pytest \ - pytest-xdist - -# Install cmake (v3.14.1) -RUN cd /tmp \ - && wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1-Linux-x86_64.sh \ - && mkdir -p ${CMAKE_ROOT_PATH} \ - && bash ./cmake-3.14.1-Linux-x86_64.sh --prefix=${CMAKE_ROOT_PATH} --exclude-subdir --skip-license \ - && rm -f /tmp/cmake-3.14.1-Linux-x86_64.sh - -# Install MindSpore cuda-9.2 whl package -RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.1.0-alpha/MindSpore/gpu/cuda-9.2/mindspore-0.1.0-cp37-cp37m-linux_x86_64.whl diff --git a/docker/mindspore-cuda10.1/Dockerfile b/docker/mindspore-gpu/0.1.0-alpha/Dockerfile similarity index 78% rename from docker/mindspore-cuda10.1/Dockerfile rename to docker/mindspore-gpu/0.1.0-alpha/Dockerfile index e2a1ee955..7b82b21a1 100644 --- a/docker/mindspore-cuda10.1/Dockerfile +++ b/docker/mindspore-gpu/0.1.0-alpha/Dockerfile @@ -1,11 +1,12 @@ -FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 +FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 MAINTAINER leonwanghui # Set env ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 ENV CMAKE_ROOT_PATH /usr/local/cmake-3.14.1 -ENV PATH ${PYTHON_ROOT_PATH}/bin:${CMAKE_ROOT_PATH}/bin:/usr/local/bin:$PATH +ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 +ENV PATH ${PYTHON_ROOT_PATH}/bin:${CMAKE_ROOT_PATH}/bin:${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH # Install base tools RUN apt update \ @@ -34,7 +35,9 @@ RUN DEBIAN_FRONTEND=noninteractive apt install -y \ autoconf \ libtool \ automake \ - flex + flex \ + libnccl2=2.4.8-1+cuda10.1 \ + libnccl-dev=2.4.8-1+cuda10.1 # Set bash RUN echo "dash dash/sh boolean false" | debconf-set-selections @@ -79,5 +82,17 @@ RUN cd /tmp \ && bash ./cmake-3.14.1-Linux-x86_64.sh --prefix=${CMAKE_ROOT_PATH} --exclude-subdir --skip-license \ && rm -f /tmp/cmake-3.14.1-Linux-x86_64.sh +# Install openmpi (v3.1.5) +RUN cd /tmp \ + && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ + && tar -xvf openmpi-3.1.5.tar.gz \ + && cd /tmp/openmpi-3.1.5 \ + && mkdir -p ${OMPI_ROOT_PATH} \ + && ./configure --prefix=${OMPI_ROOT_PATH} \ + && make -j4 \ + && make install -j4 \ + && rm -rf /tmp/openmpi-3.1.5 \ + && rm -f /tmp/openmpi-3.1.5.tar.gz + # Install MindSpore cuda-10.1 whl package RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.1.0-alpha/MindSpore/gpu/cuda-10.1/mindspore-0.1.0-cp37-cp37m-linux_x86_64.whl -- GitLab