मैं ओपनसीएल में एक एल्गोरिदम लिख रहा हूं जिसमें मुझे डेटा के एक उचित भाग को याद रखने के लिए प्रत्येक कार्य इकाई की आवश्यकता होगी, long[70]
और long[200]
या प्रति कर्नेल के बीच कुछ कहें।एएमडी उपकरणों पर भौतिक स्मृति: स्थानीय बनाम निजी
हालिया एएमडी उपकरणों में 32 कीबी __local
मेमोरी है, जो (प्रति कर्नेल डेटा की दी गई मात्रा के लिए) 20-58 कार्य इकाइयों की जानकारी संग्रहीत करने के लिए पर्याप्त है। हालांकि, मैं आर्किटेक्चर से (और विशेष रूप से this drawing से) समझता हूं, प्रत्येक शेडर कोर में भी समर्पित स्मृति की एक समर्पित राशि होती है। हालांकि मैं इसका आकार ढूंढने में असफल रहा।
किसी को भी मुझे बता सकते हैं कैसे कितना निजी स्मृति प्रत्येक गिरी है पता लगाने के लिए?
मैं के बाद से मैं इनमें से कुछ जल्दी ही खरीदने की योजना, HD7970 के बारे में विशेष रूप से उत्सुक हूँ।
संपादित करें: हल समस्या, जवाब परिशिष्ट डी
मैं नहीं मानता कि निजी स्मृति कोर प्रति समर्पित है - यह रजिस्टर फ़ाइल है, जो प्रति गणना इकाई संसाधन है करने के लिए मैप करता है। प्रत्येक कार्य आइटम को गणना इकाई रजिस्टर फ़ाइल से आवंटित रजिस्ट्रार प्राप्त होते हैं, कितने आवश्यक हैं किसी भी तत्काल तत्काल उड़ान में तरंगों की संख्या निर्धारित करता है। – talonmies
मशहूर हर जगह देखे गए चित्र से http://www.codeproject.com/KB/showcase/Memory-Spaces/image001.jpg मैंने निष्कर्ष निकाला कि निजी स्मृति __local स्मृति से भौतिक रूप से अलग है, नहीं? – user1111929
हां, वे शारीरिक रूप से अलग हैं। अधिकांश आधुनिक एएमडी उपकरणों में इकाई स्तर साझा स्मृति की गणना करने के लिए गणना स्मृति इकाई फ़ाइल, स्थानीय मेमोरी के लिए निजी मेमोरी मैप्स। कुछ शुरुआती ओपनसीएल संगत जीपीयू में मरने वाली स्मृति पर नहीं था, और स्थानीय मेमोरी सिर्फ एसडीआरएएम थी। न तो प्रति कोर है, और आप स्थानीय प्रभाव के लिए निजी और प्रति कार्य समूह के लिए प्रति कार्य आइटम का कितना उपयोग करते हैं, प्रति गणना इकाई चलाने वाले समवर्ती तरंगों की संख्या। – talonmies