我有一个推力device_vector
。我想将它转换为原始指针,以便我可以将它传递给内核。我怎么能这样做?
thrust::device_vector<int> dv(10);
//CAST TO RAW
kernel<<<bl,tpb>>>(pass raw)
答案 0 :(得分: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)
(免责声明:用浏览器编写,从未编译,从未测试过)。有一个完整的工作示例包括推力:unwrap_pointer.cu