1 / 19

Taming Hardware Event Samples for FDO Compilation

Taming Hardware Event Samples for FDO Compilation. Dehao Chen ( Tsinghua University) Neil Vachharajani , Robert Hundt , Shih- wei Liao (Google) Vinodha Ramasamy Paul Yuan (Peking University) Wenguang Chen, Weimin Zheng ( Tsinghua University). Why FDO?.

amma
Download Presentation

Taming Hardware Event Samples for FDO Compilation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Taming Hardware Event Samples for FDO Compilation Dehao Chen (Tsinghua University) Neil Vachharajani, Robert Hundt, Shih-wei Liao (Google) VinodhaRamasamy Paul Yuan (Peking University) Wenguang Chen, WeiminZheng (Tsinghua University)

  2. Why FDO? • Feedback Directed Optimization • Performance Improvements • 5% speedup on SPEC2000 INT • Small? Huge for millions of computers • Not widely adopted

  3. Instrumentation based FDO 1 3 FDO optimized binary gcc –fprofile-generate … gcc –fprofile-use … Instrumented Binary 2 Run the instrumented binary .gcda files • Have to build twice • Instrumentation run is slow • Need representative input • Perturbs execution Representative Workload

  4. Sample based FDO 1 FDO optimized binary gcc –O2 -g … gcc –fsample-profile … Normal Binary Profile Data Running Environment Profiling Tools (Oprofile, Pfmon) • 1.Previous deployment/test binary to collect profile • 2.Profiling input: real traffic • 3.Profiling does not perturb code Real-World Workload

  5. PMU Sampling • Performance monitoring unit (PMU) • Captures events generated by CPU  • cache miss • instruction retired • clock tick • Configurable counters increment on selected events • Optional interrupt on counter overflow • Sampling • On interrupt capture instruction pointer (IP) • Can also sample other state • registers • other PMU counters

  6. Sampling Instructions Retired Instruction Samples 1499 0x76a1f4 1517 0x76a48a 1498 0x76aea1 1527 0x76c09d 1 0x77e3cf 733 0x77ee7e 1242 0x78109d Symbolized Samples 0x76a1f4 : 1499 foo.c:1183 0x76a48a : 1517 foo.c:992 0x76aea1 : 1489 foo.c:906 0x76c09d : 1527 foo.h: 1821 0x77e3cf : 1 bar.c:3481 0x77ee7e : 733 bar.c 4759 0x78109d : 1242 bar.c 4762 Symbolizer 0 foo.c:853 3006 1499 foo.c:906 foo.c:992 foo.c:1183 GCC 0 foo.c:1325

  7. Sampling Instructions Retired Instruction Samples 1499 0x76a1f4 1517 0x76a48a 1498 0x76aea1 1527 0x76c09d 1 0x77e3cf 733 0x77ee7e 1242 0x78109d Symbolized Samples 0x76a1f4 : 1499 foo.c:1183 0x76a48a : 1517 foo.c:992 0x76aea1 : 1489 foo.c:906 0x76c09d : 1527 foo.h: 1821 0x77e3cf : 1 bar.c:3481 0x77ee7e : 733 bar.c 4759 0x78109d : 1242 bar.c 4762 Symbolizer 4505 foo.c:853 3006 1499 3006 1499 foo.c:906 foo.c:992 foo.c:1183 GCC 3006 1499 4505 [Levin et.al. Complementing Missing and Inaccurate Profiling using a Minimum Cost Circulation Algorithm. HIPEAC’08] foo.c:1325

  8. Accuracy Challenge

  9. Accuracy Challenge

  10. Accuracy Challenge

  11. Improving the Accuracy • Flow Consistency • Use Minimum Cost Circulation Algorithm • Control flow  Network flow • Predict Aggregation/Shadow Effect • Sampling Multiple Events • Using the prediction to adjust the frequency

  12. Source Source Branch: 7954 6873 6873 32 32 Taken: 7922 6905 6905 Join: 1049 6905 32 7954 7922 6873+32 1049 7922 0 7922 Sink 1049 Sink [Levin et.al. Complementing Missing and Inaccurate Profiling using a Minimum Cost Circulation Algorithm. HIPEAC’08]

  13. Use Prediction to Adjust Profile • Cost Function in MCC • Each basic block is attached by two edges • Forward (flow represents increasing the count) • Backward (flow represents decreasing the count) • Cost function for each edge • Larger cost means prevent changing in this direction • Using the prediction • Over-sampled: high cost on forward edge • Under-sampled: high cost on backward edge BB1’ Forward Edge Backward Edge BB1’’

  14. Predict Aggregation/Shadow • Model Aggregation Effects • Long latency instructions • Sample major long latency events • Branch Mispredict, Cache/DTLB Miss, etc • Estimate the stalls these events will cause • Skid has little influence on long latency events

  15. Predict Aggregation/Shadow • Model Shadow Effects • CPU_CORE_CYCLES event • Time based sampling • Skid will only shift the profile • CPU_CYCLE – INST_RETIRED Stalled Cycle (with skid) • Each stalled cycle will set a shadow area • Aggregation and Shadow co-exist • Heuristic to check which one dominates

  16. Evaluation: Accuracy

  17. Evaluation: Performance

  18. Conclusion and Future Work • Sampling based FDO is promising • The artifacts in PMU data can be compensated for with appropriate understanding and heuristics, which improves the accuracy by 6% • Sample based Value Profiling • Future: Last Branch RegisterMore precise edge profile at binary level • Sample based LIPO

  19. Questions?

More Related