[Openmp-dev] How do I map an array of pointers using array notation

Rokos, Georgios via Openmp-dev openmp-dev at lists.llvm.org
Fri Nov 8 02:56:01 PST 2019


You have to “enter data” for each element of the array. Something like:

#pragma omp target enter data map(alloc: a[0:1024])
for(int i=0; i<1024; i++)
  #pragma omp target enter data map(to: a[i][0:1])

#pragma omp target map(alloc: a)
{
...
}

for(int i=0; i<1024; i++)
  #pragma omp target exit data map(from: a[i][0:1])
#pragma omp target exit data map(alloc: a[0:1024])

George

From: Openmp-dev <openmp-dev-bounces at lists.llvm.org> On Behalf Of Itaru Kitayama via Openmp-dev
Sent: Thursday, 7 November, 2019 21:01
To: openmp-dev <openmp-dev at lists.llvm.org>
Subject: [Openmp-dev] How do I map an array of pointers using array notation

Hi,
As this

int *a[1024];
#pragma omp target parallel for map(tofrom: a[0:1024][0:1])

does not compile. How do I move data to the device properly?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20191108/0e8d9f74/attachment.html>


More information about the Openmp-dev mailing list