come cast di spinta::device_vector<int> puntatore raw

Ho una spinta device_vector. Voglio il cast a un puntatore raw in modo che io posso passare ad un kernel. Come posso farlo?

thrust::device_vector<int> dv(10);
//CAST TO RAW
kernel<<<bl,tpb>>>(pass raw)

OriginaleL’autore Programmer | 2012-06-20

One Reply
  1. 22

    Si può fare questo con thrust::raw_pointer_cast. Il dispositivo di classe vector ha una funzione membro data che restituirà un thrust::device_ptr di memoria occupata dal vettore, che può essere gettato, qualcosa di simile a questo:

    thrust::device_vector<int> dv(10);
    
    int * dv_ptr = thrust::raw_pointer_cast(dv.data());
    
    kernel<<<bl,tpb>>>(dv_ptr)

    (disclaimer: scritto nel browser, mai compilato, mai provato). C’è un esempio funzionante di questo incluso con spinta: unwrap_pointer.cu

    Non abbiamo bisogno di copiare i dati? Ora che dv_ptr ha modificato i dati da dv, cosa possiamo fare per copiare dv?

    OriginaleL’autore talonmies

Lascia un commento