Skip to content
Snippets Groups Projects

Add docker ubuntu 22.04 cuda 11.7 image

Merged Jean-Baptiste Keck requested to merge docker_cuda into master
Files
35
@@ -21,37 +21,38 @@ MAINTAINER Jean-Baptiste.Keck@imag.fr
# parallel builds
ARG NTHREADS
ENV MAKEFLAGS "-j${NTHREADS}"
ENV PYTHON_EXECUTABLE=python3.10
# upgrade initial image
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get full-upgrade -y
# get build tools and required libraries
RUN apt-get update && apt-get install -y --no-install-recommends expat unzip xz-utils automake libtool pkg-config cmake rsync git vim ssh curl wget ca-certificates gcc g++ gfortran lsb-core cpio libnuma1 libpciaccess0 libreadline-dev libblas-dev liblapack-dev libgcc-11-dev libgfortran-11-dev libgmp-dev libmpfr-dev libmpc-dev python3.9-dev opencl-headers swig libgmp-dev libmpfr-dev libmpc-dev libcairo-dev libcairomm-1.0-dev python3.9-tk
RUN apt-get update && apt-get install -y --no-install-recommends expat unzip xz-utils automake libtool pkg-config cmake rsync git vim ssh curl wget ca-certificates gcc g++ gfortran lsb-core cpio libnuma1 libpciaccess0 libreadline-dev libblas-dev liblapack-dev libgcc-11-dev libgfortran-11-dev libgmp-dev libmpfr-dev libmpc-dev ${PYTHON_EXECUTABLE}-dev opencl-headers swig libgmp-dev libmpfr-dev libmpc-dev libcairo-dev libcairomm-1.0-dev ${PYTHON_EXECUTABLE}-tk
# python-pip
RUN cd /tmp && \
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3.9 get-pip.py && \
python3.9 -m pip install --upgrade pip && \
${PYTHON_EXECUTABLE} get-pip.py && \
${PYTHON_EXECUTABLE} -m pip install --upgrade pip && \
rm -f /tmp/get-pip.py
RUN python3.9 -m pip install --upgrade numpy==1.21.5 setuptools cffi wheel pytest pybind11 cython
RUN ${PYTHON_EXECUTABLE} -m pip install --upgrade numpy==1.21.5 setuptools cffi wheel pytest pybind11 cython
# OpenMPI 4.1.2 + mpi4py (enable mpi1 compatibility for mpi4py)
ENV MPI_ROOT "/usr/local"
RUN cd /tmp && \
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz && \
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.4.tar.gz && \
tar -xvzf openmpi-*.tar.gz && \
rm -f openmpi-*.tar.gz && \
cd openmpi-* && \
./configure --enable-shared --disable-static --with-threads=posix --enable-ipv6 --prefix="${MPI_ROOT}" --with-hwloc=internal --with-libevent=internal --enable-mpi1-compatibility && \
./configure --enable-shared --disable-static --enable-ipv6 --prefix="${MPI_ROOT}" --with-hwloc=internal --with-libevent=internal --enable-mpi1-compatibility && \
make && \
make install && \
rm -rf /tmp/openmpi-*
ENV MPICC "${MPI_ROOT}/bin/mpicc"
RUN ldconfig && python3.9 -m pip install --upgrade mpi4py -vvv
RUN ldconfig && ${PYTHON_EXECUTABLE} -m pip install --upgrade mpi4py -vvv
# HPTT (CPU tensor permutation library)
RUN cd /tmp && \
@@ -66,7 +67,7 @@ RUN cd /tmp && \
make && \
make install && \
cd ../pythonAPI && \
python3.9 -m pip install --upgrade . && \
${PYTHON_EXECUTABLE} -m pip install --upgrade . && \
cd /tmp && \
rm -rf /tmp/hptt
@@ -80,16 +81,16 @@ RUN cd /tmp && \
make && \
make install && \
rm -rf /tmp/hdf5-*
RUN CC="${MPICC}" HDF5_MPI="ON" HDF5_VERSION="1.12.1" HDF5_DIR="${MPI_ROOT}" python3.9 -m pip install --upgrade --no-binary=h5py h5py -vvv
RUN CC="${MPICC}" HDF5_MPI="ON" HDF5_VERSION="1.12.1" HDF5_DIR="${MPI_ROOT}" ${PYTHON_EXECUTABLE} -m pip install --upgrade --no-binary=h5py h5py -vvv
# other python packages
RUN python3.9 -m pip install --upgrade scipy sympy matplotlib gmpy2 psutil py-cpuinfo Mako editdistance portalocker colors.py tee pycairo argparse_color_formatter networkx pyvis zarr numcodecs jsonpickle memory-tempfile primefac
RUN ${PYTHON_EXECUTABLE} -m pip install --upgrade scipy sympy matplotlib gmpy2 psutil py-cpuinfo Mako editdistance portalocker colors.py tee pycairo argparse_color_formatter networkx pyvis zarr numcodecs jsonpickle memory-tempfile primefac
# llvm + numba + llvmlite (numba 0.55.1 only supports llvm 11 for now)
RUN apt-get update && \
apt-get install -y llvm-11-dev libclang-11-dev clang-11
ENV LLVM_CONFIG=llvm-config-11
RUN python3.9 -m pip install --upgrade numba llvmlite
RUN ${PYTHON_EXECUTABLE} -m pip install --upgrade numba llvmlite
# Intel experimental OpenCL platform with SYCL support
# OclCpuExp 2021.12 and oneTBB 2021.5.0
@@ -128,10 +129,9 @@ RUN cd /tmp && \
mv ./clinfo /bin/ && \
rm -rf /tmp/clinfo-*
# clpeak 1.1.0 RC2 (2019)
# clpeak 1.1.2 (2022)
RUN cd /tmp && \
wget -O /usr/include/CL/cl.hpp https://www.khronos.org/registry/OpenCL/api/2.1/cl.hpp && \
wget https://github.com/krrishnarraj/clpeak/archive/1.1.0.tar.gz && \
wget https://github.com/krrishnarraj/clpeak/archive/1.1.2.tar.gz && \
tar -xvzf *.tar.gz && \
rm -f *.tar.gz && \
cd clpeak-* && \
@@ -146,11 +146,11 @@ RUN cd /tmp && \
RUN cd /tmp && \
git clone https://github.com/inducer/pyopencl.git && \
cd pyopencl && \
git checkout v2022.1 && \
git checkout v2022.2.3 && \
git submodule update --init && \
python3.9 configure.py && \
${PYTHON_EXECUTABLE} configure.py && \
make && \
python3.9 -m pip install --upgrade . && \
${PYTHON_EXECUTABLE} -m pip install --upgrade . && \
cd - && \
rm -rf /tmp/pyopencl
@@ -186,7 +186,7 @@ RUN cd /tmp && \
git clone https://github.com/geggo/gpyfft.git && \
cd gpyfft && \
sed 's#finalize(self, _destroy_plan, self.plan)##' -i gpyfft/gpyfftlib.pyx && \
python3.9 -m pip install . && \
${PYTHON_EXECUTABLE} -m pip install . && \
cd - && \
rm -rf /tmp/gpyfft
@@ -211,7 +211,7 @@ RUN cd /tmp && \
make install && \
cd - && \
rm -rf arb-*
RUN python3.9 -m pip install --upgrade python-flint -vvv
RUN ${PYTHON_EXECUTABLE} -m pip install --upgrade python-flint -vvv
# static fftw + pyfftw (with R2R transforms)
# Weird pyfftw bug : not passing -O2 explicitely during build causes a segfault on import...
@@ -233,12 +233,13 @@ RUN cd /tmp && \
RUN cd /tmp && \
git clone https://github.com/pyFFTW/pyFFTW && \
cd pyFFTW && \
STATIC_FFTW_DIR="${FFTW_ROOT}/lib" CFLAGS="-Wl,-Bsymbolic -fopenmp -I${FFTW_ROOT}/include -O2" python3.9 setup.py build_ext --inplace && \
python3.9 -m pip install --upgrade . && \
STATIC_FFTW_DIR="${FFTW_ROOT}/lib" CFLAGS="-Wl,-Bsymbolic -fopenmp -I${FFTW_ROOT}/include -O2" ${PYTHON_EXECUTABLE} setup.py build_ext --inplace && \
${PYTHON_EXECUTABLE} -m pip install --upgrade . && \
rm -rf /tmp/pyFFTW
RUN python3.9 -m pip install ansicolors --ignore-installed
RUN python3.9 -m pip install numpy==1.21.5
RUN ${PYTHON_EXECUTABLE} -m pip install ansicolors --ignore-installed
RUN ${PYTHON_EXECUTABLE} -m pip install numpy==1.21.5
RUN ${PYTHON_EXECUTABLE} -m pip install sympy==1.10.0
# ensure all libraries are known by the runtime linker
RUN ldconfig
Loading