2021-12-08 19:13:59 +00:00
|
|
|
# Building VTK-m on HPC systems #
|
|
|
|
|
|
|
|
Instructions for building VTK-m on various HPC systems is included below.
|
|
|
|
|
|
|
|
|
|
|
|
## Spock ##
|
|
|
|
Spock is a system at the OLCF that is an early access system for Frontier.
|
|
|
|
As the software stack on Spock is frequently updated, these directions may be updated from time to time.
|
|
|
|
|
2021-12-08 19:18:08 +00:00
|
|
|
Building VTK-m with HIP support for the AMD GPUs with the correct versions of Rocm, Kokkos and a patch to CMake can be done with the following script.
|
2021-12-08 19:13:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -x
|
|
|
|
set -e
|
|
|
|
|
|
|
|
module load rocm/4.3.0
|
|
|
|
module load cmake
|
|
|
|
module load gcc
|
|
|
|
|
|
|
|
|
|
|
|
hipcc_path=$(which hipcc)
|
|
|
|
rocm_path=$(dirname $hipcc_path)/../
|
|
|
|
|
|
|
|
home_dir=$(pwd)
|
|
|
|
cmake_src_dir=${home_dir}/cmake/src
|
|
|
|
cmake_build_dir=${home_dir}/cmake/build
|
|
|
|
|
|
|
|
if true; then
|
|
|
|
git clone -b add_hip_language https://gitlab.kitware.com/cjy7117/cmake.git ${cmake_src_dir}
|
|
|
|
rm -rf ${cmake_build_dir}
|
|
|
|
cmake -S ${cmake_src_dir} -B ${cmake_build_dir} \
|
|
|
|
-DCMAKE_C_COMPILER=gcc \
|
|
|
|
-DCMAKE_CXX_COMPILER=g++
|
|
|
|
cmake --build ${cmake_build_dir} -j10
|
|
|
|
fi
|
|
|
|
|
|
|
|
kokkos_src_dir=${home_dir}/kokkos/src
|
|
|
|
kokkos_build_dir=${home_dir}/kokkos/build
|
|
|
|
kokkos_install_dir=${home_dir}/kokkos/install
|
|
|
|
|
|
|
|
if true; then
|
|
|
|
rm -rf ${kokkos_src_dir}
|
|
|
|
git clone -b 3.4.01 https://github.com/kokkos/kokkos.git ${kokkos_src_dir}
|
|
|
|
rm -rf ${kokkos_build_dir}
|
|
|
|
${cmake_build_dir}/bin/cmake -S ${kokkos_src_dir} -B ${kokkos_build_dir} \
|
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
|
-DBUILD_SHARED_LIBS=ON\
|
|
|
|
-DKokkos_ARCH_VEGA906=ON \
|
|
|
|
-DCMAKE_CXX_COMPILER=${rocm_path}/bin/hipcc \
|
|
|
|
-DKokkos_ENABLE_HIP=ON \
|
|
|
|
-DKokkos_ENABLE_SERIAL=ON \
|
|
|
|
-DKokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE=OFF \
|
|
|
|
-DCMAKE_INSTALL_PREFIX=${kokkos_install_dir} \
|
|
|
|
-DCMAKE_CXX_FLAGS="--amdgpu-target=gfx908"
|
|
|
|
${cmake_build_dir}/bin/cmake --build ${kokkos_build_dir} -j10
|
|
|
|
${cmake_build_dir}/bin/cmake --install ${kokkos_build_dir}
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
benchmark_src_dir=${home_dir}/benchmark/src
|
|
|
|
benchmark_build_dir=${home_dir}/benchmark/build
|
|
|
|
benchmark_install_dir=${home_dir}/benchmark/install
|
|
|
|
|
|
|
|
# build google benchmark only if you build vtk-m with benchmark ON
|
|
|
|
if true; then
|
|
|
|
curl --insecure -OL https://github.com/google/benchmark/archive/v1.5.2.tar.gz
|
|
|
|
mkdir -p benchmark && tar xf v1.5.2.tar.gz && mv benchmark-1.5.2 ${benchmark_src_dir}
|
|
|
|
rm -rf ${benchmark_build_dir}
|
|
|
|
${cmake_build_dir}/bin/cmake -S ${benchmark_src_dir} -B ${benchmark_build_dir}\
|
|
|
|
-DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON\
|
|
|
|
-DCMAKE_C_COMPILER=gcc \
|
|
|
|
-DCMAKE_CXX_COMPILER=g++
|
|
|
|
${cmake_build_dir}/bin/cmake --build ${benchmark_build_dir} -j10
|
|
|
|
${cmake_build_dir}/bin/cmake --install ${benchmark_build_dir} --prefix ${benchmark_install_dir}
|
|
|
|
fi
|
|
|
|
|
|
|
|
vtkm_src_dir=${home_dir}/vtkm/src
|
|
|
|
vtkm_build_dir=${home_dir}/vtkm/build
|
|
|
|
vtkm_install_dir=${home_dir}/vtkm/install
|
|
|
|
|
|
|
|
if true; then
|
|
|
|
git clone -b master https://gitlab.kitware.com/vtk/vtk-m.git ${vtkm_src_dir}
|
|
|
|
cd ${vtkm_src_dir}/data && git lfs pull && cd ../../../ && pwd
|
|
|
|
rm -rf ${vtkm_build_dir}
|
|
|
|
${cmake_build_dir}/bin/cmake -S ${vtkm_src_dir} -B ${vtkm_build_dir} \
|
|
|
|
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF\
|
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
|
-DBUILD_SHARED_LIBS=ON\
|
|
|
|
-DVTKm_ENABLE_KOKKOS=ON \
|
|
|
|
-DVTKm_ENABLE_MPI=OFF\
|
|
|
|
-DVTKm_ENABLE_RENDERING=ON \
|
|
|
|
-DVTKm_ENABLE_TESTING=OFF \
|
|
|
|
-DVTKm_ENABLE_BENCHMARKS=ON\
|
|
|
|
-DCMAKE_HIP_ARCHITECTURES="gfx908" \
|
|
|
|
-DCMAKE_PREFIX_PATH="${kokkos_install_dir};${benchmark_install_dir}" \
|
|
|
|
-DCMAKE_INSTALL_PREFIX=${vtkm_install_dir} \
|
|
|
|
-DCMAKE_HIP_COMPILER_TOOLKIT_ROOT=${rocm_path}\
|
|
|
|
-DCMAKE_CXX_COMPILER=${rocm_path}/llvm/bin/clang++ \
|
|
|
|
-DCMAKE_C_COMPILER=${rocm_path}/llvm/bin/clang
|
|
|
|
|
|
|
|
${cmake_build_dir}/bin/cmake --build ${vtkm_build_dir} -j10
|
|
|
|
${cmake_build_dir}/bin/cmake --install ${vtkm_build_dir}
|
|
|
|
fi
|
|
|
|
```
|