Skip to content

Latest commit

 

History

History
46 lines (29 loc) · 2.12 KB

README.md

File metadata and controls

46 lines (29 loc) · 2.12 KB

An effort to test various annealers for nextpnr


NextPNR hyperparam optimization

Running the tunner is simple, just prepend one: MANGO

  • The goal of tunner is to significantly shorten the time to explore the best parameters given a configuration space.
  • The tunner will find near the best one in orders of magnitude shorter time compared to exhaustive brute force.

Available annelars for nextpnr are in tunners:

Tunner MultiAlgo Parallel
Mango N Y
HyperActive Y N
Optuna Y N
HyperOpt Y N

The brute force experiment

Given a configuration space expensive but complete brute force exploration can be done:

  • 0-explore-brute.sh will explore the space (will take some time)
  • 1-parse-results.sh will aggregate log results into a JSON file
  • 2-graph-results.sh will display histogram occurences of yielded clock speeds
Experiment Image1 Image2
MARLANN Default: 28.21 Mhz Default: 96.79 Mhz
PicoRV32 Default: 89.79 Mhz

Future goal (WiP)

Given parameter space:

  • track early features extracted from several nexpnr startups
  • encode early features in metric measurable feature vectors
  • generate a cost model (xgboost) in TVM autotune fashion
  • try fit/estimate/predict out from learned model the best set