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

Dashboard Python Notebook #10

Closed
HackerFoo opened this issue Jul 23, 2020 · 5 comments
Closed

Dashboard Python Notebook #10

HackerFoo opened this issue Jul 23, 2020 · 5 comments

Comments

@HackerFoo
Copy link

HackerFoo commented Jul 23, 2020

Create a notebook that gives a general overview of the trends in fpga-tool-perf that pulls the list of evaluations from Hydra.

  1. Graphs for most important metrics in comparison to configurable baseline
    • Runtime
      • Place
      • Route
      • Total
    • Critical path delay (CPD)
    • Wirelength
    • Maximum memory use
  2. Make it easy to identify regressions
    • Aggregation should not hide large changes, give appropriate weight e.g. a 25% increase in runtime means more for a longer running test
  3. The most important information should fit on one screen, with more information below or in links.

This should be easy to automate. It would be nice to also manually attach notes to explain changes.

@TypingKoala
Copy link
Collaborator

@HackerFoo I'm having problems finding where to get the CPD, wirelength, and maximum memory use of each build in Hydra. It doesn't seem to be in the meta.json of any builds. You previously mentioned something about finding it in the log, but I still couldn't find it.

@HackerFoo
Copy link
Author

HackerFoo commented Aug 10, 2020

For VPR, it's in route.log.

Here's an example with the data in bold:

Number of global nets: 0
Number of routed nets (nonglobal): 16332
Wire length results (in units of 1 clb segments)...
	Total wirelength: 964295, average net length: 59.0433
	Maximum net length: 61343

...

Intra-domain critical path delays (CPDs):
  sys_clk to sys_clk CPD: 17.7211 ns (56.43 MHz)
  clk200_clk to clk200_clk CPD: 5.03484 ns (198.616 MHz)

Inter-domain critical path delays (CPDs):

Intra-domain worst setup slacks per constraint:
  sys_clk to sys_clk worst setup slack: -1.05506 ns
  clk200_clk to clk200_clk worst setup slack: -0.034837 ns

Inter-domain worst setup slacks per constraint:

Geometric mean non-virtual intra-domain period: 9.44577 ns (105.867 MHz)
Fanout-weighted geomean non-virtual intra-domain period: 0.26595 ns (3760.11 MHz)

Timing analysis took 6.30376 seconds (5.63628 STA, 0.667476 slack) (16 full updates: 0 setup, 0 hold, 16 combined).
VPR suceeded
The entire flow of VPR took 575.44 seconds (max_rss 3479.8 MiB)

fpga-tool-perf may need to be modified to collect these, so you may need to work with @acomodi. CPD should be the inverse of fmax.

@TypingKoala
Copy link
Collaborator

PR #217 has been merged into fpga-tool-perf to add these metrics to the meta.json file output in Hydra, which will allow FTPVL to be able to read and visualize the metrics. Future builds will presumably have those metrics included, and hopefully we will have a proof of concept that includes all of them.

@TypingKoala
Copy link
Collaborator

This Colab notebook is the proof-of-concept design of the Symbiflow dashboard that will close this issue. It can be run as an entire notebook and will generate visualizations that allow users to compare performance between evaluations and determine where any regressions occurred.

@HackerFoo
Copy link
Author

@TypingKoala Looks good, thanks!

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

No branches or pull requests

2 participants