thrust::device_vector objects/references can not be used as kernel parameters.
You could use raw pointers to pass the device vector data.
thrust::device_vector<float> d_vec(100);
float* pd_vec = thrust::raw_pointer_cast(d_vec.data());
kernel<<<100,1>>>(pd_vec);
and here's the prototype of the kernel
template <typename T> __global__ kernel(T* pd_vec)
You Q is similar to this one. how to cast thrust::device_vector<int> to raw pointer