是否可以在CUDA的内核上使用push_back方法?

时间:2014-04-16 08:07:25

标签: cuda thrust

在我的代码中,我想在__global__ function上推送我的日期,这里很难使用数组。所以我想知道可以在CUDA的内核上使用push_back方法吗? 我是否可以通过其他方式使用std::vector功能上的__global__,或者如何使用thrust::vector __global__功能。{/ p>

有人可以给我一个示例代码吗?

1 个答案:

答案 0 :(得分:1)

CUDA内核代码中无法std::vectorthrust::vector。 Thrust是GPU阵列和算法的主机端抽象,不能在CUDA内核中使用。

你应该重新思考方法。 push_back样式附加数据是一种基本的串行操作,需要在数据并行执行模型中进行某种锁定或原子操作。这几乎总是对GPU代码产生负面的性能影响。