Cuda openacc称分割大数据时存在分割错误

Cuda openacc称分割大数据时存在分割错误,cuda,bigdata,openacc,Cuda,Bigdata,Openacc,由于我在GPU中有要malloc的大数据,我必须将其拆分。如下所示,从开始到结束拆分temp1和temp2一次: for (int start = 0; start < total; start += step) { int end = start + step > total?total:start+step; fprintf(stderr, "total %ld start :%ld end :%ld\n", total, start, end); #p

由于我在GPU中有要malloc的大数据,我必须将其拆分。如下所示,从开始到结束拆分temp1和temp2一次:

for (int start = 0; start < total; start += step) {
    int end = start + step > total?total:start+step;
    fprintf(stderr, "total %ld start :%ld end :%ld\n", total, start, end);

    #pragma acc data pcopyin(sum[0:n_sample], num[0:n_sample*total], lognn[0:preFact])
    #pragma acc data copy(temp1[start*n_array1:end*n_array1], temp2[start*n_array2:end*n_array2])
    #pragma acc kernels loop independent
    for (int index = start; index < end; ++index) {
                unsigned long long * t1 = temp1 + index * n_array1;
                unsigned long long * t2 = temp2 + index * n_array2;
               // fprintf(stderr, "use %d\t", index*n_array1);
                int k = count / 32;
                int l = count / 64;
                t1[k] <<= 2;
                t2[l] <<= 1;
                int x = num[index * n_sample + i];
                int y = num[index * n_sample + j];
     }
}
for(int start=0;start总计?总计:开始+步骤;
fprintf(标准,“总计%ld开始:%ld结束:%ld\n”,总计,开始,结束);
#pragma acc data pcopyin(和[0:n_样本]、数[0:n_样本*总计]、lognn[0:preFact])
#pragma acc数据拷贝(temp1[start*n_array1:end*n_array1],temp2[start*n_array2:end*n_array2])
#pragma-acc内核循环无关
for(int index=start;indext1[k]data子句没有成为[0:end start]。下限和上限可以是表达式。但是,您必须确保下限<上限

您使用的编译器和版本是什么?系统中有什么GPU?对不起,我忘了在openacc中子数组定义为arr[start:length]。非常感谢mushand…你能告诉我当我这样使用时如何修复编译器警告:
copyin(temp[starti*n_数组:stepi*n_数组,temp[startj*n_数组:stepj*n_数组])
编译器警告是
PGC-W-0155-数组temp的两个数据子句
我使用PGI,那么我能做些什么。。。。