2017-12-02 28 views
10

क्या इंटेल पीएमयू का उपयोग प्रति-कोर पढ़ने/लिखने मेमोरी बैंडविड्थ उपयोग को मापने के लिए किया जा सकता है? यहां "स्मृति" का अर्थ DRAM (यानी, किसी भी कैश स्तर पर नहीं मारा जाता है)।क्या मेमोरी बैंडविड्थ को मापने के लिए इंटेल प्रदर्शन मॉनीटर काउंटर का उपयोग किया जा सकता है?

उत्तर

2

हां, यह संभव है, हालांकि यह सामान्य पीएमयू काउंटर प्रोग्रामिंग के रूप में सरल नहीं है।

एक दृष्टिकोण प्रोग्राम करने योग्य मेमोरी नियंत्रक काउंटर का उपयोग करना है जिसे पीसीआई स्पेस के माध्यम से एक्सेस किया जाता है। शुरू करने के लिए एक अच्छी जगह pcm-memory में pcm-memory.cpp पर इंटेल के अपने कार्यान्वयन की जांच करके है। यह ऐप आपको प्रति-सॉकेट या प्रति-मेमोरी-नियंत्रक थ्रूपुट दिखाता है, जो कुछ उपयोगों के लिए उपयुक्त है। विशेष रूप से, बैंडविड्थ सभी कोरों के बीच साझा किया जाता है, इसलिए एक शांत मशीन पर आप मान सकते हैं कि अधिकांश बैंडविड्थ परीक्षण के तहत प्रक्रिया से जुड़ा हुआ है, या यदि आप सॉकेट स्तर पर नजर रखना चाहते हैं तो यह वही है जो आप चाहते हैं।

दूसरा विकल्प "ऑफकोर रेस्पसन" काउंटरों के सावधानीपूर्वक प्रोग्रामिंग का उपयोग करना है। ये, जहां तक ​​मुझे पता है, एल 2 (अंतिम कोर-निजी कैश) और शेष प्रणाली के बीच यातायात से संबंधित है। आप ऑफकोर प्रतिक्रिया के परिणाम से फ़िल्टर कर सकते हैं, ताकि आप विभिन्न "एल 3 मिस" घटनाओं के संयोजन का उपयोग कर सकें और कैश लाइन आकार से गुणा कर सकें और बैंडविड्थ लिख सकें। घटनाएं काफी अच्छी तरह से दानेदार हैं, इसलिए आप इसे पहले स्थान पर पहुंचने के कारण इसे और तोड़ सकते हैं: निर्देश प्राप्त करने, डेटा मांग अनुरोध, प्रीफेचिंग इत्यादि।

ऑफकोर प्रतिक्रिया काउंटर आमतौर पर पीछे हट जाते हैं perf और likwid जैसे टूल द्वारा समर्थन, लेकिन कम से कम हाल के संस्करणों में एसकेएल जैसे क्लाइंट पार्ट्स के लिए भी उचित समर्थन प्रतीत होता है।

-2

मुझे इंटेल पीएमयू के बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि आप इंटेल वीट्यून एम्पलीफायर (https://software.intel.com/en-us/intel-vtune-amplifier-xe) का उपयोग कर सकते हैं। इस पर प्रदर्शन निगरानी (स्मृति, सीपीयू कैश, सीपीयू) के लिए बहुत सारे टूल हैं। शायद यह आपके लिए काम करेगा।

+2

वीट्यून हार्डवेयर प्रदर्शन काउंटर (यानी पीएमयू = प्रदर्शन निगरानी इकाई) का उपयोग करने के लिए एक उपकरण है। जब तक आप स्मृति बैंडविड्थ को मापने के लिए VTune प्राप्त करने के लिए * कैसे * समझा सकते हैं, यह एक उपयोगी उत्तर नहीं है। (वीट्यून एक उपयोगी उपकरण है, और कैश-मिस हॉटस्पॉट और उस तरह की चीजें खोजने में मदद कर सकता है, और स्पष्ट रूप से बस पेर्फ काउंटर रिकॉर्डिंग से परे अच्छी तरह से चला जाता है। लेकिन यह सवाल यह नहीं है कि यह सवाल पूछ रहा है।) –

4

हाँ (आईएसएच) अप्रत्यक्ष रूप से। आप अन्य नंबरों का अनुमान लगाने के लिए काउंटर (टाइम स्टाम्प समेत) के बीच संबंधों का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप 1 सेकंड अंतराल का नमूना देते हैं, और एन अंतिम-स्तर (3) कैश मिस हैं, तो आप बहुत भरोसा कर सकते हैं कि आप प्रति सेकंड एन * कैशलाइन आकार बाइट्स पर कब्जा कर रहे हैं।

यह के रूप में उन छूट जाए cpu प्रीफेचिंग, बाधा गतिविधि, आदि को प्रतिबिंबित हो सकता है, इसे ठीक ढंग से कार्यक्रम गतिविधि से संबंधित एक सा stickier हो जाता है

वहाँ भी है 'यह cpu में नहीं गिना जाता का दलदल (MMX, एसएसई, एवीएक्स, ..) जब तक यह कॉन्फ़िगर बिट इस स्थिति में नहीं है '; इस प्रकार अपना खुद का रोलिंग बोझिल है ....

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