150 likes | 250 Views
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
E N D
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 • Similar problem as finding patterns in strings • Or search for DNA sequences • Adaptive cache reconfiguration • Identification of the configuration change • Reducing energy consumption
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
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
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)
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
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
Experiments • Offline analysis ranges from a few minutes (40MB) to hours (GB trace)
Experiments (cont.)Coverage : Adaptive Cache Reconfiguration Basic blocks signature is a set of datamisses
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
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