Skip to content

Commit

Permalink
Scripts for building ADIOS2 with Kokkos support
Browse files Browse the repository at this point in the history
  • Loading branch information
anagainaru committed Apr 7, 2023
1 parent fdac541 commit 78773b2
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 0 deletions.
60 changes: 60 additions & 0 deletions scripts/build_scripts/build-adios2-kokkos-crusher.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/bin/bash

set -e
set -x

module load rocm/5.4.0
module load gcc/11.2.0
module load cmake/3.23.2
module load craype-accel-amd-gfx90a

######## User Configurations ########
Kokkos_HOME=$HOME/kokkos/kokkos
ADIOS2_HOME=.
BUILD_DIR=${ADIOS2_HOME}/build-kokkos-crusher
INSTALL_DIR=${ADIOS2_HOME}/install-kokkos-crusher

num_build_procs=4

######## Kokkos ########
mkdir -p ${BUILD_DIR}/kokkos

EXTRA_ARGS=("$@")
ARGS=(
-D CMAKE_BUILD_TYPE=RelWithDebInfo
-D CMAKE_INSTALL_PREFIX=${INSTALL_DIR}
-D CMAKE_CXX_COMPILER=hipcc

-D Kokkos_ENABLE_SERIAL=ON
-D Kokkos_ARCH_ZEN3=ON
-D Kokkos_ENABLE_HIP=ON
-D Kokkos_ARCH_VEGA90A=ON

-D CMAKE_CXX_STANDARD=17
-D CMAKE_CXX_EXTENSIONS=OFF
-D CMAKE_POSITION_INDEPENDENT_CODE=TRUE
-D BUILD_SHARED_LIBS=ON
)
cmake "${ARGS[@]}" -S ${Kokkos_HOME} -B ${BUILD_DIR}/kokkos
cmake --build ${BUILD_DIR}/kokkos -j${num_build_procs}
cmake --install ${BUILD_DIR}/kokkos

######## ADIOS2 ########
mkdir -p ${BUILD_DIR}/adios2

ARGS_ADIOS=(
-D CMAKE_INSTALL_PREFIX=${INSTALL_DIR}
-D BUILD_TESTING=OFF
-D ADIOS2_BUILD_EXAMPLES=OFF
-D CMAKE_CXX_COMPILER=hipcc
-D CMAKE_C_COMPILER=gcc

-D ADIOS2_USE_Kokkos=ON
-D Kokkos_ROOT=${INSTALL_DIR}

-D CMAKE_POSITION_INDEPENDENT_CODE=TRUE
-D BUILD_SHARED_LIBS=ON
)
cmake "${ARGS_ADIOS[@]}" -S ${ADIOS2_HOME} -B ${BUILD_DIR}/adios2
cmake --build ${BUILD_DIR}/adios2 -j${num_build_procs}
cmake --install ${BUILD_DIR}/adios2
62 changes: 62 additions & 0 deletions scripts/build_scripts/build-adios2-kokkos-perlmutter.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash

module load cudatoolkit/11.7
module load gcc/11.2.0
module load cmake/3.24.3
module refresh

######## User Configurations ########
Kokkos_HOME=$HOME/kokkos/3.7/kokkos-3.7.01
ADIOS2_HOME=`pwd`
BUILD_DIR=${ADIOS2_HOME}/build-kokkos-summit
INSTALL_DIR=${ADIOS2_HOME}/install-kokkos-summit

num_build_procs=4

######## Kokkos ########
mkdir -p ${BUILD_DIR}/kokkos
rm -f ${BUILD_DIR}/kokkos/CMakeCache.txt
rm -rf ${BUILD_DIR}/kokkos/CMakeFiles

ARGS=(
-D CMAKE_BUILD_TYPE=RelWithDebInfo
-D CMAKE_INSTALL_PREFIX=${INSTALL_DIR}
-D CMAKE_CXX_COMPILER=${Kokkos_HOME}/bin/nvcc_wrapper

-D Kokkos_ENABLE_SERIAL=ON
-D Kokkos_ARCH_ZEN3=ON
-D Kokkos_ENABLE_CUDA=ON
-D Kokkos_ENABLE_CUDA_LAMBDA=ON # from Kokkos 4.0 this is not needed
-D Kokkos_ARCH_AMPERE80=ON

-D CMAKE_CXX_STANDARD=17
-D CMAKE_CXX_EXTENSIONS=OFF
-D CMAKE_POSITION_INDEPENDENT_CODE=TRUE
-D BUILD_SHARED_LIBS=ON
)
cmake "${ARGS[@]}" -S ${Kokkos_HOME} -B ${BUILD_DIR}/kokkos
cmake --build ${BUILD_DIR}/kokkos -j${num_build_procs}
cmake --install ${BUILD_DIR}/kokkos

