我是CUDA的新手,正在尝试编写自己的内核。CUDA数组/矢量删除
在CPU方面,我有一系列包含整数(一个向量/ GPU线程)的向量。
我希望每个GPU线程从其向量中移除一些元素,然后我将其复制回主机。在CPU方面可比的操作是:
vector.erase(element_number);
我的理解是,STL型矢量不支持GPU,我真的不能使用推力(因为我用我自己的内核)。但是,我可以将CPU向量转换为数组(包括元素数量的数据),然后将这些数组复制到GPU。然后,如果我确定了一个要删除的元素,我可以将下面的所有元素向上移动并减少元素的总数。
在我重新创建轮子并写入之前,我的问题是:是否有一些CUDA支持的操作已经这样做?
CUDA没有内置任何内容提供像这样的矢量操作或数组操作。虽然这样的操作对程序员来说似乎很方便,但它们并不是特别高的性能,所以你可能想要提出一种不需要这种插入/删除操作的不同的数据管理方案。 –