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

[RWRoute] Yet more cleanup #1107

Merged
merged 107 commits into from
Nov 19, 2024
Merged

[RWRoute] Yet more cleanup #1107

merged 107 commits into from
Nov 19, 2024

Conversation

eddieh-xlnx
Copy link
Collaborator

@eddieh-xlnx eddieh-xlnx commented Nov 18, 2024

(repeat of #1072)

  • RouteNode reduced from 80 bytes to 64 bytes
  • RouteNodeGraph.{preservedMap,nodesMap} (no longer ConcurrentHashMap-s) values' to be arrays to be sized no larger than number of base wires of its tile
  • SLR crossing optimizations and distance computation fixes
  • Mark dead-end nodes (i.e. those without children) with the new RouteNodeType.INACCESSIBLE to prevent unnecessary exploration
  • Various other optimizations

Results for just the RWRoute wall time and the number of nodes it popped, for the FPGA24 Routing Contest benchmarks.

Before (master @ 9cd25a6)
+--------------------------------+------+---------------+--------------+
| Benchmark                      | Pass | RWRoute (sec) | Nodes Popped |
+--------------------------------+------+---------------+--------------+
| logicnets_jscl_rwroute         | True |         39.73 |     55611142 |
| boom_med_pb_rwroute            | True |        244.56 |    250431531 |
| vtr_mcml_rwroute               | True |        238.97 |    319777647 |
| rosetta_fd_rwroute             | True |        143.65 |    189200371 |
| corundum_25g_rwroute           | True |        225.74 |    267832074 |
| finn_radioml_rwroute           | True |         93.82 |    115969076 |
| vtr_lu64peeng_rwroute          | True |        191.54 |    224923115 |
| corescore_500_rwroute          | True |        123.14 |    122451976 |
| corescore_500_pb_rwroute       | True |        246.03 |    244333747 |
| mlcad_d181_lefttwo3rds_rwroute | True |       2021.97 |   1686723818 |
| koios_dla_like_large_rwroute   | True |        280.14 |    299644675 |
| boom_soc_rwroute               | True |       1241.37 |   1449104918 |
| ispd16_example2_rwroute        | True |        472.75 |    523581515 |
+--------------------------------+------+---------------+--------------+

After @ 425b0b7
+--------------------------------+------+---------------+--------------+
| Benchmark                      | Pass | RWRoute (sec) | Nodes Popped |
+--------------------------------+------+---------------+--------------+
| logicnets_jscl_rwroute         | True |         38.81 |     54493698 |
| boom_med_pb_rwroute            | True |        233.96 |    272740956 |
| vtr_mcml_rwroute               | True |        254.06 |    339041410 |
| rosetta_fd_rwroute             | True |        149.72 |    191115169 |
| corundum_25g_rwroute           | True |        251.56 |    278838734 |
| finn_radioml_rwroute           | True |         90.17 |    115746783 |
| vtr_lu64peeng_rwroute          | True |        182.57 |    215449340 |
| corescore_500_rwroute          | True |        118.19 |    122093928 |
| corescore_500_pb_rwroute       | True |        240.86 |    239000597 |
| mlcad_d181_lefttwo3rds_rwroute | True |       1926.27 |   1730785359 |
| koios_dla_like_large_rwroute   | True |        273.57 |    299273289 |
| boom_soc_rwroute               | True |       1235.45 |   1503721309 |
| ispd16_example2_rwroute        | True |        452.05 |    514270796 |
+--------------------------------+------+---------------+--------------+

2.1% reduction in total wall time, despite 2.2% increase in number of nodes popped.

Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
…ving

Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>

Conflicts:
	src/com/xilinx/rapidwright/rwroute/PartialRouter.java
Signed-off-by: Eddie Hung <eddie.hung@amd.com>

Conflicts:
	src/com/xilinx/rapidwright/rwroute/PartialRouter.java
	src/com/xilinx/rapidwright/rwroute/RWRoute.java
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
preservedMap and nodesMap

Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: eddieh-xlnx <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
…arer

Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Conflicts:
	src/com/xilinx/rapidwright/rwroute/RouteNode.java
Conflicts:
	src/com/xilinx/rapidwright/rwroute/RWRoute.java
	src/com/xilinx/rapidwright/rwroute/RouteNode.java
	src/com/xilinx/rapidwright/rwroute/RouteNodeGraph.java
	src/com/xilinx/rapidwright/rwroute/RouteNodeType.java
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Conflicts:
	src/com/xilinx/rapidwright/rwroute/Connection.java
	src/com/xilinx/rapidwright/rwroute/GlobalSignalRouting.java
	src/com/xilinx/rapidwright/rwroute/PartialRouter.java
	src/com/xilinx/rapidwright/rwroute/RWRoute.java
	src/com/xilinx/rapidwright/rwroute/RouteNode.java
	src/com/xilinx/rapidwright/rwroute/RouteNodeGraph.java
	src/com/xilinx/rapidwright/rwroute/RouteNodeInfo.java
	src/com/xilinx/rapidwright/rwroute/RouteNodeType.java
Signed-off-by: eddieh-xlnx <eddie.hung@amd.com>
Signed-off-by: Eddie Hung <eddie.hung@amd.com>
Copy link
Member

@clavin-xlnx clavin-xlnx left a comment

Choose a reason for hiding this comment

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

Thanks for the improvements!

protected final static int MAX_OCCUPANCY = 256;
protected final float[] presentCongestionCosts;

protected static int getTileCount(Design design) {
Copy link
Member

Choose a reason for hiding this comment

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

Should we add this to the Device object?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, I think that's a good idea. Specifically, I think we should update the documentation to state that Tile.getUniqueAddress() should not exceed a new method that is Tile.getMaxUniqueAddress().

Let's not hold up this PR until the next release though.

@eddieh-xlnx eddieh-xlnx merged commit 4f38f60 into master Nov 19, 2024
14 checks passed
@eddieh-xlnx eddieh-xlnx deleted the rwroute_cleanup2 branch November 19, 2024 17:55
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

Successfully merging this pull request may close these issues.

3 participants