Parallel processing 利用内核内推力减少CUDA

Parallel processing 利用内核内推力减少CUDA,parallel-processing,cuda,host,reduction,Parallel Processing,Cuda,Host,Reduction,我想做并行缩减,但在内核中,数据在共享内存中。这在推力库中是可能的吗? 差不多 int sum = thrust::reduce(myIntArray, myIntArray+numberOfItems, (int) 0, thrust::max_element<int>()); int sum=推力::减少(myIntArray,myIntArray+numberOfItems,(int)0,推力::max_元素()); 但这在内核中不起作用。可能吗?谢谢。否,推力::减少()

我想做并行缩减,但在内核中,数据在共享内存中。这在推力库中是可能的吗? 差不多

int sum = thrust::reduce(myIntArray, myIntArray+numberOfItems, (int) 0, thrust::max_element<int>());
int sum=推力::减少(myIntArray,myIntArray+numberOfItems,(int)0,推力::max_元素());
但这在内核中不起作用。可能吗?谢谢。

否,推力::减少()是一个主机函数,如果数据在GPU上,则会执行CUDA内核

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

可能重复的