这是我要转换为 openCL 的循环。
for(n=0; n < LargeNumber; ++n) {
for (n2=0; n2< SmallNumber; ++n2) {
A[n]+=B[n2][n];
}
Re+=A[n];
}
这就是我到目前为止所拥有的,虽然,我知道它是不正确的并且遗漏了一些东西。
__kernel void openCL_Kernel( __global int *A,
__global int **B,
__global int *C,
__global _int64 Re,
int D)
{
int i=get_global_id(0);
int ii=get_global_id(1);
A[i]+=B[ii][i];
//barrier(..); ?
Re+=A[i];
}
我是这类事情的完全初学者。首先,我知道我不能将全局双指针传递给 openCL 内核。如果可以的话,请在发布解决方案之前等待几天左右,我想自己解决这个问题,但如果你能帮助我指出正确的方向,我将不胜感激。