|
|
Profile Merging and Code Versioning for Automated Profile Guided Optimization Systems
Rahul Saxena.
M.S. Thesis, Department of Electrical and Computer Engineering, University of Colorado.
May,
2007.
|
Traditional Profile Guided Optimization schemes (PGO) require developers to
manually select profiles which are representative of typical program executions, in order
to optimize the final release binary. Most profile merge algorithms use a weighted av-
eraging scheme to accumulate profile data into a composite (merged) profile. However,
such simple additive schemes have been shown (Wang et. al) to degrade the effective-
ness of profile information by diluting branch biases. The requirement of an accurate
merge algorithm becomes all the more important in the context of Managed Run-time
Environments (MRTE). Within such systems PGO schemes are required to be deployed
on client machines and have to function automatically and transparently to user inter-
vention. To address these criteria, we propose a detailed merge heuristic which resolves
conflicts in branch by examining factors such as predictability of branch bias and branch
weight. This algorithm is conservative on branch bias when bias information from dif-
ferent profiles are conflicting. The algorithm also takes into account the repetitiveness
of execution runs to more accurately favor the behavior of typical execution scenarios.
We hypothesize that our proposed merge algorithm can improve the quality of a com-
posite profile by maximizing performance gain across input data sets while minimizing
regressions for individual runs. We are currently in the process of implementing the
proposed merge algorithm and ongoing work will focus on evaluating its performance
benefit as compared to traditional schemes.
|
| [ PDF ] |
|