OpenCL

时间:2015-10-19 10:43:42

标签: c++ c opencl

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

但OpenCL抱怨缺少memset的方式似乎没有完全错过它

  

警告:用类型隐式声明C库函数'memset'   'void *(void *,int,unsigned long)'

并建议包含<string.h>但未能找到它

  

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

1 个答案:

答案 0 :(得分:1)

OpenCL设备代码中没有memset(也没有任何其他C标准库),因此您需要手动循环(可能带有#pragma unroll提示),或者,如果是数组在OpenCL意义上实际上是local(即在工作组中的工作项之间共享)使每个工作项清除其中一个元素(效率更高)。