我有推力device_vector
。我想将它转换为原始指针,以便我可以将它传递给内核。我该怎么做?
thrust::device_vector<int> dv(10);
//CAST TO RAW
kernel<<<bl,tpb>>>(pass raw)
您可以使用thrust::raw_pointer_cast
. 设备向量类有一个成员函数data
,它会将 a 返回thrust::device_ptr
到向量持有的内存中,可以强制转换,如下所示:
thrust::device_vector<int> dv(10);
int * dv_ptr = thrust::raw_pointer_cast(dv.data());
kernel<<<bl,tpb>>>(dv_ptr)
(免责声明:用浏览器编写,从未编译,从未测试)。推力包含一个完整的工作示例:unwrap_pointer.cu