Skip to content
Snippets Groups Projects
Commit acc456c1 authored by Jean-Baptiste Keck's avatar Jean-Baptiste Keck
Browse files

fix docker image

parent 96abbb53
No related branches found
No related tags found
1 merge request!16MPI operators
Pipeline #41862 canceled
......@@ -12,7 +12,7 @@ RUN apt-get update
RUN apt-get full-upgrade -y
# get build tools and required libraries
RUN apt-get install -y expat unzip xz-utils automake libtool pkg-config cmake git vim ssh clang gcc gfortran cython swig lsb-core cpio libnuma1 libpciaccess0 libreadline-dev libboost-all-dev libblas-dev liblapack-dev libcgal-dev libatlas-base-dev libopenblas-dev libgfortran3 libgcc1 libopenmpi-dev libhdf5-openmpi-dev libfftw3-dev libfftw3-mpi-dev libgmp-dev libmpfr-dev libmpc-dev libsparsehash-dev libcairo-dev libcairomm-1.0-dev python python-dev python-pip python-tk opencl-headers ocl-icd-libopencl1 clinfo
RUN apt-get install -y expat unzip xz-utils automake libtool pkg-config cmake git vim ssh clang gcc gfortran cython swig lsb-core cpio libnuma1 libpciaccess0 libreadline-dev libboost-all-dev libblas-dev liblapack-dev libcgal-dev libatlas-base-dev libopenblas-dev libgfortran3 libgcc1 libopenmpi-dev libhdf5-openmpi-dev libfftw3-dev libfftw3-mpi-dev libgmp-dev libmpfr-dev libmpc-dev libsparsehash-dev libcairo-dev libcairomm-1.0-dev libflint-dev python python-dev python-pip python-tk opencl-headers
# python packages using pip
RUN pip install --upgrade pip
......@@ -43,23 +43,61 @@ RUN cd /tmp && \
cd - && \
rm -Rf /tmp/patchelf
# Intel OpenCl
# Intel OpenCl runtime
#RUN cd /tmp \
#&& mkdir intel \
#&& cd intel \
#&& wget http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/15532/l_opencl_p_18.1.0.015.tgz \
#&& tar -xvzf l_opencl_p_18.1.0.015.tgz \
#&& cd l_opencl_p_18.1.0.015 \
#&& sed -i "s/ACCEPT_EULA=decline/ACCEPT_EULA=accept/g" "silent.cfg" \
#&& ./install.sh --silent ./silent.cfg \
#&& cd /tmp \
#&& rm -Rf /tmp/intel
ENV LD_LIBRARY_PATH "/opt/intel/oclcpuexp/x64:${LD_LIBRARY_PATH}"
RUN mkdir -p /opt/intel/oclcpuexp && \
wget https://github.com/intel/llvm/releases/download/2020-02/oclcpuexp-2020.10.3.0.04_rel.tar.gz && \
tar -xvzf oclcpuexp-2020.10.3.0.04_rel.tar.gz && \
mv x64/ /opt/intel/oclcpuexp/ && \
mv clbltfnshared.rtl /opt/intel/oclcpuexp/ && \
rm -rf x64 *.rtl oclcpuexp* && \
wget https://github.com/oneapi-src/oneTBB/releases/download/v2020.2/tbb-2020.2-lin.tgz && \
tar -xvzf tbb-2020.2-lin.tgz && \
mv tbb/lib/intel64/gcc4.8/* /opt/intel/oclcpuexp/x64/ && \
rm -f /usr/local/lib/libOpenCL.so && \
rm -f /usr/local/lib/libOpenCL.so && \
rm -f /usr/local/lib/libOpenCL.so.1 && \
rm -f /usr/local/lib/libOpenCL.so.2.0 && \
ln -s /opt/intel/oclcpuexp/x64/libOpenCL.so /usr/local/lib/libOpenCL.so && \
ln -s /opt/intel/oclcpuexp/x64/libOpenCL.so.1 /usr/local/lib/libOpenCL.so.1 && \
ln -s /opt/intel/oclcpuexp/x64/libOpenCL.so.2.0 /usr/local/lib/libOpenCL.so.2.0 && \
mkdir -p /etc/OpenCL/vendors && \
echo /opt/intel/oclcpuexp/x64/libintelocl.so > /etc/OpenCL/vendors/intel_expcpu.icd && \
rm -rf /tmp/tbb*
# clinfo 2.2.18 (2018)
RUN cd /tmp && \
mkdir intel && \
cd intel && \
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/12556/opencl_runtime_16.1.2_x64_rh_6.4.0.37.tgz && \
tar -xvzf opencl_runtime_16.1.2_x64_rh_6.4.0.37.tgz && \
cd opencl_runtime_16.1.2_x64_rh_6.4.0.37 && \
ls -la && \
sed -i "s/ACCEPT_EULA=decline/ACCEPT_EULA=accept/g" "silent.cfg" && \
./install.sh --silent ./silent.cfg && \
cd /tmp && \
rm -Rf /tmp/intel
https://software.intel.com/en-us/articles/opencl-runtime-release-notes/#181
wget https://github.com/Oblomov/clinfo/archive/2.2.18.04.06.tar.gz && \
tar -xvzf *.tar.gz && \
rm -f *.tar.gz && \
cd clinfo-* && \
make && \
mv clinfo /usr/local/bin && \
rm -rf /tmp/clinfo-*
# Fix OpenCl ICD
RUN ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/x86_64-linux-gnu/libOpenCL.so
RUN ldconfig
# clpeak 1.1.0 RC2 (2019)
RUN cd /tmp && \
wget https://github.com/krrishnarraj/clpeak/archive/1.1.0-rc2.tar.gz && \
tar -xvzf *.tar.gz && \
rm -f *.tar.gz && \
cd clpeak-* && \
mkdir build && \
cd build/ && \
cmake .. && \
make && \
mv clpeak /usr/local/bin && \
rm -rf /tmp/clpeak-*
# pyopencl
RUN cd /tmp && \
......@@ -85,18 +123,6 @@ RUN cd /tmp && \
cd - && \
rm -Rf /tmp/Oclgrind
# clpeak
RUN cd /tmp && \
git clone https://github.com/krrishnarraj/clpeak && \
cd clpeak/ && \
mkdir build && \
cd build/ && \
cmake .. && \
make && \
mv clpeak /usr/local/bin/ && \
cd - && \
rm -Rf /tmp/clpeak
# clFFT
RUN cd /tmp && \
ln -s /usr/local/lib /usr/local/lib64 && \
......@@ -151,6 +177,23 @@ RUN cd /tmp && \
cd /tmp && \
rm -Rf /tmp/memory-tempfile
# python flint
RUN cd /tmp \
&& wget https://github.com/fredrik-johansson/arb/archive/2.16.0.tar.gz \
&& tar -xvzf 2.16.0.tar.gz \
&& cd arb-2.16.0 \
&& ./configure \
&& make -j$(nproc) \
&& make install \
&& cd - \
&& rm -rf arb-2.16.0
RUN cd /tmp \
&& git clone https://github.com/fredrik-johansson/python-flint \
&& cd python-flint \
&& pip install . \
&& cd - \
&& rm -rf python-flint
# ensure all libraries are known by the runtime linker
RUN ldconfig
......
File mode changed from 100644 to 100755
#!/usr/bin/env bash
set -euf -o pipefail
# /hysop should be mounted as read only by run_tests_in_docker.sh
if [[ ! -d '/hysop' ]]; then
echo "This script should not be called from host, but from within a docker image."
echo " => /hysop has not been mounted (see hysop/ci/utils/run_tests_in_docker.sh)."
exit 1
fi
CC=gcc-7
CXX=g++-7
FC=gfortran-7
HYSOP_DIR='/tmp/hysop'
HYSOP_BUILD_DIR="${HYSOP_DIR}/build"
HYSOP_INSTALL_DIR='/opt/hysop'
cp -r /hysop "${HYSOP_DIR}"
rm -rf "${HYSOP_BUILD_DIR}"
SCRIPT_DIR="${HYSOP_DIR}/ci/scripts"
cd "${HYSOP_DIR}"
${SCRIPT_DIR}/version.sh
${SCRIPT_DIR}/config.sh "${HYSOP_BUILD_DIR}" "${HYSOP_INSTALL_DIR}" "${CC}" "${CXX}" "${FC}"
${SCRIPT_DIR}/build.sh "${HYSOP_BUILD_DIR}" "${CC}" "${CXX}" "${FC}"
${SCRIPT_DIR}/install.sh "${HYSOP_BUILD_DIR}" "${HYSOP_INSTALL_DIR}"
${SCRIPT_DIR}/test.sh "${HYSOP_INSTALL_DIR}" "${HYSOP_DIR}/hysop" "/cache"
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
#!/usr/bin/env bash
set -euf -o pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
NTHREADS="$(python -c 'import psutil; print(psutil.cpu_count(logical=False))')"
docker build --rm=true --build-arg "NTHREADS=$NTHREADS" "$@" -t 'keckj/hysop:bionic' -f "${SCRIPT_DIR}/../docker_images/ubuntu/bionic/Dockerfile" "${SCRIPT_DIR}/.."
#!/usr/bin/env bash
set -euf -o pipefail
docker logout
docker pull keckj/hysop:bionic
#!/usr/bin/env bash
set -euf -o pipefail
docker login
docker push keckj/hysop:bionic
docker logout
#!/usr/bin/env bash
set -feu -o pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
DOCKER_IMG='keckj/hysop:bionic'
CONTAINER_ID='hysop_build_and_test'
HYSOP_CACHE_DIR="${HOME}/.cache/hysop"
if [[ ! -d "${HYSOP_CACHE_DIR}" ]]; then
mkdir -p "${HYSOP_CACHE_DIR}"
fi
function remove_img() {
docker stop "${CONTAINER_ID}" || true
docker rm "${CONTAINER_ID}" || true
}
trap remove_img INT TERM EXIT KILL
remove_img
docker logout
docker pull "${DOCKER_IMG}"
docker create -v "${SCRIPT_DIR}/../..:/hysop:ro" -v "${HYSOP_CACHE_DIR}:/cache:ro" --name="${CONTAINER_ID}" -it "${DOCKER_IMG}"
docker start "${CONTAINER_ID}"
docker exec "${CONTAINER_ID}" /hysop/ci/scripts/build_and_test.sh
#!/usr/bin/env bash
set -euf -o pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
docker run -it -v "${SCRIPT_DIR}/../..:/hysop:ro" keckj/hysop:bionic
......@@ -566,13 +566,14 @@ Dumped OpenCL Kernel '{}'
if not os.path.exists(dump_folder) and (main_rank == 0):
os.makedirs(dump_folder)
if DEBUG:
if DEBUG and True:
# dump kernel source while in debug mode
dump_file=dump_folder+'/rk{}_{}_dump.cl'.format(
main_rank, kernel_name)
print 'Dumping kernel src at \'{}\'.'.format(dump_file)
with open(dump_file, 'w+') as f:
f.write(gpu_src)
build_opts += ['-g', '-s {}'.format(dump_file)]
s_build_opts = ' '.join(build_opts)
if VERBOSE:
......
ci/utils/run_ci.sh
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment