Permalink
Please
sign in to comment.
Browse files
Created separate Dockerfiles for CPU and GPU devices, bumped TensorFl…
…ow==2.0.0 and PyTorch==1.3.0 (#1460) Signed-off-by: Travis Addair <taddair@uber.com>
- Loading branch information
Showing
with
110 additions
and 17 deletions.
- +80 −0 Dockerfile.cpu
- +6 −5 Dockerfile → Dockerfile.gpu
- +19 −9 build-docker-images.sh
- +5 −3 docs/contributors.rst
@@ -0,0 +1,80 @@ | ||
FROM ubuntu:18.04 | ||
|
||
ENV TENSORFLOW_VERSION=2.0.0 | ||
ENV PYTORCH_VERSION=1.3.0 | ||
ENV TORCHVISION_VERSION=0.4.1 | ||
ENV MXNET_VERSION=1.5.0 | ||
|
||
# Python 2.7 or 3.6 is supported by Ubuntu Bionic out of the box | ||
ARG python=2.7 | ||
ENV PYTHON_VERSION=${python} | ||
|
||
# Set default shell to /bin/bash | ||
SHELL ["/bin/bash", "-cu"] | ||
|
||
RUN apt-get update && apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ | ||
build-essential \ | ||
cmake \ | ||
g++-4.8 \ | ||
git \ | ||
curl \ | ||
vim \ | ||
wget \ | ||
ca-certificates \ | ||
libjpeg-dev \ | ||
libpng-dev \ | ||
python${PYTHON_VERSION} \ | ||
python${PYTHON_VERSION}-dev \ | ||
librdmacm1 \ | ||
libibverbs1 \ | ||
ibverbs-providers | ||
|
||
RUN if [[ "${PYTHON_VERSION}" == "3.6" ]]; then \ | ||
apt-get install -y python${PYTHON_VERSION}-distutils; \ | ||
fi | ||
RUN ln -s /usr/bin/python${PYTHON_VERSION} /usr/bin/python | ||
|
||
RUN curl -O https://bootstrap.pypa.io/get-pip.py && \ | ||
python get-pip.py && \ | ||
rm get-pip.py | ||
|
||
# Install TensorFlow, Keras, PyTorch and MXNet | ||
RUN pip install future typing | ||
RUN pip install numpy \ | ||
tensorflow==${TENSORFLOW_VERSION} \ | ||
keras \ | ||
h5py | ||
RUN pip install torch==${PYTORCH_VERSION} torchvision==${TORCHVISION_VERSION} | ||
RUN pip install mxnet==${MXNET_VERSION} | ||
|
||
# Install Open MPI | ||
RUN mkdir /tmp/openmpi && \ | ||
cd /tmp/openmpi && \ | ||
wget https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.0.tar.gz && \ | ||
tar zxf openmpi-4.0.0.tar.gz && \ | ||
cd openmpi-4.0.0 && \ | ||
./configure --enable-orterun-prefix-by-default && \ | ||
make -j $(nproc) all && \ | ||
make install && \ | ||
ldconfig && \ | ||
rm -rf /tmp/openmpi | ||
|
||
# Install Horovod | ||
RUN HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITH_PYTORCH=1 HOROVOD_WITH_MXNET=1 \ | ||
pip install --no-cache-dir horovod | ||
|
||
# Install OpenSSH for MPI to communicate between containers | ||
RUN apt-get install -y --no-install-recommends openssh-client openssh-server && \ | ||
mkdir -p /var/run/sshd | ||
|
||
# Allow OpenSSH to talk to containers without asking for confirmation | ||
RUN cat /etc/ssh/ssh_config | grep -v StrictHostKeyChecking > /etc/ssh/ssh_config.new && \ | ||
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config.new && \ | ||
mv /etc/ssh/ssh_config.new /etc/ssh/ssh_config | ||
|
||
# Download examples | ||
RUN apt-get install -y --no-install-recommends subversion && \ | ||
svn checkout https://github.com/horovod/horovod/trunk/examples && \ | ||
rm -rf /examples/.svn | ||
|
||
WORKDIR "/examples" |
0 comments on commit
62896cf