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

时间:2012-06-20 05:46:13

标签: cuda gpu thrust

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

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

1 个答案:

答案 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