11 void copy(
double* RESTRICT v,
int nv1,
float* RESTRICT w,
int nv2,
15 int nv = nin * Nst_pad;
17 #pragma acc data present(v[nv1:nv], w[nv2:nv]) \
18 copyin(nin, Nst, nv1, nv2)
20 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
22 #pragma acc loop gang worker vector
23 for(
int ist = 0; ist < Nst; ++ist){
24 for(
int in = 0; in < nin; ++in){
25 v[nv1 +
IDX2(nin, in, ist)] = w[nv2 +
IDX2(nin, in, ist)];
33 void copy(
float* RESTRICT v,
int nv1,
double* RESTRICT w,
int nv2,
37 int nv = nin * Nst_pad;
39 #pragma acc data present(v[nv1:nv], w[nv2:nv]) \
40 copyin(nin, Nst, nv1, nv2)
42 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
44 #pragma acc loop gang worker vector
45 for(
int ist = 0; ist < Nst; ++ist){
46 for(
int in = 0; in < nin; ++in){
47 v[nv1 +
IDX2(nin, in, ist)] = w[nv2 +
IDX2(nin, in, ist)];