如果从迭代器创建了device_vector,是否会推送复制数据?

时间:2015-06-24 23:56:09

标签: c++ cuda thrust

假设我有以下代码

float *raw_data;
cudaMalloc(&raw_data, 100*sizeof(float));
thrust::device_vector <float> vec(raw_data, raw_data+100);

执行最后一行时,是否会将内存从raw_data复制到device_vector的内存,还是只设置向量的相应范围?

感谢。

1 个答案:

答案 0 :(得分:0)

thrust::device_vector <float> vec(raw_data, raw_data+100);

vec变量填充了从范围为0到100的指针变量raw_data复制的数据。

使用以下构造函数初始化变量vec。

template<typename InputIterator >
__host__    device_vector (InputIterator first, InputIterator last)