在我的代码中,我想在__global__ function
上推送我的日期,这里很难使用数组。所以我想知道可以在CUDA的内核上使用push_back方法吗?
我是否可以通过其他方式使用std::vector
功能上的__global__
,或者如何使用thrust::vector
__global__
功能。{/ p>
有人可以给我一个示例代码吗?
答案 0 :(得分:1)
CUDA内核代码中无法std::vector
或thrust::vector
。 Thrust是GPU阵列和算法的主机端抽象,不能在CUDA内核中使用。
你应该重新思考方法。 push_back
样式附加数据是一种基本的串行操作,需要在数据并行执行模型中进行某种锁定或原子操作。这几乎总是对GPU代码产生负面的性能影响。