https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115279
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |openacc
Component|middle-end |libgomp
CC| |jakub at gcc dot gnu.org
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
For the compiler side, there is now:
* PR122205 – when using 'self_maps', change all variable 'declare target'
to 'declare target link' - which uses an indirection to ensure that
the device always accesses the host version.
THIS PR IS NOW ABOUT:
* If the system has unified-shared memory that should be used¹ but there
are still 'declare target' in the code, MAP clauses for those variables
still have to be honored!
[¹ old code with 'requires unified_shared_memory/self_maps' before PR122205
is fixed, automatic USM with APUs or USM because of some set environment
variable.]
Namely, we cannot skip all mapping in that case - we might for 'self_maps' -
but, otherwise, we still have to do the checking in libgomp, but can skip
all but declare-target variables.
NOTE: We also need to handle both OpenMP and OpenACC when automatic USM is
implemented via environment variables or automatically for APUs.