Skip to content

Clusterer feasibility changes #1641

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 35 commits into from
Feb 27, 2021
Merged

Clusterer feasibility changes #1641

merged 35 commits into from
Feb 27, 2021

Conversation

sfkhalid
Copy link
Contributor

With the changes in this branch, the clusterer will not pack molecules together that have conflicting PartitionRegions (meaning they have different floorplanning constraints).

Description

Most changes were made in /vpr/src/pack/cluster.cpp. The following changes were made in this file:
-In do_clustering, a new check was added for whether the block failed a floorplanning feasibility check.
-In start_new_cluster, the cluster is assigned an empty PartitionRegion, and that PartitionRegion gets updated to match the seed atom, if the seed atom has its own non-empty PartitionRegion
-In try_pack_molecule a new feasibility check for floorplanning feasibility was added
-A new routine, intersect_atom_cluster_part_regions is called in try_pack_molecule to check compatibility between the atom and cluster

Related Issue

This change adds functionality needed to address the changes wanted in issue #932

@github-actions github-actions bot added the VPR VPR FPGA Placement & Routing Tool label Jan 26, 2021
@@ -164,6 +164,7 @@ enum e_block_pack_status {
BLK_PASSED,
BLK_FAILED_FEASIBLE,
BLK_FAILED_ROUTE,
BLK_FAILED_FLOORPLANNING,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

think about whether this enum can be in a lower header file. If it's only used in the clusterer, can have a cluster_utilities header file and put this enum in there. This can be a cleanup on a separate pull request

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in pack subdirectory - is there a cluster utilities type header file? check, could possibly put there

@sfkhalid
Copy link
Contributor Author

@litghost nightly has been taking a long time on this.

@litghost
Copy link
Collaborator

@litghost nightly has been taking a long time on this.

Kokoro failed to start this job correct, and it will eventually die. This is due to a kokoro bug.

@sfkhalid
Copy link
Contributor Author

@litghost Does nightly seem to be running normally here?
Also, I cleaned up my vtr working directory a lot before pushing commits to this branch again. I had a lot of files from previous reg test runs that were taking up space. I tried doing du -sh on the vtr root directory before and after the cleanup and it went from like 5G to 970M, so hopefully the working space issue doesn’t occur here, but please let me know if it does. Thanks!

@sfkhalid
Copy link
Contributor Author

@litghost It says nightly failed but I can't see anything on the invocation details. Did kokoro fail to start it properly again, or were there some QoR failures?

@sfkhalid
Copy link
Contributor Author

@litghost I started nightly again yesterday and it seems like it failed again. Are there some qor failures or other issues present?

@sfkhalid
Copy link
Contributor Author

qor_results_compare.xlsx
QoR results on this branch

@vaughnbetz
Copy link
Contributor

Please attach the QoR data. Note that the reviews by Sarah on her code were really joint reviews we did over zoom, and that she typed in. I'm happy with the code.
After merge, should look at the vtr_util::rect_union to see if it is usable for some this (basically replace/merge some of your parition_regions with rect_union).

@sfkhalid sfkhalid merged commit 4acad0f into master Feb 27, 2021
@sfkhalid sfkhalid deleted the clusterer_feasibility_changes branch February 27, 2021 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libvtrutil VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants