如果我使用
float sum = thrust::transform_reduce(d_a.begin(), d_a.end(), conditional_operator(), 0.f, thrust::plus<float>());
我得到满足由
conditional_operator()
提供的条件的所有元素的总和,如 Conditional reduction in CUDA .但是我只能对元素求和
d_a[0]
, d_a[2]
, d_a[4]
, d_a[6]
,……?我想过更改条件运算符,但它适用于数组中的元素,而无需任何索引引用。
我能为此做什么?
最佳答案
我可以想到两种方法来解决此类问题:
可能值得同时实现并对其进行基准测试以查看哪种方法更快。
关于cuda - 通过 CUDA Thrust 对具有偶数或奇数索引的元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23379697/