#include #include #include extern void vecadd(int,float*,float*,float*); int main() { float *a, *b, *c; int i; int n; n = 1024; a = (float*)malloc(n*sizeof(float)); b = (float*)malloc(n*sizeof(float)); c = (float*)malloc(n*sizeof(float)); #pragma acc data create(a[0:n],b[0:n]) copyout(c[0:n]) { #pragma acc kernels for( i = 0; i < n; i++) { a[i] =(float)i; b[i] =(float)i*2.0f; } #pragma acc host_data use_device(a,b,c) { vecadd(n, a, b, c); } } for( i = 0; i < 10; i++) fprintf(stdout, "c[%d] = %f\n",i,c[i]); return 0; }