在cuda中传递矢量指针列表

Passing a list of vector pointers in cuda

本文关键字:指针 列表 cuda      更新时间:2023-10-16

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

根据这里的问题:在cuda设备代码中使用std::vector

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

最好的方法是什么?也许是void **?这样行吗?

这篇文章看起来很清楚,但我会重复一遍,换句话说:你不能将std::vector传递给CUDA内核,原因如下:

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

  • 通过使用STL构造和算法,您使用的代码不是为GPU编写的,也没有设备等效代码,或者模拟速度很慢/甚至不总是可能的