diff --git a/tools/toolchain/Dockerfile.hip_rocm b/tools/toolchain/Dockerfile.hip_rocm new file mode 100644 index 0000000000..2bc00b068c --- /dev/null +++ b/tools/toolchain/Dockerfile.hip_rocm @@ -0,0 +1,81 @@ +FROM rocm/dev-ubuntu-20.04:4.2 + +# author: Ole Schuett + +# Installs toolchain with HIP and ROCm. + +# Install some Ubuntu packages. +RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ + hipblas \ + gfortran \ + mpich \ + libmpich-dev \ + && rm -rf /var/lib/apt/lists/* + +# Setup HIP environment. +ENV ROCM_PATH /opt/rocm +ENV PATH ${PATH}:${ROCM_PATH}/hip/bin +ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${ROCM_PATH}/hip/lib:${ROCM_PATH}/hipblas/lib +ENV HIP_PLATFORM amd +RUN hipconfig + +# Install Ubuntu packages required by the toolchain. +COPY ./install_requirements_ubuntu.sh . +RUN ./install_requirements_ubuntu.sh + +# Build toolchain. +WORKDIR /opt/cp2k-toolchain +RUN mkdir scripts +COPY ./scripts/VERSION \ + ./scripts/parse_if.py \ + ./scripts/tool_kit.sh \ + ./scripts/common_vars.sh \ + ./scripts/signal_trap.sh \ + ./scripts/get_openblas_arch.sh \ + ./scripts/ + +# Dry-run leaves behind config files for the followup install scripts. +# This breaks up the lengthy installation into smaller docker build steps. +ARG GPU_VERSION +ARG LIBINT_LMAX=5 +COPY ./install_cp2k_toolchain.sh . +RUN ./install_cp2k_toolchain.sh \ + --mpi-mode=mpich \ + --libint-lmax=${LIBINT_LMAX} \ + --enable-hip=yes \ + --gpu-ver=${GPU_VERSION} \ + --dry-run + +COPY ./scripts/stage0/ ./scripts/stage0/ +RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build + +COPY ./scripts/stage1/ ./scripts/stage1/ +RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build + +COPY ./scripts/stage2/ ./scripts/stage2/ +RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build + +COPY ./scripts/stage3/ ./scripts/stage3/ +RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build + +COPY ./scripts/stage4/ ./scripts/stage4/ +RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build + +COPY ./scripts/stage5/ ./scripts/stage5/ +RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build + +COPY ./scripts/stage6/ ./scripts/stage6/ +RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build + +COPY ./scripts/stage7/ ./scripts/stage7/ +RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build + +COPY ./scripts/stage8/ ./scripts/stage8/ +RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build + +COPY ./scripts/arch_base.tmpl \ + ./scripts/generate_arch_files.sh \ + ./scripts/ +RUN ./scripts/generate_arch_files.sh && rm -rf ./build + +#EOF