@@ -2,18 +2,18 @@ FROM nvidia/cuda:11.1-cudnn8-devel-ubuntu18.04
2
2
3
3
# TensorFlow version is tightly coupled to CUDA and cuDNN so it should be selected carefully
4
4
ARG CUDA=11.1
5
- ARG LIBNVINFER=7.2.2 -1
5
+ ARG LIBNVINFER=7.2.3 -1
6
6
ARG LIBNVINFER_MAJOR_VERSION=7
7
7
ARG CUDNN=8.0.5.39-1
8
- ENV NCCL=2.8.3
9
- ENV NCCL_VERSION=2.8.3 -1+cuda11.1
8
+ ENV NCCL=2.8.4
9
+ ENV NCCL_VERSION=2.8.4 -1+cuda11.1
10
10
ENV CUDNN_VERSION 8.0.5.43
11
11
ENV MLNX_OFED_VERSION=5.1-2.3.7.1
12
12
ENV MKL_VERSION=2020.3
13
13
ENV MKL_BUILD=279
14
- ENV NUMPY_VERSION 1.19.4
15
- ENV SCIPY_VERSION 1.5.4
16
- ENV OPENMPI 4.0.5
14
+ ENV NUMPY_VERSION 1.20.2
15
+ ENV SCIPY_VERSION 1.6.2
16
+ ENV OPENMPI 4.1.0
17
17
# Python 3.8 is supported by Ubuntu Bionic out of the box
18
18
ARG python=3.8
19
19
ENV PYTHON_VERSION=${python}
@@ -45,71 +45,79 @@ RUN rm -fr /var/lib/apt/lists/* && \
45
45
wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list && \
46
46
apt-get update -y && \
47
47
apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \
48
- build-essential \
48
+ bashtop \
49
49
ca-certificates \
50
- gcc g++ make \
51
- gfortran \
50
+ curl \
52
51
dkms \
53
- git subversion \
54
- vim \
55
- htop bashtop \
56
- yasm \
57
- wget zip unzip \
58
- openssh-client openssh-server \
59
- libssl-dev \
60
- libmpdec2 \
61
- pdsh curl net-tools \
52
+ fonts-nanum \
53
+ fonts-nanum-coding \
54
+ fonts-nanum-extra \
55
+ g++ \
56
+ gfortran \
57
+ htop \
58
+ intel-mkl-2020.3-111 intel-ipp-2020.2-108 intel-tbb-2020.3-108 intel-daal-2020.2-108 intel-mpi-2019.8-108 \
62
59
iputils-ping \
60
+ libasound2-dev \
61
+ libavcodec-dev \
62
+ libboost-dev \
63
+ libboost-filesystem-dev \
64
+ libboost-system-dev \
65
+ libcairo2-dev libgirepository1.0-dev pkg-config gir1.2-gtk-3.0 \
66
+ libgdal-dev python3-gdal \
67
+ libjasper-dev \
68
+ libnuma-dev \
69
+ libopenblas-dev liblapack-dev \
70
+ libsm6 \
71
+ libswscale-dev \
72
+ libv4l-dev \
73
+ libxext6 \
74
+ libxine2-dev \
75
+ libxml2-dev \
76
+ libxrender-dev \
77
+ libxslt1-dev \
78
+ make \
79
+ mime-support \
80
+ net-tools \
81
+ openssh-server \
82
+ pdsh \
83
+ proj-bin libproj-dev libgeos-dev libgeos++-dev graphviz \
84
+ subversion \
85
+ unzip \
86
+ xvfb \
87
+ xz-utils \
88
+ yasm \
89
+ zip \
90
+ openssh-client \
91
+ build-essential \
92
+ gcc \
93
+ git \
94
+ libavformat-dev \
63
95
libcurl3-dev \
64
96
libfreetype6-dev \
97
+ libgeos-dev libgeos++-dev \
65
98
libhdf5-serial-dev \
66
- libzmq3-dev \
67
99
libjpeg-dev \
100
+ libmpdec2 \
68
101
libpng-dev \
69
- libsm6 \
70
- libxext6 \
71
- libxrender-dev \
72
- libgdal-dev python3-gdal \
73
102
libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev \
74
103
libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev \
75
- libcairo2-dev libgirepository1.0-dev pkg-config gir1.2-gtk-3.0 \
76
- libgeos-dev libgeos++-dev \
104
+ libssl-dev \
105
+ libtiff-dev \
106
+ libzmq3-dev \
77
107
pkg-config \
78
- zlib1g-dev \
79
- mime-support \
80
- intel-mkl-2020.3-111 intel-ipp-2020.2-108 intel-tbb-2020.3-108 intel-daal-2020.2-108 intel-mpi-2019.8-108 \
81
- proj-bin libproj-dev libgeos-dev libgeos++-dev graphviz \
82
108
python${PYTHON_VERSION} \
83
109
python${PYTHON_VERSION}-dev \
84
- libxml2-dev \
85
- libxslt1-dev \
86
- libasound2-dev \
87
- libnuma-dev \
88
- libjasper-dev \
89
- libtiff-dev \
90
- libavcodec-dev \
91
- libavformat-dev \
92
- libswscale-dev \
93
- libxine2-dev \
94
- libv4l-dev \
95
- libboost-dev \
96
- libboost-system-dev \
97
- libboost-filesystem-dev \
98
- libopenblas-dev liblapack-dev \
99
- xvfb \
100
- xz-utils \
101
- fonts-nanum \
102
- fonts-nanum-coding \
103
- fonts-nanum-extra \
104
- && \
110
+ vim \
111
+ wget \
112
+ zlib1g-dev && \
105
113
echo "/opt/intel/daal/lib/intel64" >> /etc/ls.so.conf && \
106
114
echo "/opt/intel/ipp/lib/intel64" >> /etc/ls.so.conf && \
107
115
echo "/opt/intel/lib/intel64" >> /etc/ls.so.conf && \
108
116
echo "/opt/intel/mkl/lib/intel64" >> /etc/ls.so.conf && \
109
117
find /usr/local/cuda-${CUDA}/lib64/ -type f -name 'lib*_static.a' -not -name 'libcudart_static.a' -delete
110
118
111
119
WORKDIR /tmp
112
- RUN curl -fsSL https://developer.download.nvidia.com/compute/redist/nccl/v2.8/nccl_2.8.3 -1+cuda11.1_x86_64.txz -O && \
120
+ RUN curl -fsSL https://developer.download.nvidia.com/compute/redist/nccl/v2.8/nccl_2.8.4 -1+cuda11.1_x86_64.txz -O && \
113
121
tar --no-same-owner --keep-old-files --lzma -xvf nccl_${NCCL}-1+cuda11.1_x86_64.txz -C /usr/local/cuda/lib64/ --strip-components=2 --wildcards '*/lib/libnccl.so.*' && \
114
122
tar --no-same-owner --keep-old-files --lzma -xvf nccl_${NCCL}-1+cuda11.1_x86_64.txz -C /usr/lib/pkgconfig/ --strip-components=3 --wildcards '*/lib/pkgconfig/*' && \
115
123
rm nccl_${NCCL}-1+cuda11.1_x86_64.txz && \
@@ -124,7 +132,7 @@ RUN ln -s /usr/local/cuda-11.1 /usr/local/cuda && \
124
132
ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.8.0.5 /usr/local/cuda/lib64/libcudnn.so && \
125
133
ldconfig
126
134
127
- RUN curl -sL https://deb.nodesource.com/setup_10 .x | bash - && \
135
+ RUN curl -sL https://deb.nodesource.com/setup_12 .x | bash - && \
128
136
apt-get update -y && \
129
137
apt-get install -y nodejs
130
138
@@ -187,7 +195,8 @@ RUN rm /usr/bin/python /usr/bin/python3 && \
187
195
188
196
WORKDIR /tmp
189
197
RUN curl https://bootstrap.pypa.io/get-pip.py | python3 && \
190
- python3 -m pip install --no-cache-dir -U setuptools pip
198
+ python3 -m pip install --no-cache-dir -U setuptools pip && \
199
+ python3 -m pip install --no-cache-dir cython pybind11
191
200
192
201
WORKDIR /tmp
193
202
# OpenBlas
@@ -288,7 +297,7 @@ RUN ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h && \
288
297
apt-get clean && \
289
298
rm -rf /var/lib/apt/lists/
290
299
291
- RUN wget https://github.com/Kitware/CMake/releases/download/v3.19.2 /cmake-3.19.2 -Linux-x86_64.sh \
300
+ RUN wget https://github.com/Kitware/CMake/releases/download/v3.20.0 /cmake-3.20.0 -Linux-x86_64.sh \
292
301
-q -O /tmp/cmake-install.sh && \
293
302
chmod u+x /tmp/cmake-install.sh && \
294
303
mkdir /usr/bin/cmake && \
@@ -352,9 +361,9 @@ RUN cd /usr/local/src && mkdir lightgbm && cd lightgbm && \
352
361
353
362
# Install Open UCX
354
363
WORKDIR /tmp
355
- RUN wget https://github.com/openucx/ucx/archive/v1.9 .0.tar.gz && \
356
- tar xvf v1.9 .0.tar.gz && \
357
- cd ucx-1.9 .0 && \
364
+ RUN wget https://github.com/openucx/ucx/archive/v1.10 .0.tar.gz && \
365
+ tar xvf v1.10 .0.tar.gz && \
366
+ cd ucx-1.10 .0 && \
358
367
bash ./autogen.sh && \
359
368
mkdir build && \
360
369
cd build && \
@@ -375,11 +384,10 @@ RUN mkdir /tmp/openmpi && \
375
384
rm -rf /tmp/openmpi*
376
385
377
386
# Install OpenSSH for MPI to communicate between containers
378
- RUN apt-get install -y --no-install-recommends openssh-client openssh-server && \
379
- mkdir -p /var/run/sshd
380
387
381
388
# Allow OpenSSH to talk to containers without asking for confirmation
382
- RUN cat /etc/ssh/ssh_config | grep -v StrictHostKeyChecking > /etc/ssh/ssh_config.new && \
389
+ RUN mkdir -p /var/run/sshd && \
390
+ cat /etc/ssh/ssh_config | grep -v StrictHostKeyChecking > /etc/ssh/ssh_config.new && \
383
391
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config.new && \
384
392
mv /etc/ssh/ssh_config.new /etc/ssh/ssh_config
385
393
@@ -392,26 +400,18 @@ RUN mv /usr/local/bin/mpirun /usr/local/bin/mpirun.real && \
392
400
# Configure OpenMPI to run good defaults:
393
401
RUN echo "btl_tcp_if_exclude = lo,docker0" >> /usr/local/etc/openmpi-mca-params.conf
394
402
395
- # Install OpenSSH for MPI to communicate between containers
396
- RUN mkdir -p /var/run/sshd
397
-
398
- # Allow OpenSSH to talk to containers without asking for confirmation
399
- RUN cat /etc/ssh/ssh_config | grep -v StrictHostKeyChecking > /etc/ssh/ssh_config.new && \
400
- echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config.new && \
401
- mv /etc/ssh/ssh_config.new /etc/ssh/ssh_config
402
-
403
403
# Install git-lfs
404
404
WORKDIR /tmp
405
- RUN curl -sLO https://github.com/git-lfs/git-lfs/releases/download/v2.13.1 /git-lfs-linux-amd64-v2.13.1 .tar.gz && \
406
- tar -zxf git-lfs-linux-amd64-v2.13.1 .tar.gz && \
405
+ RUN curl -sLO https://github.com/git-lfs/git-lfs/releases/download/v2.13.3 /git-lfs-linux-amd64-v2.13.3 .tar.gz && \
406
+ tar -zxf git-lfs-linux-amd64-v2.13.3 .tar.gz && \
407
407
bash install.sh && \
408
408
rm -rf /tmp/*
409
409
410
410
# Install VSCode
411
- RUN curl -fL https://github.com/cdr/code-server/releases/download/v3.8.0 /code-server-3.8.0 -linux-amd64.tar.gz \
411
+ RUN curl -fL https://github.com/cdr/code-server/releases/download/v3.9.2 /code-server-3.9.2 -linux-amd64.tar.gz \
412
412
| tar -C /usr/local/lib -xz && \
413
- mv /usr/local/lib/code-server-3.8.0 -linux-amd64 /usr/local/lib/code-server-3.8.0 && \
414
- ln -s /usr/local/lib/code-server-3.8.0 /bin/code-server /usr/local/bin/code-server
413
+ mv /usr/local/lib/code-server-3.9.2 -linux-amd64 /usr/local/lib/code-server-3.9.2 && \
414
+ ln -s /usr/local/lib/code-server-3.9.2 /bin/code-server /usr/local/bin/code-server
415
415
416
416
# Install Jupyterlab extensions
417
417
RUN jupyter nbextensions_configurator enable && \
0 commit comments