diff --git a/docker/Dockerfile.x86 b/docker/Dockerfile.x86 new file mode 100644 index 00000000..edb97d5b --- /dev/null +++ b/docker/Dockerfile.x86 @@ -0,0 +1,23 @@ + +# base image +FROM ubuntu:22.04 + +# update and install basic deps +RUN apt update && apt install -y wget gpg sudo + +# install intel-mkl and fix soft links +RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ +| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null +RUN echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list +RUN apt update && apt install -y intel-oneapi-mkl intel-oneapi-mkl-devel +RUN [ ! -f /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_def.so ] && ln -s /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_def.so.2 /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_def.so +RUN [ ! -f /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_avx2.so ] && ln -s /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_avx2.so.2 /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_avx2.so +RUN [ ! -f /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_mc3.so ] && ln -s /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_mc3.so.2 /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_mc3.so + +# install build tools +RUN apt install -y git g++ cmake ninja-build gdb ccache build-essential lcov gfortran +RUN apt install -y clang-15 clangd-15 clang-format-15 python3-pip +RUN ln -s /usr/bin/clang-format-15 /usr/bin/clang-format + +# install vsag deps +RUN apt install -y python3-dev libomp-15-dev diff --git a/extern/mkl/mkl.cmake b/extern/mkl/mkl.cmake index 123a0330..93e804ad 100644 --- a/extern/mkl/mkl.cmake +++ b/extern/mkl/mkl.cmake @@ -1,7 +1,7 @@ # find_package(MKL CONFIG REQUIRED) if (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64" AND ENABLE_INTEL_MKL) - set(POSSIBLE_OMP_PATHS "/opt/intel/oneapi/compiler/2024.2/lib/libiomp5.so;/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin/libiomp5.so;/usr/lib/x86_64-linux-gnu/libiomp5.so;/opt/intel/lib/intel64_lin/libiomp5.so;/opt/intel/compilers_and_libraries_2020.4.304/linux/compiler/lib/intel64_lin/libiomp5.so") + set(POSSIBLE_OMP_PATHS "/opt/intel/oneapi/compiler/2024.2/lib/libiomp5.so;/opt/intel/oneapi/compiler/2024.2/lib/libiomp5.so;/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin/libiomp5.so;/usr/lib/x86_64-linux-gnu/libiomp5.so;/opt/intel/lib/intel64_lin/libiomp5.so;/opt/intel/compilers_and_libraries_2020.4.304/linux/compiler/lib/intel64_lin/libiomp5.so") foreach(POSSIBLE_OMP_PATH ${POSSIBLE_OMP_PATHS}) if (EXISTS ${POSSIBLE_OMP_PATH}) get_filename_component(OMP_PATH ${POSSIBLE_OMP_PATH} DIRECTORY)