2011-12-24 12 views
5

मैं निम्नलिखित कर रहा हूँ के लिए __shared__ चर के लिए अनुमति नहीं है। संकलक प्रश्न के शीर्षक में बताए गए त्रुटि के रूप में फेंक रहा है। मैं वास्तव में नहीं समझता कि यह एक समस्या क्यों है?प्रारंभकर्ता CUDA

उत्तर

7

साझा किए गए चर के स्थिर प्रारंभिक सीयूडीए में अवैध है। समस्या यह है कि प्रत्येक थ्रेड को साझा स्मृति के स्थैतिक प्रारंभिक तरीके से कैसे व्यवहार करना चाहिए प्रोग्रामिंग मॉडल में अपरिभाषित है। कौन सा धागा लिखना चाहिए? क्या होता है यदि मान धागे के बीच समान नहीं है? इस तरह के मामले के लिए कंपाइलर कोड को कैसे उत्सर्जित करना चाहिए और हार्डवेयर को इसे कैसे चलाना चाहिए?

अपने गैरकानूनी उदाहरण में आप ब्लॉक में प्रत्येक थ्रेड को एक समान साझा चर को प्रारंभ करने के लिए कह रहे हैं - मूल रूप से एक स्थिर रूप से संकलित स्मृति दौड़।

+1

SO, सही तरीका क्या है ??? – Programmer

+0

प्लस नोट। उपर्युक्त में, मैं ब्लॉक में प्रत्येक थ्रेड को exForBlockLessThanp को एक ही मान – Programmer

+0

असाइन करने के लिए एक सशर्त कथन का उपयोग करता हूं ताकि एक थ्रेड कर्नेल – talonmies

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

  • कोई संबंधित समस्या नहीं^_^