Font Size: a A A

Profile merging and code versioning for automated profile guided optimization systems

Posted on:2008-10-17Degree:M.SType:Thesis
University:University of Colorado at BoulderCandidate:Saxena, RahulFull Text:PDF
GTID:2441390005474843Subject:Engineering
Abstract/Summary:PDF Full Text Request
Traditional Profile Guided Optimization (PGO) schemes require developers to manually select profiles which are representative of typical program execution scenarios. Most profile merge algorithms used in PGO schemes employ a weighted averaging scheme to accumulate profile data into a composite (merged) profile. However, such simple additive schemes have been shown to degrade the effectiveness of profile information. Profile degradation manifests in edge profiles in form of dilution of branch biases.; The proposed profile merge algorithm satisfies these criteria by resolving merge conflicts in branch biases by examining factors such as (i) predictability of branch bias; (ii) branch weight; and (iii) repetitiveness of execution runs. These heuristics help to more accurately favor the behavior of typical execution scenarios. The algorithm is conservative while selecting biases when bias information from different profiles are conflicting. Profiles are compared against each other to statistically determine the similarity between them. Such a classification is used to determine the frequency of input execution and effectively reduce the amount of profile storage required.; The use of heuristics to classify profiles also has the side effect of identifying scenarios where the benefit of favoring one bias can cause potentially severe performance regressions while executing inputs which exhibit the conflicting biases. Profiles which exhibit such conflicts are more suited as candidates for code versioning.; It is hypothesized that the proposed merge algorithm can improve the quality of a composite profile by maximizing performance gain across input data sets while minimizing regressions for individual runs. The merge algorithm has been implemented in conjunction with the PGO framework present with the GNU gcc compiler and performance is evaluated. Ongoing work focuses on evaluating the effectiveness of merge heuristics as compared to additive merge schemes. Future work will evaluate the effectiveness of applying the concept of profile similarity to enable code specialization (versioning) for Run-time Environments.
Keywords/Search Tags:Profile, Versioning, Code, PGO, Schemes, Execution
PDF Full Text Request
Related items