Running the tunner is simple, just prepend one:
- 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 |
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 file2-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 |
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