Вот цикл, который я хочу преобразовать в 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. Если можете, подождите несколько дней или около того, прежде чем публиковать решение, я хочу выяснить это для себя, но если вы можете помочь указать мне в правильном направлении, я был бы благодарен.