GEOS-DEV / GEOS-DEV/GEOS

Updating of RAJA TPL on LC

Open
#3,507 2 comments 0 reactions 3 assignees View on GitHub

@CusiniM is already working on this.

Since Jan 2, 2025.

type: bug type: new
Dominant language
C++
Stars
287
Forks
109
Avg merge
4d 41m
Merged PRs (30d)
5

Description

Describe the bug
I am receiving a compilation error compiling the feature/crook5/gpuDevelopMergeFY25 development branch of GEOS for the material point method solver. The solver includes RAJA multireduction operations which through templates appear to reference the power_of_2_mod function in the RAJA /usr/gapps/GEOSX/thirdPartyLibs/2024-11-14/install-lassen-clang-13-cuda-11-release/raja/include/RAJA/util/math.hpp source file. This template is not marked with RAJA_HOST_DEVICE so I receive the following compilation error when trying to build geosx on lassen.
/usr/gapps/GEOSX/thirdPartyLibs/2024-11-14/install-lassen-clang-13-cuda-11-release/raja/include/RAJA/policy/cuda/multi_reduce.hpp(165): error: calling a constexpr __host__ function("power_of_2_mod") from a __device__ function("grid_multi_reduce_shmem_to_global_atomic") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this. detected during: instantiation of "void RAJA::cuda::MultiReduceBlockThenGridAtomicHostInit_Data<Combiner, T, tuning>::finalize_device() [with Combiner=RAJA::reduce::sum<geos::real64>, T=geos::real64, tuning=RAJA::cuda::MultiReduceTuning<RAJA::cuda::multi_reduce_algorithm::init_host_combine_block_atomic_then_grid_atomic, RAJA::cuda::AtomicReplicationTuning<RAJA::cuda::SharedAtomicReplicationMaxPow2Concretizer<RAJA::cuda::ConstantPreferredReplicationConcretizer<16UL>>, RAJA::cuda::IndexFlatten<RAJA::cuda::IndexGlobal<RAJA::named_dim::x, 0, -1>, RAJA::cuda::IndexGlobal<RAJA::named_dim::y, 0, -1>, RAJA::cuda::IndexGlobal<RAJA::named_dim::z, 0, -1>>, RAJA::GetOffsetRight<int, int, int>>, RAJA::cuda::AtomicReplicationTuning<RAJA::cuda::GlobalAtomicReplicationMinPow2Concretizer<RAJA::cuda::ConstantPreferredReplicationConcretizer<2UL>>, RAJA::cuda::IndexFlatten<RAJA::cuda::IndexDivide<32UL, RAJA::cuda::IndexFlatten<RAJA::cuda::IndexGlobal<RAJA::named_dim::x, 0, -1>, RAJA::cuda::IndexGlobal<RAJA::named_dim::y, 0, -1>, RAJA::cuda::IndexGlobal<RAJA::named_dim::z, 0, -1>>>, RAJA::cuda::IndexFlatten<RAJA::cuda::IndexGlobal<RAJA::named_dim::x, -1, 0>, RAJA::cuda::IndexGlobal<RAJA::named_dim::y, -1, 0>, RAJA::cuda::IndexGlobal<RAJA::named_dim::z, -1, 0>>>, RAJA::GetOffsetLeft<int, int, int>>>]"

Platform (please complete the following information):
LLNL/lassen

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.