Skip to content

Commit

Permalink
Build alpaka code in GPU-only mode
Browse files Browse the repository at this point in the history
Build alpaka device code for the CUDA and ROCm back-ends in "GPU only" mode.
In this mode, functions marked as ALPAKA_FN_ACC are marked as __device__
functions, and are compiled only for the corresponding GPU device back-ends.

Currently, functions marked as ALPAKA_FN_ACC are marked as __host__ __device__
functions, and may be compiled for both device and host back-ends. The latter
leads to linker errors in kernels that use device symbols like threadIdx,
blockIdx, etc. that are compiled for the ROCm back-end.
  • Loading branch information
fwyzard committed Apr 7, 2024
1 parent 9e31d4e commit efea939
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
6 changes: 3 additions & 3 deletions scram-tools.file/tools/alpaka/alpaka-cuda.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<use name="alpaka"/>
<use name="cuda"/>
<!-- host comiplation should run with ALPAKA_HOST_ONLY defined -->
<flags CXXFLAGS="-DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_HOST_ONLY"/>
<flags GENREFLEX_CPPFLAGS="-DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_HOST_ONLY"/>
<flags CXXFLAGS="-DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_ACC_GPU_CUDA_ONLY_MODE -DALPAKA_HOST_ONLY"/>
<flags GENREFLEX_CPPFLAGS="-DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_ACC_GPU_CUDA_ONLY_MODE -DALPAKA_HOST_ONLY"/>
<!-- device comiplation should run without ALPAKA_HOST_ONLY defined -->
<flags CUDA_FLAGS="-DALPAKA_ACC_GPU_CUDA_ENABLED -UALPAKA_HOST_ONLY"/>
<flags CUDA_FLAGS="-DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_ACC_GPU_CUDA_ONLY_MODE -UALPAKA_HOST_ONLY"/>
</tool>
6 changes: 3 additions & 3 deletions scram-tools.file/tools/alpaka/alpaka-rocm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<use name="alpaka"/>
<use name="rocm"/>
<!-- host comiplation should run with ALPAKA_HOST_ONLY defined -->
<flags CXXFLAGS="-DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_HOST_ONLY"/>
<flags GENREFLEX_CPPFLAGS="-DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_HOST_ONLY"/>
<flags CXXFLAGS="-DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_ACC_GPU_HIP_ONLY_MODE -DALPAKA_HOST_ONLY"/>
<flags GENREFLEX_CPPFLAGS="-DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_ACC_GPU_HIP_ONLY_MODE -DALPAKA_HOST_ONLY"/>
<!-- device comiplation should run without ALPAKA_HOST_ONLY defined -->
<flags ROCM_FLAGS="-DALPAKA_ACC_GPU_HIP_ENABLED -UALPAKA_HOST_ONLY"/>
<flags ROCM_FLAGS="-DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_ACC_GPU_HIP_ONLY_MODE -UALPAKA_HOST_ONLY"/>
</tool>

0 comments on commit efea939

Please sign in to comment.