[APPack] Added Max Displacement Metric #2876
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added the ability to print the max displacement from the placement reconstruction to the original flat placement.
This metric will help show another dimension to the flat placement reconstruction. Generally, if the average displacement is low, that may not be good if that means that one atom is placed way farther away than where it would like. This can really hurt quality.
I also turned the distance calculation from the Euclidean distance to the Manhattan distance. This should better represent the objective in terms of FPGAs (where the fastest path between two points is not necessarily a straight line).
I reran the results of the flat placement reconstruction on MCNC and VTR-Chain (same testing procedure as the last PR).
MCNC:
VTR-Chain:
Looking at a single circuit: LU32PEEng from the VTR-Chain benchmark, with a device size of 105x105:
The units for the max atom displacement is the euclidean distance from the flat placement location to the reconstructed clustered placement. For MCNC, the devices range from 11x11 to 22x22. For VTR-Chain, the devices range from 20x20 to 105x105.
These results show a potential problem with the current (basic) reconstruction, where although the cluster errors and average displacement is quite low, we still see a very high maximum displacement! This implies that there is something wrong with how we are placing the clusters. I think the issue may be the fact that if we find that a cluster cannot be placed at the tile it wants, it falls back on the original algorithm; which may be randomly placed on the chip!
Notice, for the LU32PEEng circuit, the largest distance possible on the device is 210. We can see that the current reconstruction is sometimes placing atoms (a few of them) all the way on the other side of the chip!