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

Optimize run time and memory footprint to build the choke point data structures in routing #2782

Open
vaughnbetz opened this issue Oct 18, 2024 · 0 comments
Assignees

Comments

@vaughnbetz
Copy link
Contributor

We turned router_opt_choke_points on by default so flat routing will converge reliably on various architectures. That makes it important to optimize the data structure memory overhead and runtime for the relevant data structures, which are built from the rr-graph once the design placement is known (hence they are large -- there are some for every used cluster).

Possibly you could flyweight this, but it would be complex (need to check if you have exactly the same cluster & net combination) and my suspicion is there won't be that many identical copies.

Probably a better approach would be to separate the cross product of nets x clusters data structure into one per net and one per cluster, if at all possible. It would be good to check the scaling behaviour with design size of the current code -- is it linear in runtime and memory footprint? If anything is O(n^2) that would be high priority to fix. Please post the per-circuit runtime increase and memory increase with this option on for the Titan designs; that should help us see the scaling.

Relevant PR is #2777

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