Я хотел бы понять, как преобразовать основные циклы C / C ++ в ядро CUDA. Скажем так:
for (int i=0;i < MAXi;i++)
for(int j=0;j< MAXj;j++){
...code that uses i and j....
}
Все, что мне нужно для вычисления элементов MAXj.
Это может быть очень простым для некоторых людей, но я действительно борюсь здесь.
Допустим, что Maxj составляет около миллиона, MAXj = 1000000; и там мы хотим, чтобы все темы работали.
Я был успешным только с внутренним циклом:
int tid=threadIdx.x + blockDim.x*blockIdx.x + blockDim.x*gridDim.x*blockIdx.y;
используя 2d блоки, как я могу распараллелить циклы такого типа? Они очень распространены в Си, и было бы очень полезно узнать, как это сделать.