2012-09-12 14 views
5

¿Es posible usar push_back con la biblioteca Thrust? y ¿qué tal un vector de vectores? Me gustaría utilizar en la GPU lo que en la CPU es:push_back usando la biblioteca Thrust

vector< vector<int> > MyVector(100); 
... 
MyVector[i].push_back(j); 

¿Hay una manera de utilizarla como por ejemplo:

thrust::device_vector<thrust::device_vector<int>> d_vec(4); 

y lo que trata de crear una matriz de device_vectors? ¿Es posible?

Respuesta

4
  1. Sí, thrust::device_vector tiene un método push_back al igual que un std::vector.
  2. No, no es posible tener un device_vector que contenga device_vectors. Si necesita ese tipo de funcionalidad en empuje, le recomendaría mirar thrust::zip_iterator, que puede proporcionar una "serie de estructuras", como el acceso a una serie de vectores o iteradores distintos.
+0

Lo que quiero es tener acceso a 'device_vector dv' de esta manera:' dv [i] [j'] – Manolete

+0

@Manolete: No creo que eso sea posible. – talonmies

+0

Pero podría hacer dv [i * ancho + j]. – harrism

Cuestiones relacionadas