2012-11-15 17 views
6

क्या कोई तरीका है कि मैं प्रत्येक कोर प्रोग्रामेटिक के लिए हार्डवेयर इंटेल तक पहुंच सकता हूं? (यानी, perf, perfmon, या valgrind, और मुझे "सरल" जोड़ना चाहिए, इसलिए PAPI, उदाहरण के लिए) मैं जानना चाहता हूं (प्रत्येक कोर के लिए) कितने एल 1-एलएलसी कैश हिट/मिस करता है (= ए उस कोर पर चल रहे कुछ प्रोग्राम) में शामिल हैं। यह लिनक्स 3.2.0-32, सी, और जीसीसी का उपयोग करने के लिए है।सरल कैश प्रोफाइलिंग API

+0

एलटीटीएनजी (लिनक्स ट्रेस टूलकिट अगली पीढ़ी) का उपयोग लिनक्स में हार्डवेयर, ड्राइवर और बाइनरी रिवर्स इंजीनियरिंग के ट्रेसिंग के लिए किया जाता है। यह समझने के लिए कि आप हार्डवेयर रजिस्टरों तक कैसे पहुंचते हैं, आप इसका स्रोत कोड देख सकते हैं। –

+0

मुझे लगता है कि इंटेल फ़ोरम आपको इस संबंध में बेहतर मार्गदर्शन करने में सक्षम होंगे। – askmish

उत्तर

1

प्रोसेसर में प्रदर्शन काउंटर को "उपयोगकर्ता-मोड" कोड से नहीं पढ़ा जा सकता है, इसलिए आपको ऐसा करने के लिए कुछ प्रकार के कर्नेल मॉड्यूल की आवश्यकता है। एक बार आपके पास यह हो जाने के बाद, यह बहुत कठिन नहीं है, कई एमएसआर हैं।

आप शायद कर्नेल मॉड्यूल के बिना मान पढ़ने के लिए/dev/cpu/core-number/msr का भी उपयोग कर सकते हैं।

आप यह कैसे करते हैं इसके सभी विवरणों का वर्णन करने के लिए उत्तर के लिए थोड़ा अधिक है (जब तक कि मैं इंटेल के प्रोग्रामर मैनुअल (वॉल्यू 3) के पूरे अनुभाग को कॉपी नहीं करता - जो मुझे नहीं लगता कि काफी कुछ है हम यहां चाहते हैं ...)

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