######## ADIOS2 ########
mkdir -p ${BUILD_DIR}/adios2
rm -f ${BUILD_DIR}/adios2/CMakeCache.txt
rm -rf ${BUILD_DIR}/adios2/CMakeFiles

ARGS_ADIOS=(
-D CMAKE_INSTALL_PREFIX=${INSTALL_DIR}
-D BUILD_TESTING=OFF
-D ADIOS2_BUILD_EXAMPLES=OFF
-D CMAKE_CXX_COMPILER=g++
-D CMAKE_C_COMPILER=gcc

-D ADIOS2_USE_Kokkos=ON
-D Kokkos_ROOT=${INSTALL_DIR}

-D CMAKE_POSITION_INDEPENDENT_CODE=TRUE
-D BUILD_SHARED_LIBS=ON
-D ADIOS2_USE_Fortran=OFF
)
cmake "${ARGS_ADIOS[@]}" -S ${ADIOS2_HOME} -B ${BUILD_DIR}/adios2
cmake --build ${BUILD_DIR}/adios2 -j${num_build_procs}
cmake --install ${BUILD_DIR}/adios2
62 changes: 62 additions & 0 deletions scripts/build_scripts/build-adios2-kokkos-summit.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash

module load gcc/10.2
module load cuda/11.5
module load cmake/3.23
module refresh

######## User Configurations ########
Kokkos_HOME=$HOME/kokkos/3.7/kokkos-3.7.01
ADIOS2_HOME=`pwd`
BUILD_DIR=${ADIOS2_HOME}/build-kokkos-summit
INSTALL_DIR=${ADIOS2_HOME}/install-kokkos-summit

num_build_procs=4

######## Kokkos ########
mkdir -p ${BUILD_DIR}/kokkos
rm -f ${BUILD_DIR}/kokkos/CMakeCache.txt
rm -rf ${BUILD_DIR}/kokkos/CMakeFiles

EXTRA_ARGS=("$@")
ARGS=(
-D CMAKE_BUILD_TYPE=RelWithDebInfo
-D CMAKE_INSTALL_PREFIX=${INSTALL_DIR}
-D CMAKE_CXX_COMPILER=${Kokkos_HOME}/bin/nvcc_wrapper

-D Kokkos_ENABLE_SERIAL=ON
-D Kokkos_ARCH_POWER9=ON
-D Kokkos_ENABLE_CUDA=ON
-D Kokkos_ENABLE_CUDA_LAMBDA=ON # from Kokkos 4.0 this is not needed
-D Kokkos_ARCH_VOLTA70=ON

-D CMAKE_CXX_STANDARD=17
-D CMAKE_CXX_EXTENSIONS=OFF
-D CMAKE_POSITION_INDEPENDENT_CODE=TRUE
-D BUILD_SHARED_LIBS=ON
)
cmake "${ARGS[@]}" -S ${Kokkos_HOME} -B ${BUILD_DIR}/kokkos
cmake --build ${BUILD_DIR}/kokkos -j${num_build_procs}
cmake --install ${BUILD_DIR}/kokkos

######## ADIOS2 ########
mkdir -p ${BUILD_DIR}/adios2
rm -f ${BUILD_DIR}/adios2/CMakeCache.txt
rm -rf ${BUILD_DIR}/adios2/CMakeFiles

ARGS_ADIOS=(
-D CMAKE_INSTALL_PREFIX=${INSTALL_DIR}
-D BUILD_TESTING=OFF
-D ADIOS2_BUILD_EXAMPLES=OFF
-D CMAKE_CXX_COMPILER=g++
-D CMAKE_C_COMPILER=gcc

-D ADIOS2_USE_Kokkos=ON
-D Kokkos_ROOT=${INSTALL_DIR}

-D CMAKE_POSITION_INDEPENDENT_CODE=TRUE
-D BUILD_SHARED_LIBS=ON
)
cmake "${ARGS_ADIOS[@]}" -S ${ADIOS2_HOME} -B ${BUILD_DIR}/adios2
cmake --build ${BUILD_DIR}/adios2 -j${num_build_procs}
cmake --install ${BUILD_DIR}/adios2

0 comments on commit 78773b2

Please sign in to comment.