如何释放device_vector (how to free device_vector)

2019-09-18 06:40发布

我使用推力装置矢量如下分配一些空间:

thrust::device_vector<int> s(10000000000);

我如何明确且正确释放这个空间呢?

Answer 1:

device_vector解除分配相关联的存储,当它超出范围,就像任何标准C ++容器。

如果您想取消分配任何推力vector在其一生中手动的存储,你可以这样做使用下面的食谱:

// empty the vector
vec.clear();

// deallocate any capacity which may currently be associated with vec
vec.shrink_to_fit();

swap罗杰·达尔的答复中提到伎俩也应该工作。



Answer 2:

clear()设置矢量的大小为0,但可能不释放相关联的存储器。 释放与STL存储器中的标准方法是用空载体交换载体中。 它应该推力正常工作。

v.clear();
device_vector<T>().swap(v);


文章来源: how to free device_vector
标签: cuda gpu thrust