このC++コードがあり、CUDAに移植したいと思います。
for (int im = 0; im < numImages; im++)
{
for (p = 0; p < xsize*ysize; p++)
{
bool ok = false;
for (f = 0; f < numFeatures; f++)
{
if (feature[im][f][p] != 0)
{
ok = true;
break;
}
}
if (ok)
{
minDist = 1e9;
for (i = 0; i < numBins; i++)
{
dist = 0;
for (f = 0; f < numFeatures; f++)
{
dist += (float)((feature[im][f][p]-clusterPoint[f][i])*(feature[im][f][p]-clusterPoint[f][i]));
}
if (dist < minDist)
{
minDist = dist;
tmp = i;
}
}//end for i
for (f = 0; f < numFeatures; f++)
csum[f][tmp] += feature[im][f][p];
ccount[tmp]++;
averageDist[tmp] += sqrt(minDist);
} // end if (ok)
} //end for p
}// end for im
csum
、GPUで計算ccount
したい。は浮動小数点数であり、整数です。averageDist
csum
averagedist
ccount
これは並列削減の問題ですか?