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

Turn on choke point analysis in the router by default, and make help etc. more user-friendly #2750

Open
5 tasks
vaughnbetz opened this issue Sep 27, 2024 · 2 comments
Assignees

Comments

@vaughnbetz
Copy link
Contributor

Many architectures need choke point analysis to be on to converge when flat routing is selected. Right now users have to turn this on themselves, which makes flat routing harder to use. We should turn this option on by default (only flat routing will be affected) and we should improve its help and add it to the command line documentation.

Proposed Behaviour

route_grp.add_argument(args.has_choking_spot, “–has_choking_spot”)
Rename to –router_opt_choke_points
New help: Some FPGA architectures with limited fan-out options within a cluster (e.g. fracturable LUTs with shared pins) do not converge well in routing unless these fan-out choke points are discovered and optimized for during net routing. This option helps router convergence for such architectures.
Default: On (turns off for non-flat) (measure downside)
Other values on / off.

Current Behaviour

Not on by default, and the name isn't great. Also not in the VTR documentation. It does have a CPU time hit: 11% total VTR time and 27% memory footprint on Titan to turn this on for the SIV architecture (which doesn't need it). But now the flagship architecture will route by default.

Possible Solution

  • Rename to --router_opt_choke_points
  • Turn on by default
  • Update help to "Some FPGA architectures with limited fan-out options within a cluster (e.g. fracturable LUTs with shared pins) do not converge well in routing unless these fan-out choke points are discovered and optimized for during net routing. This option helps router convergence for such architectures. Turning it off when you know an architecture has no choke points will save cpu time with flat routing as the necessary data structures will not be built."
  • Add to VTR documentation.
  • Try to optimize the memory footprint and run time (not gating; can merge the other items first)

Context

QuickLogic (and others) have found flat routing doesn't converge when they first run it. This will make it easier to use.

@duck2 @ganeshgore

@fkosar-ql
Copy link
Contributor

Just checked with vtr_reg_strong and setting choke point analysis to true seems to fix all routing failures with the flat router

@vaughnb-cerebras
Copy link

Yaay! Amin is going to turn it on by default.

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

4 participants