2015-10-19 89 views
0

我将现有的Reed-Solomon解码代码移植到OpenCL 我的内核中有一些本地数组,如uint myarray [256];在本地功能。 而我有相当多的memset函数,我没有使用它们。 我可以写一个循环来填充它们,但这可能是低效的。另外,关于编写这样的循环的一些建议也是受欢迎的,原因似乎OpenCL只是没有memset。OpenCL中的memset局部变量/内存

但是OpenCL的报告丢失memset的似乎不是失踪了完全的方式

警告:隐式声明C库函数 'memset的' 有型 “无效*(void *的,整型,无符号长) “

,并提出包括<string.h>但未能找到它

fatal error: <string.h> file not found.

+0

请发布一个最简单,完整且可验证的示例([mcve](http://stackoverflow.com/help/mcve)) –

+0

那么,从OpenCL SDK中获取最简单的OpenCL示例,然后写一些类似 uint myarray [ 256]; memset(myarray,0,100);例如,在内核源代码的开始处。 –

+0

您是否在代码中包含'#include '? – Gilles

回答

1

没有memset的(也没有任何C标准库的其余部分)在OpenCL设备代码可用,所以就必须手动(可能带有#pragma unroll提示)环或者,如果阵列是实际上是OpenCL意义上的local(即在工作组中的工作项目之间共享)使每个工作项目都清楚了其中一个元素(这是相当有效的)。