Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement support for Vizier in AutoTuner #2428

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

eszpotanski
Copy link
Contributor

@eszpotanski eszpotanski commented Oct 7, 2024

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 #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

@maliberty maliberty requested a review from luarss October 7, 2024 16:50
@maliberty maliberty added the autotuner Flow autotuner label Oct 7, 2024
@luarss luarss requested a review from vvbandeira October 8, 2024 01:14
@eszpotanski eszpotanski force-pushed the autotune-vizier branch 5 times, most recently from 5645d0f to d62adf3 Compare October 17, 2024 11:30
@eszpotanski
Copy link
Contributor Author

Unrelated CI fail - the same as on the master branch

@eszpotanski
Copy link
Contributor Author

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

@luarss
Copy link
Contributor

luarss commented Oct 19, 2024

@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?

@eszpotanski
Copy link
Contributor Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autotuner Flow autotuner
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants