[Openmp-commits] [PATCH] D65001: [OpenMP][libomptarget] Add support for unified memory for regular maps

Jonas Hahnfeld via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Jul 29 08:49:00 PDT 2019

Hahnfeld added inline comments.

Comment at: libomptarget/test/api/api.c:98
+  // CHECK: Inside target data: A is not present
+  // CHECK: Inside target data: B is present
gtbercea wrote:
> Hahnfeld wrote:
> > gtbercea wrote:
> > > Hahnfeld wrote:
> > > > because this sounds really odd: `A` can be accessed on the device, but is not "present"?
> > > This is just a presence test using the OpenMP API. If A is not associated to a device instance then it won't be considered present. Again, if the user wants to handle all of this manually the option is there and unified memory can't make this not an option for the user.
> > > If A is not associated to a device instance then it won't be considered present.
> > 
> > Can you link me to a paragraph in the spec that mandates this implication? I only know of the following from the `Effect` of `omp_target_is_present`:
> > 
> > > This routine returns non-zero if the specified pointer would be found present on device device_num by a map clause; otherwise, it returns zero.
> > 
> > I think there's nothing that prevents a non-zero return value because in fact all pointers would be found present by a `map` clause under unified shared memory.
> You would be right to think so if this was not in combination with omp_target_alloc. The fact that it is it means that the pointer was not officially mapped (explicitely or implicitly).
So what would be a full motivating example where libomptarget can't return true for any pointer passed to `omp_target_is_present`? Is it in this test?

  rOMP OpenMP



More information about the Openmp-commits mailing list