मुझे CUDA प्रबंधित आवंटन के साथ भयानक त्रुटियां हैं। मैं पुष्टि करना चाहता हूं कि निम्नलिखित कोड सही है:

T* x;
cudaMallocManaged(&x, sizeof(*x));
new(x) T(..)

क्या प्लेसमेंट नया सिंटैक्स CUDA संस्करण 11 द्वारा समर्थित है। धन्यवाद।

-1
Pierre T. 10 फरवरी 2021, 16:43

1 उत्तर

सबसे बढ़िया उत्तर

हां, यह प्रयोग करने योग्य होना चाहिए, इलिप्सिस और लापता अर्धविराम के उपयोग जैसे मामूली मुद्दों को अनदेखा करना। आप CUDA में प्लेसमेंट new के उचित और विशिष्ट उपयोग के उदाहरण यहीं SO cuda टैग पर थोड़ी खोज के साथ पा सकते हैं।

हां, प्लेसमेंट नया समर्थित/प्रयोग योग्य है। आपके द्वारा यहां दर्शाया गया कोड ज्यादातर होस्ट कोड है (होस्ट कोड लाइब्रेरी में कॉल को अनदेखा करना)। तो आपके द्वारा दिखाए गए संदर्भ में इस ऑपरेशन (नया प्लेसमेंट) के लिए समर्थन वास्तव में आपके द्वारा उपयोग किए जा रहे होस्ट कंपाइलर से आ रहा है, CUDA टूलकिट द्वारा प्रदान की गई कोई भी चीज़ नहीं।

1
Robert Crovella 10 फरवरी 2021, 17:22