如何将thrust :: device_vector <int>强制转换为原始指针

Pro*_*mer 20 cuda gpu thrust

我有一个推力device_vector.我想将它转换为原始指针,以便我可以将它传递给内核.我怎么能这样做?

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

tal*_*ies 23

你可以使用thrust::raw_pointer_cast.设备向量类有一个成员函数data,它将返回一个thrust::device_ptr向量所持有的内存,可以进行强制转换,如下所示:

thrust::device_vector<int> dv(10);

int * dv_ptr = thrust::raw_pointer_cast(dv.data());

kernel<<<bl,tpb>>>(dv_ptr)
Run Code Online (Sandbox Code Playgroud)

(免责声明:用浏览器编写,从未编译,从未测试过).有一个完整的工作示例包括推力:unwrap_pointer.cu