我是CUDA的新手,正在嘗試編寫自己的內核。CUDA數組/矢量刪除
在CPU方面,我有一系列包含整數(一個向量/ GPU線程)的向量。
我希望每個GPU線程從其向量中移除一些元素,然後我將其複製回主機。在CPU方面可比的操作是:
vector.erase(element_number);
我的理解是,STL型矢量不支持GPU,我真的不能使用推力(因爲我用我自己的內核)。但是,我可以將CPU向量轉換爲數組(包括元素數量的數據),然後將這些數組複製到GPU。然後,如果我確定了一個要刪除的元素,我可以將下面的所有元素向上移動並減少元素的總數。
在我重新創建輪子並寫入之前,我的問題是:是否有一些CUDA支持的操作已經這樣做?
CUDA沒有內置任何內容提供像這樣的矢量操作或數組操作。雖然這樣的操作對程序員來說似乎很方便,但它們並不是特別高的性能,所以你可能想要提出一種不需要這種插入/刪除操作的不同的數據管理方案。 –