0

我想做并行减少,但在我的内核内部,数据在共享内存中。推力库可以做到这一点吗?就像是

int sum = thrust::reduce(myIntArray, myIntArray+numberOfItems, (int) 0, thrust::max_element<int>());

但这在内核中不起作用。可能吗?谢谢你。

4

1 回答 1

1

不,thrust::reduce() 是一个主机函数,如果数据在 GPU 上,它会导致执行 CUDA 内核。

您必须深入研究推力源并找到__device__它用于减少的功能。这些可以从您的内核中调用。如果减少的逻辑包含在其他__global__内核中,则必须手动将其拼凑在一起才能使用它。

于 2012-04-16T18:10:52.667 回答