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.

Reply via email to