Change global tag variables to local variables. - #467
Conversation
Signed-off-by: Seyong Lee <[email protected]>
|
Do you know why this is causing problems? Is it an nvc++ compiler bug? |
If a subview is created in a device kernel (e.g., in a Kokkos parallel_for()), several global tag symbols are accessed, which cannot be correctly captured by nvc++ compiler if version > 24.5. |
|
Fascinating, even if they are constexpr? Well either way I think this is fine |
|
Thanks for the fix! : - ) @seyonglee wrote:
Does this mean "is able to build without errors" or "is able to build and pass tests"? |
With this update, the following two Kokkos unit tests, which create subview in a device kernel, can be built without errors and pass tests: core/unit_test/range_policy/TestRangePolicyExecutionTypes.hpp |
This PR changes global tag variables accessed in Kokkos subview-related functions to local variables, so that NVHPC OpenACC compiler (nvc++ version higher than 24.5) can compile a Kokkos program where a subview is created in a device kernel.
This PR contains the same changes as mdspan code changes in Kokkos PR 9486 (kokkos/kokkos#9486)