0
我有一個glm::vec3
的數組,其中count * 3
元素。我有另一個數組,其中包含要複製的元素的int
索引。一個例子:使用CUDA複製陣列的特定元素推力置換迭代器
thrust::device_vector<glm::vec3> vals(9);
// vals contains 9 vec3, which represent 3 "items"
// vals[0], vals[1], vals[2] are the first "item",
// vals[3], vals[4], vals[5] are the second "item"...
int idcs[] = {0, 2};
// index 0 and 2 should be copied, i.e.
// vals[0..2] and vals[6..8]
我試圖使用置換迭代器,但我不能讓它工作。我的做法是:
thrust::copy(
thrust::make_permutation_iterator(vals, idcs),
thrust::make_permutation_iterator(vals, idcs + 2),
target.begin()
);
當然但這隻會複製vals[0]
和vals[2]
代替vals[0] vals[1] vals[2]
和vals[6] vals[7] vals[8]
。
是否可以使用Thrust將所需值從一個緩衝區複製到另一個緩衝區?