【发布时间】:2012-05-25 22:07:16
【问题描述】:
我有一长串字符,存储在 cl_mem 缓冲区中,我将其提交给我的内核。
我想把这个长字符串分成单独的字符串,我将把它们用作一些匹配处理的搜索模式。
我怎样才能做到这一点?
__kernel void SetHorspoolMatch(
__global const char *haystack,
__global const char *needlesData){}
我想把needlesData分成多个不同的“针”。
或者,有没有更好的方法将字符串数组从主机移动到内核并单独使用它们?
【问题讨论】:
-
needlesData 是要在 haystack 中搜索的单个子字符串吗?您是要查找所有出现的 needlesData、只是第一次出现,还是计算有多少?
-
您最好先在主机上拆分数据,然后再将其提交给内核。
-
使用内核滑动数据似乎并不合适。除非您想根据常用方法进行一些欺骗性的重新排序,否则最好在主机端进行处理。
标签: c string kernel opencl gpu