Skip to content

Commit fe18540

Browse files
committed
Refactor common logic for Kokkos wrapper in CUDA builds
1 parent e49defa commit fe18540

File tree

3 files changed

+27
-18
lines changed

3 files changed

+27
-18
lines changed

envs/eagle.bash

+6-9
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,16 @@ exawind_eagle_common ()
3636

3737
exawind_eagle_gpu ()
3838
{
39-
# Enable CUDA support in OpenMPI
40-
export OMPI_MCA_opal_cuda_support=1
41-
42-
export EXAWIND_CUDA_WRAPPER=${EXAWIND_CUDA_WRAPPER:-${EXAWIND_CUDA_WRAPPER_DEFAULT}}
43-
export CUDA_LAUNCH_BLOCKING=${CUDA_LAUNCH_BLOCKING:-1}
44-
export CUDA_MANAGED_FORCE_DEVICE_ALLOC=${CUDA_MANAGED_FORCE_DEVICE_ALLOC:-1}
4539
export ENABLE_CUDA=${ENABLE_CUDA:-ON}
4640
export KOKKOS_ARCH=${KOKKOS_ARCH:-"'SKX;Volta70'"}
4741
export EXAWIND_CUDA_SM=${EXAWIND_CUDA_SM:-70}
4842

49-
export NVCC_WRAPPER_DEFAULT_COMPILER=${CXX}
50-
export OMPI_CXX=${EXAWIND_CUDA_WRAPPER}
51-
export MPICH_CXX=${EXAWIND_CUDA_WRAPPER}
43+
if [ "${EXAWIND_GPU_KOKKOS_ENV:-ON}" = ON ] ; then
44+
# Set CXX so that NVCC can pick up host compiler
45+
export CXX=$(which g++)
46+
exawind_kokkos_cuda_env
47+
fi
48+
5249
export CXX=$(which mpic++)
5350
export CUDACXX=$(which nvcc)
5451

envs/ornl-summit.bash

+10-9
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,19 @@ exawind_summit_common ()
1717

1818
exawind_summit_gpu ()
1919
{
20+
export KOKKOS_ARCH=${KOKKOS_ARCH:-Volta70}
21+
export EXAWIND_CUDA_SM=${EXAWIND_CUDA_SM:-70}
22+
2023
# Enable CUDA support in OpenMPI
2124
export OMPI_MCA_opal_cuda_support=1
2225

23-
export EXAWIND_CUDA_WRAPPER=${EXAWIND_CUDA_WRAPPER:-${EXAWIND_CUDA_WRAPPER_DEFAULT}}
24-
export CUDA_LAUNCH_BLOCKING=${CUDA_LAUNCH_BLOCKING:-1}
25-
export CUDA_MANAGED_FORCE_DEVICE_ALLOC=${CUDA_MANAGED_FORCE_DEVICE_ALLOC:-1}
26-
export KOKKOS_ARCH=${KOKKOS_ARCH:-Volta70}
27-
export EXAWIND_CUDA_SM=${EXAWIND_CUDA_SM:-70}
26+
if [ "${EXAWIND_GPU_KOKKOS_ENV:-ON}" = ON ] ; then
27+
# Set CXX so that NVCC can pick up host compiler
28+
export CXX=$(which g++)
29+
exawind_kokkos_cuda_env
30+
fi
2831

29-
export NVCC_WRAPPER_DEFAULT_COMPILER=${CXX}
30-
export OMPI_CXX=${EXAWIND_CUDA_WRAPPER}
31-
export MPICH_CXX=${EXAWIND_CUDA_WRAPPER}
32+
# Reset CXX back to mpic++ for builds
3233
export CXX=$(which mpic++)
3334
export CUDACXX=$(which nvcc)
3435

@@ -48,7 +49,7 @@ exawind_env_gcc ()
4849

4950
export CC=$(which mpicc)
5051
export FC=$(which mpifort)
51-
export CXX=$(which g++)
52+
export CXX=$(which mpic++)
5253

5354
export ENABLE_CUDA=${ENABLE_CUDA:-ON}
5455
if [ "$ENABLE_CUDA" == "ON" ]; then

src/environment.bash

+11
Original file line numberDiff line numberDiff line change
@@ -162,3 +162,14 @@ exawind_purge_env ()
162162
unset -f ${exfunc}
163163
done
164164
}
165+
166+
exawind_kokkos_cuda_env ()
167+
{
168+
export EXAWIND_CUDA_WRAPPER=${EXAWIND_CUDA_WRAPPER:-${EXAWIND_CUDA_WRAPPER_DEFAULT}}
169+
export CUDA_LAUNCH_BLOCKING=${CUDA_LAUNCH_BLOCKING:-1}
170+
export CUDA_MANAGED_FORCE_DEVICE_ALLOC=${CUDA_MANAGED_FORCE_DEVICE_ALLOC:-1}
171+
172+
export NVCC_WRAPPER_DEFAULT_COMPILER=${CXX}
173+
export OMPI_CXX=${EXAWIND_CUDA_WRAPPER}
174+
export MPICH_CXX=${EXAWIND_CUDA_WRAPPER}
175+
}

0 commit comments

Comments
 (0)