1 / 15

An Offline Approach for Whole-Program Paths Analysis using Suffix Arrays

An Offline Approach for Whole-Program Paths Analysis using Suffix Arrays. G. Pokam, F. Bodin. Introduction. Many optimizations/program analysis rely on control flow information The more accurate the better Trace analysis to identify hot sub-paths

gilda
Download Presentation

An Offline Approach for Whole-Program Paths Analysis using Suffix Arrays

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. An Offline Approach for Whole-Program Paths Analysis using Suffix Arrays G. Pokam, F. Bodin

  2. Introduction • Many optimizations/program analysis rely on control flow information • The more accurate the better • Trace analysis to identify hot sub-paths • Similar problem as finding patterns in strings • Or search for DNA sequences • Adaptive cache reconfiguration • Identification of the configuration change • Reducing energy consumption

  3. Whole Program Path Analysis • Embedded systems • No mechanism for run-time monitoring • Offline analysis • Interprocedural analysis • Phase detection • Consider a signature for each basic block • Cache misses, ILP, static cycles (VLIW), … • What happens between hot sub-paths • How are the hot sub-paths interleaved

  4. Example

  5. Main steps • Reduce the potential size of the trace • Keep only representative basic block • Instrument the code to get the BB signature • Run the program • Compute the hot sub-paths • Find the repeating patterns • Exploit the sub-paths information • Insertion of cache configuration instruction

  6. Reducing the size of the trace • Keep only a subset of the basic blocks • Use strong regions [Ball93] • Don’t keep iterations of simple loops • Keep only control condition basic blocks (lossy)

  7. Suffix Arrays • Karp Miller and Rosenberg algorithm • Complexity is low Log(N) iteration, N the length of the trace • Memory space used is linear to the size of the trace • Can be used to • Find the longest repeated sub-path • Find the n-length repeated sub-path of BBWS • Determine the frequency of each sub-path • Identify the position of each instance of a sub-path

  8. Suffix Arrays

  9. KMR Algorithm

  10. Characterizing the Hot Sub-Paths • Three metrics • Local Coverage: how long does a sub-path last • Global Coverage: how representative a sub-path is • Reuse Distance: dispersion in the trace

  11. Experiments • Offline analysis ranges from a few minutes (40MB) to hours (GB trace)

  12. Experiments (cont.)Trace Compression

  13. Experiments (cont.)Coverage : Adaptive Cache Reconfiguration Basic blocks signature is a set of datamisses

  14. Conclusion • Suffix arrays are an efficient tool to deal with traces • Accurate description of the sub-paths sequences • But the CFG has to be simplified • Has been used to dynamically adapt the cache configuration for reducing energy consumption

  15. Future Works • Convert hot sub path in speculative threads • System on chip • Identification of computation to migrate on co-processors • More trace compression technique • Abstraction of the control flow

More Related