4 #define COUNTERTYPE unsigned int
9 unsigned int *__restrict a
;
10 unsigned int *__restrict b
;
11 unsigned int *__restrict c
;
13 a
= (unsigned int *__restrict
)malloc (N
* sizeof (unsigned int));
14 b
= (unsigned int *__restrict
)malloc (N
* sizeof (unsigned int));
15 c
= (unsigned int *__restrict
)malloc (N
* sizeof (unsigned int));
17 #pragma acc enter data create (a[0:N])
18 #pragma acc kernels present (a[0:N])
20 for (COUNTERTYPE i
= 0; i
< N
; i
++)
23 #pragma acc exit data copyout (a[0:N])
25 #pragma acc enter data create (b[0:N])
26 #pragma acc kernels present (b[0:N])
28 for (COUNTERTYPE i
= 0; i
< N
; i
++)
31 #pragma acc exit data copyout (b[0:N])
34 #pragma acc enter data copyin (a[0:N], b[0:N]) create (c[0:N])
35 #pragma acc kernels present (a[0:N], b[0:N], c[0:N])
37 for (COUNTERTYPE ii
= 0; ii
< N
; ii
++)
38 c
[ii
] = a
[ii
] + b
[ii
];
40 #pragma acc exit data copyout (c[0:N])
42 for (COUNTERTYPE i
= 0; i
< N
; i
++)
43 if (c
[i
] != a
[i
] + b
[i
])