Skip to content

Enable GPU-to-GPU communication

Vicente Bolea requested to merge vbolea/vtk-m:add-gpu-to-gpu-conn into master

Depends: !3024 (merged)

This MR adds the flag VTKm_ENABLE_GPU_MPI which when enabled, it will use GPU aware MPI.

  • This will only work with GPUs and MPI implementation that supports GPU aware MPI calls.
  • Enabling VTKm_ENABLE_GPU_MP without MPI/GPU support might results in errors when running VTK-m with DIY/MPI.
  • Only the following tests can run with this feature if enabled:
    • UnitTestSerializationDataSet
    • UnitTestSerializationArrayHandle

Options used in crusher:

Followed OLCF docs about GPU aware MPI: https://docs.olcf.ornl.gov/systems/crusher_quick_start_guide.html#gpu-aware-mpi

CMake options:

set(CMAKE_BUILD_TYPE     "debug"                  CACHE STRING "")
set(CMAKE_PREFIX_PATH /gpfs/alpine/csc331/scratch/vbolea/gpu-to-gpu/kokkos_install CACHE FILEPATH "")

#set(CMAKE_C_COMPILER     /opt/rocm-4.5.0/llvm/bin/clang CACHE FILEPATH "")
#set(CMAKE_CXX_COMPILER   /opt/rocm-4.5.0/llvm/bin/clang++ CACHE FILEPATH "")
set(CMAKE_HIP_FLAGS      "-O0 -I/opt/cray/pe/mpich/8.1.14/ofi/crayclang/10.0/include" CACHE STRING "")
set(CMAKE_CXX_FLAGS      "-O0 -I/opt/cray/pe/mpich/8.1.14/ofi/crayclang/10.0/include" CACHE STRING "")

set(VTKm_ENABLE_KOKKOS ON CACHE STRING "")
set(VTKm_ENABLE_MPI ON CACHE STRING "")
set(VTKm_ENABLE_GPU_MPI ON CACHE STRING "")
set(CMAKE_HIP_FLAGS "-O0" CACHE STRING "")

set(Kokkos_CXX_COMPILER /opt/rocm-4.5.0/llvm/bin/clang++ CACHE FILEPATH "")
set(Kokkos_COMPILE_LAUNCHER /opt/rocm-4.5.0/bin/amdclang++ CACHE FILEPATH "")
set(CMAKE_POSITION_INDEPENDENT_CODE ON              CACHE BOOL "")
set(CMAKE_HIP_ARCHITECTURES "gfx90a" CACHE STRING "")

set(CMAKE_EXE_LINKER_FLAGS "-L/opt/cray/pe/mpich/8.1.14/ofi/crayclang/10.0/lib -lmpi -L/opt/cray/pe/mpich/8.1.14/gtl/lib -lmpi_gtl_hsa" CACHE STRING "")

set(MPIEXEC_EXECUTABLE /usr/bin/srun CACHE FILEPATH "")
set(MPIEXEC_PREFLAGS "-ACSC331;-pbatch;-t110;--nice=0;-N;1;--gpus-per-node;1;-c;1" CACHE STRING "")
Edited by Vicente Bolea

Merge request reports