Recientemente he estado usando thrust mucho. Me he dado cuenta de que para usar el empuje, uno siempre debe copiar los datos de la memoria de la CPU a la memoria de la GPU.
Veamos el siguiente ejemplo:¿existe una manera mejor y más rápida de copiar desde la memoria de la CPU a la GPU utilizando el empuje?
int foo(int *foo)
{
host_vector<int> m(foo, foo+ 100000);
device_vector<int> s = m;
}
No estoy muy seguro de cómo funciona el host_vector
constructor, pero parece que estoy copiando los datos iniciales, procedentes de *foo
, dos veces - una vez a la host_vector cuando se inicializa y en otro momento cuando se inicializa device_vector
. ¿Existe una forma mejor de copiar de cpu a gpu sin hacer copias de datos intermedios? Sé que puedo usar device_ptr
como un contenedor, pero eso aún no soluciona mi problema.
gracias!
el argumento size_t n especifica el número de elementos en el vector, y no debe estar en size_t tipo nombre, size_t generalmente especifica la longitud de los datos en bytes. – TripleS