2011-12-07 5 views
8

यह प्रश्न this one से निकटता से संबंधित है, लेकिन मेरा CUDA दुनिया से संबंधित है।एक ही वैश्विक स्मृति स्थान में समान मान लिखने वाले कई धागे

मेरे पास मेरे कर्नेल में कई धागे हैं जो एक ही वैश्विक स्मृति स्थान में एक ही मूल्य लिख सकते हैं। यह ठीक काम कर रहा है, लेकिन मुझे डर है कि यह संभावित रूप से फर्जी हो सकता है, और अब तक मैं भाग्यशाली था।

क्या मेरे वर्कफ़्लो में स्मृति भ्रष्टाचार या अप्रत्याशित व्यवहार की कोई संभावना है (डेटा दौड़, कैश सिंकिंग आदि के कारण)?

+2

संक्षिप्त उत्तर हाँ है। या तो अपने एल्गोरिदम को फिर से डिज़ाइन करें या परमाणु मेमोरी एक्सेस ऑपरेटरों का उपयोग करें यदि आपके पास बिल्कुल एक ही मेमोरी में एकाधिक थ्रेड लिखना आवश्यक है। – talonmies

+0

मुझे अपने एल्गोरिदम को जाने के लिए लगभग तैयार होने से पहले इस प्रश्न से पूछा जाना चाहिए था :(ठीक है, कुछ पुनर्विचार और रिफैक्टरिंग के लिए समय! कारण जानना अच्छा होगा, – Auron

+2

जांचें: http://stackoverflow.com/ प्रश्न/5 9 53955/धागे-समवर्ती-लिखने – jkysam

उत्तर

7

मेरे पास मेरे कर्नेल में कई धागे हैं जो एक ही वैश्विक स्मृति स्थान में समान मूल्य लिख सकते हैं।

कुछ टिप्पणियों के विपरीत, यह सुरक्षित है। सुरक्षित रूप से, मेरा मतलब है कि लिखा गया मान उस वैश्विक स्मृति स्थान में दिखाई देगा। कोई संभावना नहीं है कि एक लेखन नहीं होगा, और कुछ अन्य नकली डेटा भ्रष्टाचार की कोई संभावना नहीं है। Tom's answer here इस पर लागू है।

यदि अलग मान लिखे जा रहे हैं, तो मानों में से एक मान उस स्थान पर समाप्त हो जाएगा, लेकिन कौन सा मान अपरिभाषित है।

+0

यही मैंने सोचा और जो मैंने हमेशा अनुभव किया। मैं इस उत्तर को अनुशंसित के रूप में सेट कर दूंगा, कोई इसे चुनौती देना चाहता है। – Auron

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