在我的代码中,我想在 __global__ 函数
上 push_back 我的日期,这里很难使用数组。所以我想知道是否可以在 CUDA 内核上使用 push_back 方法?
我可以通过其他方式在 __global__
函数上使用 std::vector
吗,或者如何在 上使用
函数。thrust::vector
>__global__
谁能给我一个示例代码?
最佳答案
std::vector
或 thrust::vector
在 CUDA 内核代码中是不可能的。 Thrust 是 GPU 阵列和算法的主机端抽象,不能在 CUDA 内核中使用。
您应该重新考虑方法。 push_back
样式的数据附加是一种基本的串行操作,需要在数据并行执行模型中进行某种锁定或原子操作。这几乎总是对 GPU 代码产生负面的性能影响。
关于cuda - 是否可以在 CUDA 内核上使用 push_back 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23103540/