用CUDA推力求偶数或奇数指数元素之和
如果我使用用CUDA推力求偶数或奇数指数元素之和,cuda,sum,thrust,Cuda,Sum,Thrust,如果我使用 float sum = thrust::transform_reduce(d_a.begin(), d_a.end(), conditional_operator(), 0.f, thrust::plus<float>()); float sum=thrust::transform_reduce(d_a.begin()、d_a.end()、条件_操作符()、0.f、thrust::plus()); 我得到满足条件_操作符()提供的条件的所有元素的总和,如中所示 但是
float sum = thrust::transform_reduce(d_a.begin(), d_a.end(), conditional_operator(), 0.f, thrust::plus<float>());
float sum=thrust::transform_reduce(d_a.begin()、d_a.end()、条件_操作符()、0.f、thrust::plus());
我得到满足条件_操作符()
提供的条件的所有元素的总和,如中所示
但是,我只能对元素dua[0]
,dua[2]
,dua[4]
,dua[6]
我想更改条件运算符,但它对数组中的元素有效,而不引用索引
我能为此做些什么?我可以想出两种方法来解决这类问题:
这两种方法可能都值得实施,并对它们进行基准测试,以确定哪种方法更快。如果您愿意查找,推力示例中有一个现成的“跨步迭代器”。@talonmies如果您能发布一个简短的答案,指出您在评论中提到的内容,我会投赞成票。