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

RFC: Creating a synthesis or PnR benchmark #48

Open
TheProgrammerIncarnate opened this issue Apr 25, 2020 · 3 comments
Open

RFC: Creating a synthesis or PnR benchmark #48

TheProgrammerIncarnate opened this issue Apr 25, 2020 · 3 comments

Comments

@TheProgrammerIncarnate
Copy link

Ian Cutress has expressed interest in adding something FPGA-related to his CPU benchmarking suite. Here's my idea: benchmark the PnR step of the design using a frozen version of NextPnR, a pre-synthesised design(s), and a constant seed. Would that be enough to ensure the execution workload is equal across different platforms? Also, any recommendations on which designs from yosys-bench to use? Dr Cutress said he would like a benchmark that takes 30 minutes or less on a quad-core machine. I'm planning on running a Boom core or a LiteX SoC design through to see how long it takes next time I get a chance to.

@mithro
Copy link
Contributor

mithro commented Apr 26, 2020

We have a https://github.com/SymbiFlow/fpga-tool-perf which is a tool for understanding the performance of various toolchains, where performance means multiple things;

  • If a benchmark actually works
  • The resulting highest fmax achievable for the design
  • Resources taken (like CPU + memory) to produce the bitstream
  • etc

The focus is on real world designs (for example LiteX SoCs, PicoSoC and OpenTitan) that people are using rather than synthetic benchmarks and wants to make sure that the output result could be usable.

We have a Google doc at https://j.mp/fpga-tool-perf-spec which includes various information about what we are targetting. Currently it is mostly targeted at the Xilinx 7 series as that is the flow we have the most options to compare around (We have 3 options for place around! Vivado, nextpnr and vpr!).

It would be nice to have support for ECP5, iCE40 and anything else in the future too but they are not a high priority.

GitHub
FPGA tool performance profiling. Contribute to SymbiFlow/fpga-tool-perf development by creating an account on GitHub.
Google Docs
SymbiFlow FPGA Tool Performance (for Xilinx Devices) This doc → https://j.mp/fpga-tool-perf-spec GitHub repo → https://github.com/SymbiFlow/fpga-tool-perf Modes Fixed fmax -- Looking at run time and memory usage Find fastest fmax -- Try and find the fastest possible Toolchains Synthe...

@mithro
Copy link
Contributor

mithro commented Apr 26, 2020

@TheProgrammerIncarnate
Copy link
Author

Sweet! Thanks for the resources. Didn't know some of this stuff already existed.

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