在cuda中传递矢量指针列表

时间:2014-04-27 21:14:05

标签: c++ vector cuda void-pointers

我是CUDA编程的新手,所以我很好奇如何执行以下操作:

根据这里的问题:Using std::vector in cuda device code

我们不能使用std :: vector。我试图将像std :: vector这样的参数传递给内核。 void *描述了GPU /设备上的内存指针(cuda术语)。

最好的方法是什么?也许void **?那会有用吗?

1 个答案:

答案 0 :(得分:2)

这篇文章似乎很清楚,但我会用其他话重复一遍:你不能将std :: vector传递给CUDA内核,原因如下: / p>

  • CUDA内核需要使用设备代码,即在您的gpu上运行的代码或可以这样翻译的代码。为了生成该代码,您编写的几乎所有内容都需要通过编译链,最终为您的gpu生成中间代码或可执行代码。

  • 通过使用STL构造和算法,您使用的代码还没有为GPU编写,并且没有设备等效代码或仿真速度慢/甚至不可能