Например,
for(i = 0 to 1000){
for(j= 0 to 1000){
for(k = 0 to 1000){
add(a[i],b[j],c[k]);
}
}
}
Это структура серийного кода.В CUDA я могу написать
__global__ void add (int *a, int *b, int *c, int *d)
{
int tidx = blockIdx.x*blockDim.x+threadIdx.x;
if(tidx<1000){
for(j= 0 to 1000){
for(k = 0 to 1000){
d[tidx] = a[idx]+b[j]+c[k];
}
}
add<<<1,1000>>>(a,b,c,d);//1D thread
}
}
Как я могу использовать трехмерное распределение потоков для вышеуказанного кода?
Спасибо