- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Regards, Peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Kent,
Let me clarify more -
1) Event BR_INST_RETIRED.MISPRED is for Atom processors, and other Core processors
2) However event RESOURCE_STALL.BR_MISS_CLEAR is for Core processors ONLY
3) To measure the performance impact of the branch mispredictions use the event RESOURCE_STALLS.BR_MISS_CLEAR on Core platform
4) To know branch misprediction ratio, use:
BR_INST_RETIRED.MISPRED / BR_INST_RETIRED.ANY
Regards, Peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes. You cannot compare RESOURCE_STALL.BR_MISS_CLEAR count on Core CPU with BR_INST_RETIRED.MISPRED count directory.Thinking if instruction was prefetched from BTB (Branch Target Buffer), decoded, executed, result was saved into write-buffer, finallyfound that instructionin branchwas mis-predicted. So should redo allof works, it depends on instruction's complexity - so penalty is hard tobe estimated.
BR_INST_RETIRED.MISPRED / INST_RETIRED.ANY gives out mispredication rate. Developers have to reduce such case, use this tool to detect then change branch order in code (if-else-if-, switch, etc), or use Intel C++ compiler's PGO option.
RESOURCE_STALLS.BR_MISS_CLEAR gives out real penalty in cycles. Unfortunately Atom doesn't support on this.
Regards, Peter
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page