У меня есть 1d int-array, и я хочу распараллелить 2 для петель.Вложенная петля Cuda C
void foo(int *array, int width, int height) {
for (i = 0 ; i < height ; i++) {
for (j = 0 ; j < width ; j++) {
/* do smth */
}
}
}
Это правильный способ «конвертировать» его в Cuda?
__global__ void foo(int *array, int width, int height) {
unsigned int i = blockIdx.y*blockDim.y + threadIdx.y;
unsigned int j = blockIdx.x*blockDim.x + threadIdx.x;
if (i < height && j < width) {
/* do smth */
}
}
а также, как я могу назвать ядро foo из main?
Интернет переполнен свободной вводные и обучающей информацией о CUDA. На этот вопрос можно было легко ответить, прочитав некоторые из них. – talonmies