当你调用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时,我似乎得到了一些后端错误,这是我不知道的事情吗?
答案 0 :(得分:4)
是的,它们无法使用。
在引擎盖下,一个thrust :: device_vector定义在设备上创建一个分配。 cudaDeviceReset
使设备上的所有分配都无效,因此原始device_vector不再可用。