使用CUDA或推力收集数组中特定值的位置

时间:2014-06-20 14:03:30

标签: cuda thrust

我有一个这样的数组:

数组:0 1 0 0 1 0 1

指数:0 1 2 3 4 5 6

我希望收集" 1"的所有位置进入这样的结果数组:

1 4 6

推力有一个"计数"功能,但它只能计算" 1"

的数量

那么最快的方法是什么?推力是否有一些功能来处理这个问题?如果没有,如何以高效的方式实现CUDA?

我自己的想法:首先使用prefix-sum获取偏移数组,然后添加另一个内核,其中每个线程将其id写入resultArray [offset [id]],如果其数据数组值为" 1&#34 ;。我觉得我的想法太丑了。有更好的方法吗?

1 个答案:

答案 0 :(得分:3)