2012-01-26 9 views
6

यह अच्छी तरह से ज्ञात है कि एक तरफ एक फैशन में स्मृति का उपयोग प्रदर्शन के लिए सबसे अच्छा है।क्या मुझे पढ़ने या लिखने के लिए एक मेमोरी एक्सेस पसंद करना चाहिए?

स्थितियों में, जहां

  • मैं पढ़ने के लिए स्मृति में से एक क्षेत्र में प्रवेश करना होगा में,
  • मैं लिखने के लिए एक और क्षेत्र में प्रवेश करना होगा, और
  • मैं केवल एक कदम में दो क्षेत्रों में से एक का उपयोग कर सकते एक फैशन,

क्या मुझे एक को पढ़ने या लिखने को प्राथमिकता देना चाहिए?

एक सरल, ठोस उदाहरण एक बीएलएएस की तरह कॉपी-एंड-परमिट ऑपरेशन है जैसे y := P x। क्रमपरिवर्तन मैट्रिक्स P पूरी तरह से कुछ क्रमपरिवर्तन वेक्टर q(i) द्वारा परिभाषित किया गया है। इसमें एक समान व्यस्त क्रमपरिवर्तन वेक्टर qinv(i) है। कोई आवश्यक लूप को y[qinv(i)] = x[i] या y[i]=x[q(i)] के रूप में कोड कर सकता है जहां पूर्व x से आगे पढ़ता है और बाद वाला y लिखता है।

आदर्श रूप से कोई भी हमेशा दोनों संभावनाओं को कोड कर सकता है, उन्हें प्रतिनिधि स्थितियों के तहत प्रोफाइल कर सकता है, और तेज़ संस्करण चुन सकता है। दिखाओ कि आप केवल एक संस्करण को कोड कर सकते हैं - जो आप आधुनिक स्मृति आर्किटेक्चर के व्यवहार के आधार पर हमेशा पहुंचने वाले पैटर्न की अपेक्षा करते हैं? क्या थ्रेडेड वातावरण में काम करना आपकी प्रतिक्रिया बदलता है?

+0

मेरे द्वारा अच्छी तरह से जाना जाता है। :-) मुझे यह नहीं मिला। यदि आप सी में एक उदाहरण दे सकते हैं तो मैं एक जवाब दे सकता हूं, लेकिन ओटीओएच पर आपको मुझसे जवाब में दिलचस्पी नहीं हो सकती है अगर मुझे कोई ब्लैक नहीं मिलता है ... ;-) –

+0

बीएलएएस हैं बेसिक लीनियर बीजगणित सबप्रोग्राम (http://netlib.org/blas/), विक्रेताओं द्वारा सामान्य रूप से लागू उच्च प्रदर्शन संख्यात्मक भवन ब्लॉक का एक सेट। –

उत्तर

4

एक्सेस पैटर्न, जिसे आप "लिखते हैं" लिखते हैं (y[i]=x[q(i)]), आमतौर पर तेज़ होता है।

यदि स्मृति कैश की गई है और आपके डेटा टुकड़े कैश लाइन से छोटे हैं, तो इस एक्सेस पैटर्न को कम मेमोरी बैंडविड्थ की आवश्यकता होती है।

स्टोर प्रोसेस की तुलना में आधुनिक प्रोसेसर के लिए अधिक लोड निष्पादन इकाइयों के लिए सामान्य है। और हैसवेल नामक अगला इंटेल आर्किटेक्चर, केवल गेटर निर्देश का समर्थन करता है, जबकि स्काटर अभी तक उनकी योजनाओं में नहीं है। यह सब "एक तरफ लिखता है" पैटर्न के पक्ष में भी है।

थ्रेडेड वातावरण में काम करना इसे नहीं बदलता है।

+0

धन्यवाद Evgeny। –

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

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