我是一个新的for openCL。如何从数组中获得总和数组
我知道如何总结一维数组。但我的问题是如何从openCL中的1 1D数组中获得一个sum数组。
int a[1000];
int b[1000];
.... //save data to a
for(int i = 0 ;i < 1000; i ++){
int sum = 0;
for(int j = 0 ;j < i; j ++){
sum += a[j];
}
b[i] = sum;
}
任何建议是值得欢迎的。
你可以看看ArrayFire中OpenCL sum函数的源代码,它是开源的,在这里:http://www.arrayfire.com/docs/group__reduce__func__sum.htm – arrayfire
我想你说的是“前缀总和“或”扫描“。对不起,现在没有答案,但像“prefix sum opencl”这样的websearches会带来一些结果,也许这已经有所帮助了。 – Marco13
您的代码是前缀总和。它相当于'for(int i = 0; i <1000; j ++){sum + = a [j]; b [i] =总和; }'。 –