- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using Intel PCM to sample the number of retired instructions every two seconds:
pcmState_prev = pcmState_curr; pcmState_curr = getSystemCounterState(); m_committed_instructions = getInstructionsRetired(pcmState_prev,pcmState_curr);
This usually works well with values ranging from 1e+8 and 1e+10 committed instructions per second on Haswell (i7-4790 CPU @ 3.60GHz). Every few hours I would get a sample with around 9e+18 committed instructions per second. Am I using the interface incorrectly? Thanks!
Tomer.
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just what worshippers of instructions per clock need!
Maybe a timer wraparound problem?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I wouldn't mind having 9e+18 IPS :-)
I suspect a wraparound problem in PCM or the counter itself. I added an assertion on m_committed_instructions right after the PCM call and caught it, even before I divided by the duration of the sample.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page