【问题标题】:Is that possible to use the push_back method on kernel of CUDA?是否可以在 CUDA 内核上使用 push_back 方法?
【发布时间】:2014-04-16 08:07:24
【问题描述】:

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

谁能给我一个示例代码?

【问题讨论】:

  • here's 类似 push_back 的示例
  • 非常感谢你能帮我写代码吗?我仍然不知道该怎么办。我可以知道你的电子邮件地址吗?
  • 你可以在[这里][1] [1]找到合适的答案:stackoverflow.com/questions/11534700/…

标签: cuda thrust


【解决方案1】:

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

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

【讨论】:

  • 如果您能帮助我检查我的代码并找到解决问题的方法,我将不胜感激。我可以知道您的电子邮件地址并将我的代码发送给您吗?
猜你喜欢
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2022-07-13
  • 2016-01-22
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
相关资源
最近更新 更多