CUDA推力库和cudaDeviceReset()

时间:2015-03-18 01:24:32

标签: c++ cuda thrust

当你调用cudaDeviceReset()时,是否会使范围内的任何thrust :: device_vectors无法使用?

thrust::host_vector<int> h_intVec;
thrust::device_vector<int> d_intVec;

... set the host vector to something...

d_intVec = h_intVec;

... do some GPU stuff ...

h_intVec = d_intVec;

cudaDeviceReset();

d_intVec = h_intVec;

当我尝试重新填充device_vector时,我似乎得到了一些后端错误,这是我不知道的事情吗?

1 个答案:

答案 0 :(得分:4)

是的,它们无法使用。

在引擎盖下,一个thrust :: device_vector定义在设备上创建一个分配。 cudaDeviceReset使设备上的所有分配都无效,因此原始device_vector不再可用。