2012-06-20 22 views

Trả lời

22

Bạn có thể thực hiện việc này bằng cách sử dụng thrust::raw_pointer_cast. Lớp vector thiết bị có chức năng thành viên data mà sẽ trả về một thrust::device_ptr vào bộ nhớ được tổ chức bởi các véc tơ, mà có thể được đúc, một cái gì đó như thế này:

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

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

kernel<<<bl,tpb>>>(dv_ptr) 

(từ chối trách nhiệm: bằng văn bản trong trình duyệt, không bao giờ được biên dịch, không bao giờ thử nghiệm). Có một ví dụ làm việc đầy đủ về việc này bao gồm lực đẩy: unwrap_pointer.cu

+0

Chúng ta có cần sao chép dữ liệu đó không? Bây giờ dv_ptr có dữ liệu đã sửa đổi từ dv, chúng ta phải làm gì để sao chép nó trở lại dv? – RaenirSalazar

Các vấn đề liên quan