OpenROAD-flow-scripts icon indicating copy to clipboard operation
OpenROAD-flow-scripts copied to clipboard

Implement support for Vizier in AutoTuner

Open eszpotanski opened this issue 1 year ago • 5 comments

This PR extends AutoTuner with a support for Vizier and a few of its multi-objective optimization algorithms. Which are better at finding valid parameters for hard-to-built designs.

It is based on https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/2487

Dependencies were separated into:

  • tools/AutoTuner[ray] - for Ray Tune,
  • tools/AutoTuner[vizier] - for Vizier.

Vizier and Ray Tune uses the same configuration scheme, but instead of combining metrics into one value, Vizier looks for non-dominated results (list of metrics). Apart from default metrics (like total_power, worst_slack or final_util), a additional few had been added:

  • clk_period-worst_slack - the difference between clock period and worst slack,
  • last_successful_stage - artificial metric representing a number of the latest stage that was successfully build (help to find valid parameters),
  • core_util - when floorplan fails (usually due to too large CORE_UTILIZATION), core_util metric is multiplied by -1 to indicate that it should be smaller (helps to successfully built floorplan).

Metrics can be chosen with -m or --use-metrics argument.

To speed up the optimization process, --to-stage argument was implemented, which chooses stage (and its dependencies) that will be built. It's useful for user interested only in results from e.g. placement. --to-stage works for both Ray Tune and Vizier.

Instructions for preparing and running AutoTuner, as well as described arguments, can be found in InstructionsForAutoTuner.md

eszpotanski avatar Oct 07 '24 14:10 eszpotanski

Unrelated CI fail - the same as on the master branch

eszpotanski avatar Oct 18 '24 10:10 eszpotanski

@luarss Did you have a moment to take a look at this PR?

eszpotanski avatar Oct 18 '24 10:10 eszpotanski

@luarss Did you have a moment to take a look at this PR?

@eszpotanski Yes, refactoring is a high priority item for AutoTuner as well. This is next after the smoke tests are merged.

Also, could you possibly split this into 2 PRs - refactoring and new feature?

luarss avatar Oct 19 '24 02:10 luarss

Also, could you possibly split this into 2 PRs - refactoring and new feature?

@luarss Sure, I opened #2487 with the code refactor and rebased this PR on top of it

eszpotanski avatar Oct 21 '24 19:10 eszpotanski

@luarss @vvbandeira As #2487 was merged, I rebased this PR and it's ready to review

eszpotanski avatar Jan 30 '25 18:01 eszpotanski