2012-06-20 19 views
19

पर जोर देने के लिए :: डिवाइस_वेक्टर को कैसे डाला जाए मेरे पास device_vector है। मैं इसे कच्चे सूचक में डालना चाहता हूं ताकि मैं इसे कर्नेल में पास कर सकूं। ऐसा मैं किस प्रकार करूं? कच्चे पॉइंटर

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

उत्तर

22

आप thrust::raw_pointer_cast का उपयोग कर ऐसा कर सकते हैं।

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

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

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

(अस्वीकरण:: डिवाइस वेक्टर वर्ग, कुछ इस तरह एक सदस्य समारोह data जो स्मृति वेक्टर द्वारा आयोजित है, जो डाली जा सकती है, करने के लिए एक thrust::device_ptr वापस आ जाएगी है ब्राउज़र में लिखा है, संकलित कभी नहीं, कभी नहीं परीक्षण किया)। इसमें शामिल एक पूर्ण कार्य उदाहरण है: unwrap_pointer.cu

+0

क्या हमें उस डेटा को वापस कॉपी करने की आवश्यकता है? अब dv_ptr में डीवी से संशोधित डेटा है, हम इसे वापस डीवी में कॉपी करने के लिए क्या करते हैं? – RaenirSalazar

संबंधित मुद्दे