Skip to content

Configuration post-processing feature #152

@qnbhd

Description

@qnbhd

OpenTuner finds good configurations, but they include many parameters and some of them may be redundant. It would be good to know which parameters in final configuration are crucial and which do not have much impact on the objective function.

There are 2 potential users:

  1. Developers optimizing SW will be able to identify the most important parameters, and eliminate inefficient and unstable parameters. This helps to reduce number of parameters and thus length of command-line, dependency on SW features (e.g. less internal compiler optimization flags), potentially making optimal configuration more stable and more widely applicable (e.g. less internal flags, more compiler versions supported).
  2. Compiler developers evaluate impact of specific compiler optimizations and improve compiler source code if behaviour is unexpected

Example:

configuration = {a=1, b=2, c=3, d=4, e=0}, time=10.0, id=1

The current proposal is to include an OpenTuner technique which performs various measurements of subset of configuration and tracks regressions/improvements, effectively finding the best and the shortest configuration.

{a=1, b=2, c=3, d=4}, id=2, time=10.0,  # -e from orig
{a=1, b=2, c=3, e=0}, id=5, time=11.5,  # -d from orig
...
{a=1, b=2, d=4}, id=9, time=9 # -e from id=2
{a=1, d=4}, id=10, time=11
{a=1, b=2}, id=11, time=12
...
{a=1}, id=12, time=13

Report

Post-processing detects and removes negligible parameters from original configuration, and score may even improve. First output shows new configuration with best result (better or within threshold = coeff of variation).

Original cfg: {a=1, b=2, c=3, d=4, e=0}, time=10.0
New best cfg: {a=1, b=2, d=4}, time=9.0

Next table shows impact of parameters. First row shows new best configuration. Each next rows shows result after removal of next parameter with smallest (precise or estimated) penalty.

Id Score Penalty Best Reduced option(s) Penalty on best
*7 9 n/a 0.0%
8 11 22.2% 22.2% b 22.2%
11 13 18.2% 44.4% d 33.3%
13 20 53.8% 122.2% a 44.4%

Columns:

  • Id - configuration id, asterisk highlights the best config
  • Score - result (objective function outcome)
  • Penalty - impact of parameter (relation between current score and prev score)
  • To Best - relation between current score and the best score
  • Parameter - parameter which is dropped from previous configuration (row above)
  • Penalty on Best - penalty if parameter removed from the best configuration, useful as initial quick estimate of impact

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions