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

Itaru Kitayama via Openmp-dev openmp-dev at lists.llvm.org
Fri Nov 8 15:57:09 PST 2019


I am getting:
$ cat t1.cpp#include <iostream>
int main() {
int *a[1024];

#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)
{

}


}
t1.cpp:8:27: error: '#pragma omp target enter data' cannot be an immediate
substatement
        #pragma omp target enter data map(to: a[i][0:1])
                                 ^
1 error generated.

On Fri, Nov 8, 2019 at 7:56 PM Rokos, Georgios <georgios.rokos at intel.com>
wrote:

> 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/20191109/8147680b/attachment.html>


More information about the Openmp-dev mailing list