在我的內核中,我需要一個累加器數組。OpenCL是否支持數組初始值設定項,包括默認初始值爲0?
__kernel myKernel(...)
{
float accum[SIZE] = {};
for(i=0; i<ITER; ++i) {
accum[...] += ...
}
...
}
在C中,= {}
將數組初始化爲我充滿0,但我不知道這是在OpenCL的情況?我需要類似以下的東西嗎,還是浪費週期?
float accum[SIZE];
for(int i=0; i<SIZE; ++i) accum[i] = 0;
您的示例中沒有任何變量是靜態分配的。他們都是私人的(或自動的)。我建議標題爲「OpenCL是否支持數組初始值設定項?」或類似的東西。 – Tim 2014-12-06 19:44:49
@Tim好點,謝謝。 – 2014-12-08 13:52:08
也是FWIW我在英特爾GPU OpenCL實現(= {0})中使用了零初始化器。我記得運行到一個隨機大小限制,但(編譯錯誤,如果太大)。 – Tim 2014-12-08 17:25:56