UPC++ headers choke ROCm 5.x hipcc device-mode compilation for non-smp-conduit

Issue #554 resolved
Dan Bonachea created an issue

When using ROCm hipcc 5.x or newer to compile the UPC++ headers in develop using any conduit other than smp, I see a new error like the following: (example from upcxx-extras kokkos_montecarlo on Crusher with KOKKOS_DEVICES=Hip)

In file included from MC_DartSampler.cpp:3:
In file included from /gpfs/alpine/world-shared/csc296/crusher/upcxx-hip/nightly/amd/PrgEnv-amd-8.3.3-5.1.0-2022.07.14/include/upcxx/upcxx.hpp:5:
In file included from /gpfs/alpine/world-shared/csc296/crusher/upcxx-hip/nightly/amd/PrgEnv-amd-8.3.3-5.1.0-2022.07.14/include/upcxx/allocate.hpp:8:
/gpfs/alpine/world-shared/csc296/crusher/upcxx-hip/nightly/amd/PrgEnv-amd-8.3.3-5.1.0-2022.07.14/include/upcxx/backend.hpp:77:39: error: dynamic initialization is not supported for __device__, __constant__, __shared__, and __managed__ variables.
    static constexpr intrank_t const& pshm_peer_lb = pshm_peer_lb_;
                                      ^              ~~~~~~~~~~~~~
1 error generated when compiling for gfx90a.

This error message is notably similar to issue #549, but affects a different ROCm version and different part of the runtime.

Comments (2)

  1. Log in to comment