Я думаю, что если вы создадите экземпляр своего вектора, используя unbounded_array
в качестве модели хранения:
vector<double, unbounded_array<double,n_elements>> vector;
тогда вы можете сделать что-то вроде этого:
cudaMemcpy(device_dest,
vector.data().begin(),
vector.data().size(),
cudaMemcpyHostToDevice);
Это работает, потому что итератор unbounded_array
является стандартным C ++ указателем на тип хранимого.