4
我有一些代码要编入cuda内核。看哪:CUDA:嵌入式循环内核
for (r = Y; r < Y + H; r+=2)
{
ch1RowSum = ch2RowSum = ch3RowSum = 0;
for (c = X; c < X + W; c+=2)
{
chan1Value = //some calc'd value
chan3Value = //some calc'd value
chan2Value = //some calc'd value
ch2RowSum += chan2Value;
ch3RowSum += chan3Value;
ch1RowSum += chan1Value;
}
ch1Mean += ch1RowSum/W;
ch2Mean += ch2RowSum/W;
ch3Mean += ch3RowSum/W;
}
如果有这样的分成两个内核,一个计算RowSums和一个计算方式,我应该如何处理的事实,我的循环指数不以零开始,在N个结束?
尝试选择一个问题,它很难选择正确的答案。但是,至于你的第二个问题......很难专门回答,但我认为一旦你开发内核的时候你会看到更远。 – jmilloy 2011-01-22 23:24:14
你应该用每块H块和W线程的配置启动你的内核。然后,您将从内核中的blockIdx和threadIdx值计算r和c。计算r和c然而你想...我试图把这个在我的答案下面... – jmilloy 2011-01-22 23:26:18