24

我有推力device_vector。我想将它转换为原始指针,以便我可以将它传递给内核。我该怎么做?

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

1 回答 1

29

您可以使用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

于 2012-06-20T05:56:34.843 回答