Skip to content

Fix fixed clusters issue #2495

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

Merged
merged 21 commits into from
Jun 28, 2024
Merged

Fix fixed clusters issue #2495

merged 21 commits into from
Jun 28, 2024

Conversation

soheilshahrouz
Copy link
Contributor

Description

When a large number of clustered blocks are fixed, placement takes a very long time. This is because for picking a random block, we exhaust all blocks until we find a movable block. If most clustered blocks are fixed, it would take a long time to exhaust fixed blocks by random selection. This PR stores movable blocks in a vtr::vector so that a movable random block can be selected more quickly. It also makes reading the placement file more robust.

Related Issue

Issue 2484

How Has This Been Tested?

Types of changes

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

@github-actions github-actions bot added VPR VPR FPGA Placement & Routing Tool lang-cpp C/C++ code labels Feb 27, 2024
@soheilshahrouz
Copy link
Contributor Author

Link to QoR results for Titan benchmarks. They are the same as master.

@vaughnbetz
Copy link
Contributor

  1. @soheilshahrouz tells me there is a bug to fix.
  2. Please add a comparison to master (normalize results to master)
  3. Check runtime / QoR on the original issue and summarize the result.

@github-actions github-actions bot added the libarchfpga Library for handling FPGA Architecture descriptions label Apr 17, 2024
@soheilshahrouz
Copy link
Contributor Author

@vaughnbetz
I applied your comments. Ready for review.

@vaughnbetz
Copy link
Contributor

Please summarize the relative runtime, cpd, wirelength etc. of the master vs. this fix.
Please run the original issue and post the new runtime.
I also have a few suggestions on the code; happy to have a zoom meeting if you'd like to discuss.

@soheilshahrouz
Copy link
Contributor Author

branch Place time Place WL Place CPD
this PR 0.992 1.00 1.00
master 1.000 1.00 1.00

@vaughnbetz
Copy link
Contributor

Issue runtime: was a few days, now is less than 5 min so it is fixed.

@vaughnbetz
Copy link
Contributor

@soheilshahrouz : need to resolve a conflict.

@vaughnbetz
Copy link
Contributor

Looks like many seg faults in CI.

@soheilshahrouz
Copy link
Contributor Author

@vaughnbetz
CI failures are gone now. The issue was that move generators needed to be crated after initial placement, where movable block are determined, but merging master into this branch reversed the order.

@vaughnbetz vaughnbetz merged commit 5c40446 into master Jun 28, 2024
53 checks passed
@vaughnbetz vaughnbetz deleted the fix_fixed_clusters_issue branch June 28, 2024 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lang-cpp C/C++ code libarchfpga Library for handling FPGA Architecture descriptions VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants