Skip to content

Commit 5e71dba

Browse files
committed
update packages
1 parent 1f7d337 commit 5e71dba

File tree

1 file changed

+169
-108
lines changed

1 file changed

+169
-108
lines changed

commons/Dockerfile.base.py38-cuda11.2

Lines changed: 169 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
FROM nvidia/cuda:11.2.1-cudnn8-devel-ubuntu20.04
22

33
# TensorFlow version is tightly coupled to CUDA and cuDNN so it should be selected carefully
4-
ARG CUDA=11.2
5-
ARG LIBNVINFER=8.0.1-1
4+
ARG CUDA=11.2.1
5+
ARG LIBNVINFER=8.2.3-1
66
ARG LIBNVINFER_MAJOR_VERSION=8
7-
ARG CUDNN=8.1.1.39-1
8-
ENV NCCL=2.8.4
9-
ENV NCCL_VERSION=2.8.4-1+cuda11.2
10-
ENV CUDNN_VERSION 8.1.1.33
7+
ARG CUDNN=8.2.4.15-1
8+
ENV CUDNN_VERSION 8.2.4.15
9+
ENV NCCL=2.11.4
10+
ENV NCCL_VERSION=2.11.4-1
11+
ENV MLNX_OFED_VERSION=5.1-2.3.7.1
1112
ENV MKL_VERSION=2020.3
1213
ENV MKL_BUILD=279
1314
ENV NUMPY_VERSION 1.22.2
@@ -19,130 +20,240 @@ ENV PYTHON_VERSION=${python}
1920

2021
ENV DEBIAN_FRONTEND=noninteractive \
2122
MPLBACKEND=Svg \
22-
CPLUS_INCLUDE_PATH=/usr/include/gdal \
23-
C_INCLUDE_PATH=/usr/include/gdal \
23+
PIP_IGNORE_INSTALLED=0 \
2424
PYTHONUNBUFFERED=1 \
2525
LIBRARY_PATH=/usr/local/cuda/lib64/stubs \
2626
_CUDA_COMPAT_PATH="/usr/local/cuda/compat" \
27-
LD_LIBRARY_PATH="/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/compat/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:/usr/include/x86_64-linux-gnu:/opt/intel/compilers_and_libraries_2020.3.279/linux/mkl/lib/intel64" \
28-
PATH="/usr/local/mpi/bin:/usr/local/ucx:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/bin/cmake/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/tensorrt/bin:/usr/local/src/lightgbm/LightGBM:/usr/local/bin/mecab" \
27+
LD_LIBRARY_PATH="/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/compat/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:/usr/lib/x86_64-linux-gnu:/usr/include/x86_64-linux-gnu:/opt/intel/compilers_and_libraries_2020.3.279/linux/mkl/lib/intel64" \
28+
PATH="/usr/local/nvm/versions/node/v16.6.1/bin:/usr/local/mpi/bin:/usr/local/ucx:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/bin/cmake/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/tensorrt/bin:/usr/local/src/lightgbm/LightGBM:/usr/local/bin/mecab" \
29+
CPLUS_INCLUDE_PATH=/usr/include/gdal \
30+
C_INCLUDE_PATH=/usr/include/gdal \
2931
mecab_dicdir=/usr/local/lib/mecab/dic/mecab-ko-dic \
3032
LANG=C.UTF-8
3133

3234
# Set default shell to /bin/bash
3335
SHELL ["/bin/bash", "-cu"]
3436

37+
WORKDIR /tmp
3538
RUN rm -fr /var/lib/apt/lists/* && \
3639
apt-get update -y && \
3740
apt-get install -y --no-install-recommends software-properties-common wget && \
41+
curl -sL https://deb.nodesource.com/setup_12.x | bash - && \
3842
add-apt-repository -y "deb http://security.ubuntu.com/ubuntu xenial-security main" && \
3943
add-apt-repository -y ppa:deadsnakes/ppa && \
4044
add-apt-repository -y ppa:bashtop-monitor/bashtop && \
4145
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \
4246
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \
4347
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \
4448
wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list && \
49+
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub &&\
4550
apt-get update -y && \
46-
apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \
51+
apt-get install -y --no-install-recommends \
52+
automake \
4753
bashtop \
54+
build-essential \
4855
ca-certificates \
4956
curl \
57+
devscripts \
58+
dh-make \
5059
dkms \
60+
fakeroot \
61+
ffmpeg \
5162
fonts-nanum \
5263
fonts-nanum-coding \
5364
fonts-nanum-extra \
5465
g++ \
66+
gcc \
5567
gfortran \
68+
gir1.2-gtk-3.0 \
69+
git \
70+
graphviz \
5671
htop \
5772
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 \
5873
iputils-ping \
5974
libasound2-dev \
75+
libatlas-base-dev \
6076
libavcodec-dev \
77+
libavformat-dev \
78+
libavresample-dev \
6179
libboost-dev \
6280
libboost-filesystem-dev \
6381
libboost-system-dev \
64-
libcairo2-dev libgirepository1.0-dev pkg-config gir1.2-gtk-3.0 \
65-
libgdal-dev python3-gdal \
82+
libcairo2-dev \
83+
libcurl3-dev \
84+
libdc1394-22-dev \
85+
libeigen3-dev \
86+
libfaac-dev \
87+
libfreetype6-dev \
88+
libgdal-dev \
89+
libgeos++-dev \
90+
libgeos-dev \
91+
libgflags-dev \
92+
libgirepository1.0-dev \
93+
libgoogle-glog-dev \
94+
libgphoto2-dev \
95+
libgstreamer-plugins-base1.0-dev \
96+
libgstreamer1.0-dev \
97+
libgtk-3-dev \
98+
libhdf5-dev \
99+
libhdf5-serial-dev \
66100
libjasper-dev \
101+
libjpeg-dev \
102+
liblapack-dev \
103+
libmp3lame-dev \
104+
libmpdec2 \
67105
libnuma-dev \
68-
libopenblas-dev liblapack-dev \
106+
107+
# libnvinfer8=${LIBNVINFER}+cuda${CUDA} \
108+
# libnvonnxparsers8=${LIBNVINFER}+cuda${CUDA} \
109+
# libnvparsers8=${LIBNVINFER}+cuda${CUDA} \
110+
# libnvinfer-plugin8=${LIBNVINFER}+cuda${CUDA} \
111+
# libnvinfer-dev=${LIBNVINFER}+cuda${CUDA} \
112+
# libnvonnxparsers-dev=${LIBNVINFER}+cuda${CUDA} \
113+
# libnvparsers-dev=${LIBNVINFER}+cuda${CUDA} \
114+
# libnvinfer-plugin-dev=${LIBNVINFER}+cuda${CUDA} \
115+
116+
libopenblas-dev \
117+
libopencore-amrnb-dev \
118+
libopencore-amrwb-dev \
119+
libpng-dev \
120+
libportmidi-dev \
121+
libproj-dev \
122+
libprotobuf-dev \
123+
libsdl-dev \
124+
libsdl-image1.2-dev \
125+
libsdl-mixer1.2-dev \
126+
libsdl-ttf2.0-dev \
69127
libsm6 \
128+
libsmpeg-dev \
129+
libssl-dev \
70130
libswscale-dev \
131+
libtbb-dev \
132+
libtheora-dev \
133+
libtiff-dev \
71134
libv4l-dev \
135+
libvorbis-dev \
136+
libx264-dev \
72137
libxext6 \
73138
libxine2-dev \
74139
libxml2-dev \
75140
libxrender-dev \
76141
libxslt1-dev \
142+
libxvidcore-dev \
143+
libzmq3-dev \
144+
lintian \
77145
make \
146+
mercurial \
78147
mime-support \
79148
ncurses-term \
80149
net-tools \
150+
nodejs \
151+
nvtop \
152+
openjdk-8-jdk \
153+
openssh-client \
81154
openssh-server \
82155
pdsh \
83-
proj-bin libproj-dev libgeos-dev libgeos++-dev graphviz \
156+
pkg-config \
157+
proj-bin \
158+
protobuf-compiler \
159+
python${PYTHON_VERSION} \
160+
python${PYTHON_VERSION} \
161+
python${PYTHON_VERSION}-dev \
162+
python${PYTHON_VERSION}-dev \
163+
python${PYTHON_VERSION}-distutils \
164+
python-apt \
165+
python3-gdal \
166+
python3-libnvinfer=${LIBNVINFER}+cuda${CUDA} \
84167
subversion \
85168
unzip \
169+
v4l-utils \
170+
vim \
171+
wget \
172+
x264 \
86173
xvfb \
87174
xz-utils \
88175
yasm \
89176
zip \
90-
openssh-client \
91-
build-essential \
92-
gcc \
93-
git \
94-
libavformat-dev \
95-
libcurl3-dev \
96-
libfreetype6-dev \
97-
libgeos-dev libgeos++-dev \
98-
libhdf5-serial-dev \
99-
libjpeg-dev \
100-
libmpdec2 \
101-
libpng-dev \
102-
libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev \
103-
libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev \
104-
libssl-dev \
105-
libtiff-dev \
106-
libzmq3-dev \
107-
pkg-config \
108-
python${PYTHON_VERSION} \
109-
python${PYTHON_VERSION}-dev \
110177
vim \
111-
wget \
112178
zlib1g-dev && \
179+
# install nccl
180+
curl -fsSL https://developer.download.nvidia.com/compute/redist/nccl/v2.11/nccl_2.11.4-1+cuda11.2_x86_64.txz -O && \
181+
tar --no-same-owner --keep-old-files --lzma -xvf nccl_${NCCL}-1+cuda11.2_x86_64.txz -C /usr/local/cuda/lib64/ --strip-components=2 --wildcards '*/lib/libnccl.so.*' && \
182+
tar --no-same-owner --keep-old-files --lzma -xvf nccl_${NCCL}-1+cuda11.2_x86_64.txz -C /usr/lib/pkgconfig/ --strip-components=3 --wildcards '*/lib/pkgconfig/*' && \
183+
rm nccl_${NCCL}-1+cuda11.2_x86_64.txz && \
184+
ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 && \
185+
echo "/usr/local/cuda/lib64/stubs" > /etc/ld.so.conf.d/z-cuda-stubs.conf && \
186+
ldconfig && \
113187
echo "/opt/intel/daal/lib/intel64" >> /etc/ls.so.conf && \
114188
echo "/opt/intel/ipp/lib/intel64" >> /etc/ls.so.conf && \
115189
echo "/opt/intel/lib/intel64" >> /etc/ls.so.conf && \
116190
echo "/opt/intel/mkl/lib/intel64" >> /etc/ls.so.conf && \
117-
find /usr/local/cuda-${CUDA}/lib64/ -type f -name 'lib*_static.a' -not -name 'libcudart_static.a' -delete
191+
find /usr/local/cuda-${CUDA}/lib64/ -type f -name 'lib*_static.a' -not -name 'libcudart_static.a' -delete && \
192+
# Add OpenCL ICD files for LightGBM
193+
mkdir -p /etc/OpenCL/vendors && \
194+
echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
118195

196+
ARG CUDA_VERSION=11.4.2
197+
ENV TRT_VERSION 8.2.3.0
198+
RUN v="${TRT_VERSION%.*}-1+cuda${CUDA_VERSION%.*}" &&\
199+
apt-get update &&\
200+
sudo apt-get install libnvinfer8=${v} libnvonnxparsers8=${v} libnvparsers8=${v} libnvinfer-plugin8=${v} \
201+
libnvinfer-dev=${v} libnvonnxparsers-dev=${v} libnvparsers-dev=${v} libnvinfer-plugin-dev=${v} \
202+
python3-libnvinfer=${v};
203+
# OFED
119204
WORKDIR /tmp
120-
RUN curl -fsSL https://developer.download.nvidia.com/compute/redist/nccl/v2.8/nccl_2.8.4-1+cuda11.2_x86_64.txz -O && \
121-
tar --no-same-owner --keep-old-files --lzma -xvf nccl_${NCCL}-1+cuda11.2_x86_64.txz -C /usr/local/cuda/lib64/ --strip-components=2 --wildcards '*/lib/libnccl.so.*' && \
122-
tar --no-same-owner --keep-old-files --lzma -xvf nccl_${NCCL}-1+cuda11.2_x86_64.txz -C /usr/lib/pkgconfig/ --strip-components=3 --wildcards '*/lib/pkgconfig/*' && \
123-
rm nccl_${NCCL}-1+cuda11.2_x86_64.txz && \
124-
ldconfig
205+
RUN wget -q -O - https://www.mellanox.com/downloads/ofed/MLNX_OFED-5.1-2.3.7.1/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu18.04-x86_64.tgz | tar xzf - && \
206+
cd /tmp/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu18.04-x86_64 && \
207+
./mlnxofedinstall --user-space-only --without-fw-update --all -q && \
208+
cd /tmp && \
209+
rm -rf /tmp/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu18.04-x86_64*
125210

126-
RUN ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 && \
127-
echo "/usr/local/cuda/lib64/stubs" > /etc/ld.so.conf.d/z-cuda-stubs.conf && \
128-
ldconfig
211+
RUN wget https://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.0-Linux-x86_64.sh \
212+
-q -O /tmp/cmake-install.sh && \
213+
chmod u+x /tmp/cmake-install.sh && \
214+
mkdir /usr/bin/cmake && \
215+
/tmp/cmake-install.sh --skip-license --prefix=/usr/bin/cmake && \
216+
rm /tmp/cmake-install.sh
129217

130-
# Install CUDA-11.2 + cuDNN 8.1.1
131-
RUN ln -s /usr/local/cuda-11.2 /usr/local/cuda && \
132-
ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.8.1.1xs /usr/local/cuda/lib64/libcudnn.so && \
218+
# Oracle client
219+
RUN mkdir -p /opt/oracle && \
220+
cd /opt/oracle && \
221+
apt-get clean && \
222+
rm -rf /var/lib/apt/lists/* && \
223+
apt-get update -y && \
224+
apt-get install -y --no-install-recommends libaio1 default-libmysqlclient-dev && \
225+
wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip && \
226+
unzip instantclient-basiclite-linuxx64.zip && \
227+
rm -f instantclient-basiclite-linuxx64.zip && \
228+
cd /opt/oracle/instantclient* && \
229+
rm -f *jdbc* *occi* *mysql* *README *jar uidrvci genezi adrci && \
230+
echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf && \
133231
ldconfig
134232

135-
RUN curl -sL https://deb.nodesource.com/setup_lts.x | bash - && \
136-
apt-get update -y && \
137-
apt-get install -y nodejs
233+
# install git-lfs
234+
WORKDIR /tmp
235+
RUN curl -sLO https://github.com/git-lfs/git-lfs/releases/download/v3.0.2/git-lfs-linux-amd64-v3.0.2.tar.gz && \
236+
tar -zxf git-lfs-linux-amd64-v3.0.2.tar.gz && \
237+
bash install.sh && \
238+
rm -rf /tmp/*
138239

139-
# Add OpenCL ICD files for LightGBM
140-
RUN mkdir -p /etc/OpenCL/vendors && \
141-
echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
240+
# Install BashTop
241+
WORKDIR /tmp
242+
RUN git clone https://github.com/aristocratos/bashtop.git && \
243+
cd bashtop && \
244+
make install
142245

143-
RUN if [[ "${PYTHON_VERSION}" == "3.8" ]]; then \
144-
apt-get install -y python${PYTHON_VERSION}-distutils python-apt ; \
145-
fi
246+
# Install Open UCX
247+
WORKDIR /tmp
248+
RUN wget https://github.com/openucx/ucx/archive/v1.12.0.tar.gz && \
249+
tar xvf v1.12.0.tar.gz && \
250+
cd ucx-1.12.0 && \
251+
bash ./autogen.sh && \
252+
mkdir build && \
253+
cd build && \
254+
../configure --prefix=/usr/local/ucx && \
255+
make -j$(nproc) && \
256+
make install
146257

147258
RUN rm -r /usr/bin/python3 && \
148259
ln -s /usr/bin/python3.8 /usr/bin/python3 && \
@@ -221,13 +332,6 @@ RUN echo "Install mecab-ko-dic" && \
221332
git clone https://bitbucket.org/eunjeon/mecab-python-0.996.git && \
222333
python3 -m pip install /tmp/mecab-python-0.996
223334

224-
RUN wget https://github.com/Kitware/CMake/releases/download/v3.22.2/cmake-3.22.2-Linux-x86_64.sh \
225-
-q -O /tmp/cmake-install.sh && \
226-
chmod u+x /tmp/cmake-install.sh && \
227-
mkdir /usr/bin/cmake && \
228-
/tmp/cmake-install.sh --skip-license --prefix=/usr/bin/cmake && \
229-
rm /tmp/cmake-install.sh
230-
231335
WORKDIR /tmp
232336
COPY ./requirements.py38.txt /tmp
233337
RUN python3 -m pip install --no-cache-dir -r requirements.py38.txt && \
@@ -319,17 +423,6 @@ RUN cd /usr/local/src && mkdir lightgbm && cd lightgbm && \
319423
cd /usr/local/src/lightgbm/LightGBM/python-package && \
320424
python3 setup.py install --precompile
321425

322-
# Install Open UCX
323-
WORKDIR /tmp
324-
RUN wget https://github.com/openucx/ucx/archive/v1.12.0.tar.gz && \
325-
tar xvf v1.12.0.tar.gz && \
326-
cd ucx-1.12.0 && \
327-
bash ./autogen.sh && \
328-
mkdir build && \
329-
cd build && \
330-
../configure --prefix=/usr/local/ucx && \
331-
make -j$(nproc) && \
332-
make install
333426

334427
# Install Open MPI
335428
RUN mkdir /tmp/openmpi && \
@@ -369,39 +462,7 @@ RUN cat /etc/ssh/ssh_config | grep -v StrictHostKeyChecking > /etc/ssh/ssh_confi
369462
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config.new && \
370463
mv /etc/ssh/ssh_config.new /etc/ssh/ssh_config
371464

372-
# Install git-lfs
373-
WORKDIR /tmp
374-
RUN curl -sLO https://github.com/git-lfs/git-lfs/releases/download/v3.1.2/git-lfs-linux-amd64-v3.1.2.tar.gz && \
375-
tar -zxf git-lfs-linux-amd64-v3.1.2.tar.gz && \
376-
bash install.sh && \
377-
rm -rf /tmp/*
378-
379-
# Install VSCode
380-
RUN curl -fL https://github.com/cdr/code-server/releases/download/v4.0.2/code-server-4.0.2-linux-amd64.tar.gz \
381-
| tar -C /usr/local/lib -xz && \
382-
mv /usr/local/lib/code-server-4.0.2-linux-amd64 /usr/local/lib/code-server-4.0.2 && \
383-
ln -s /usr/local/lib/code-server-4.0.2/bin/code-server /usr/local/bin/code-server
384-
385-
# add 19.09.06
386-
RUN git clone --recursive https://github.com/dmlc/xgboost && \
387-
cd xgboost && \
388-
mkdir build && \
389-
cd build && \
390-
cmake .. -DUSE_CUDA=ON -DUSE_NCCL=ON && \
391-
make -j$(nproc) && \
392-
cd ../python-package && \
393-
python3 setup.py install
394-
395-
RUN git clone --recursive https://github.com/Microsoft/LightGBM && \
396-
cd LightGBM && \
397-
mkdir build ; cd build && \
398-
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda-11.2/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda-11.2/include/ .. && \
399-
make -j$(nproc) && \
400-
cd ../python-package && \
401-
python3 setup.py install --precompile
402-
403-
RUN rm /usr/local/bin/node && \
404-
python3 -m pip install --no-cache-dir jupyter_nbextensions_configurator traitlets
465+
RUN rm /usr/local/bin/node
405466
# Install Jupyterlab extensions
406467
RUN jupyter nbextensions_configurator enable && \
407468
jupyter contrib nbextension install && \

0 commit comments

Comments
 (0)