【问题标题】:CUDA reduction using thrust inside kernel使用内核内部的推力减少 CUDA
【发布时间】:2012-04-16 14:19:31
【问题描述】:

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

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

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

【问题讨论】:

标签: parallel-processing cuda host reduction


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 1970-01-01
    • 2018-07-22
    • 2013-09-22
    • 2015-05-17
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    相关资源
    最近更新 更多