1 / 16

Input-sensitivity Develop a greedy algorithm to select representative code variants

Study the correlation among inputs dimensions and develop a greedy algorithm to select representative code variants. Explore the root cause of sensitivity and determine how to mitigate it. Select the best code variants for new inputs using ML-based prediction or analytical models.

gerardwest
Download Presentation

Input-sensitivity Develop a greedy algorithm to select representative code variants

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. Input sensitivity Study • Input-sensitivity • Develop a greedy algorithm to select representative code variants

  2. Overall results

  3. Overall results

  4. Overall results

  5. Code variant sensitivity

  6. What can we do? • Study the correlation among inputs dimensions? • D=10 • There are 2^10 combination of dimensions • Which to study? • What is the purpose? • PCA? Feature selection?, etc • Or clustering and slicing?

  7. What can we do? • Study the root cause of sensitivity • Why 1 code variant is much faster on certain inputs but slower on others? • How to get rid of such sensitivity? • Does ICC PGO help with multiple data sets? • Or, instead, we need high-level solution?

  8. What can we do? • Given a new input, select the best code variants • ML-based Prediction • Classification: SVM, Decision tree, Clustering • Analytical model: • Linear regression • Or combined?

  9. Select between 2 code variants

  10. Code variant selection (1) • Greedy • If a code variant’s performance on input I is within 3% (P) to the best performance achieved by all code variants, consider it is the best • Select per-input best code variant which covers most inputs at each step • Perfect (greedy) • P is 0%, always the best performance • Perfect (true) • Pick the per-input best always • 11.7% across 1000 inputs

  11. Code variant selection (2)

  12. Code variant selection (3) • Observations • Different code variants performs best for different subsets of inputs (input sensitivity) • 3 or 4 code variants are sufficient to harvest most performance benefit (code representativeness)

  13. Code variant and critical flags • Observations • Code variants selected in order: 89, 13, 64, 66

  14. Code variant and Inputs

  15. Discussion • What is the goal to do such ad-hoc analysis? • If our goal is prediction with machine learning techniques, we should try decision tree, neural networks, etc • If our goal is prediction with analytical modeling techniques, what could be the target of such models? • Performance modeling: predict duration of a run with input parameters • Or, we can use information derived from analytical models to improve machine learning. • The greedy algorithm could be the target

  16. Plan • Continue study Kripke • More analysis (Analytical approach) • Uni-variate and multi-variate analysis on inputs • Per-code variant analysis • Develop prediction model (ML approach)

More Related