如果我使用
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]
,.....?
我想过更改条件运算符,但它可以处理数组中的元素,而不会引用索引。
我能为此做些什么?
答案 0 :(得分:5)
我可以想到两种方法来解决这类问题:
可能值得同时实施并对它们进行基准测试,以确定哪种方法更快。