Skip to content

Commit

Permalink
adding docker image for hip+rocm
Browse files Browse the repository at this point in the history
  • Loading branch information
Pengfei Ding committed Nov 29, 2024
1 parent f325168 commit 4131c56
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 0 deletions.
14 changes: 14 additions & 0 deletions scripts/build_scripts/build_images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ NVHPC_VERSION=23.9-devel-cuda12.2-${OS_BASE}
ROOT_VERSION=v6-30-04
FCS_BRANCH=dingpf/packaging


ROOT_DOT_VERSION=${ROOT_VERSION//v/}
ROOT_DOT_VERSION=${ROOT_DOT_VERSION//-/.}
NVHPC_BASE_IMAGE=nvcr.io/nvidia/nvhpc:${NVHPC_VERSION}
CUDA_BASE_IMAGE=docker.io/nvidia/cuda:${CUDA_VERSION}
UBUNTU_BASE_IMAGE=docker.io/library/ubuntu:22.04
ROCM_BASE_IMAGE=rocm/rocm-terminal:6.2.1
#REGISTRY_PROJECT=docker.io/dingpf
REGISTRY_PROJECT=registry.nersc.gov/m2845

Expand Down Expand Up @@ -138,4 +140,16 @@ echo "INFO - $(date) - Building additional FCS images..." | tee -a ${logfile}
build_and_push_fcs_image ${NVHPC_BASE_IMAGE} fcs-stdpar-cuda
build_and_push_fcs_image ${CUDA_BASE_IMAGE} fcs-hip-cuda

echo "INFO - $(date) - Building ROCm ROOT image..." | tee -a ${logfile}
rocm_img_tag=$(basename ${ROCM_BASE_IMAGE})
rocm_img_tag=${rocm_img_tag//:/}
root_rocm_image_tag=${REGISTRY_PROJECT}/root:${ROOT_DOT_VERSION}-${rocm_img_tag}
$CONTAINER_CMD build -f root-rocm.Dockerfile \
--build-arg=BASE=${ROCM_BASE_IMAGE} \
--build-arg=ROOT_VERSION=${ROOT_VERSION} \
-t ${root_rocm_image_tag} . | tee -a ${logfile}

echo "INFO - $(date) - Building ROCm HIP FCS image..." | tee -a ${logfile}
build_and_push_fcs_image ${ROCM_BASE_IMAGE} fcs-hip-rocm

echo "INFO - $(date) - Script completed successfully!" | tee -a ${logfile}
50 changes: 50 additions & 0 deletions scripts/build_scripts/fcs-hip-rocm.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
ARG BASE=registry.nersc.gov/m2845/root:6.30.04-rocm-terminal6.2.1
ARG REFRESHED_AT=2024-11-28
FROM $BASE

USER root

ARG DEBIAN_FRONTEND noninteractive
RUN \
DEBIAN_FRONTEND=${DEBIAN_FRONTEND} \
apt-get update && \
DEBIAN_FRONTEND=${DEBIAN_FRONTEND} \
apt-get upgrade --yes && \
apt-get install --yes \
wget && \
apt-get clean all

RUN \
wget https://github.com/Kitware/CMake/releases/download/v3.31.1/cmake-3.31.1-linux-x86_64.sh &&\
chmod +x cmake-3.31.1-linux-x86_64.sh && \
mkdir -p /opt/cmake && \
./cmake-3.31.1-linux-x86_64.sh --prefix=/opt/cmake --skip-license --exclude-subdir && \
rm -f ./cmake-3.31.1-linux-x86_64.sh

ENV PATH=/opt/cmake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/rocm/bin

ARG WORK_DIR=/hep-mini-apps
ARG FCS_SRC_DIR=$WORK_DIR/FCS-GPU/source
ARG FCS_BUILD_DIR=$WORK_DIR/FCS-GPU/build
ARG FCS_INSTALL_DIR=$WORK_DIR/FCS-GPU/install
ARG FCS_BRANCH=dingpf/packaging
ARG ROOT_INSTALL_DIR=$WORK_DIR/root/install

RUN \
cd $ROOT_INSTALL_DIR/bin && \
. $ROOT_INSTALL_DIR/bin/thisroot.sh && \
mkdir -p $FCS_BUILD_DIR && \
mkdir -p $FCS_INSTALL_DIR && \
git clone https://github.com/hep-cce/FCS-GPU.git -b ${FCS_BRANCH} $FCS_SRC_DIR && \
cd $FCS_BUILD_DIR && \
cmake -DCMAKE_INSTALL_PREFIX=$FCS_INSTALL_DIR \
-DUSE_HIP=on \
-DCMAKE_CXX_COMPILER=hipcc \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_EXTENSIONS=Off \
-DENABLE_GPU=on \
$FCS_SRC_DIR/FastCaloSimAnalyzer && \
make -j 128 install && \
cd $WORK_DIR && \
rm -rf $FCS_BUILD_DIR

45 changes: 45 additions & 0 deletions scripts/build_scripts/root-rocm.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
ARG BASE=rocm/rocm-terminal:6.2.1
ARG REFRESHED_AT=2024-11-28
FROM $BASE

ARG DEBIAN_FRONTEND noninteractive

USER root
RUN \
DEBIAN_FRONTEND=${DEBIAN_FRONTEND} \
apt-get update && \
DEBIAN_FRONTEND=${DEBIAN_FRONTEND} \
apt-get upgrade --yes && \
apt-get install --yes \
hiprand \
rocrand && \
apt-get clean all

ARG ROOT_VERSION=v6-30-04
ARG WORK_DIR=/hep-mini-apps
ARG ROOT_SRC_DIR=$WORK_DIR/root/source
ARG ROOT_INSTALL_DIR=$WORK_DIR/root/install
ARG ROOT_BUILD_DIR=$WORK_DIR/build
RUN \
mkdir -p $ROOT_BUILD_DIR && \
git clone --branch $ROOT_VERSION --depth=1 https://github.com/root-project/root.git $ROOT_SRC_DIR && \
mkdir -p $ROOT_INSTALL_DIR && \
cd $ROOT_BUILD_DIR && \
cmake -DCMAKE_INSTALL_PREFIX=$ROOT_INSTALL_DIR \
-DCMAKE_CXX_FLAGS=-std=c++17 \
-Dx11=OFF -Dtbb=OFF \
-Dopengl=OFF -Dgviz=OFF \
-Dimt=OFF -Ddavix=OFF \
-Dvdt=OFF -Dxrootd=OFF \
-Dwebgui=OFF -Dsqlite=OFF \
-Dssl=OFF -Dmysql=OFF \
-Doracle=OFF -Dpgsql=OFF \
-Ddavix=OFF -Dgfal=OFF \
-Dimt=OFF \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_EXTENSIONS=Off \
$ROOT_SRC_DIR && \
make -j 64 install && \
rm -rf $ROOT_BUILD_DIR

CMD ["/usr/bin/bash" "-l"]

0 comments on commit 4131c56

Please sign in to comment.