Skip to content

Congestion-Aware Initial Accumulated Cost #3031

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

Open
wants to merge 39 commits into
base: master
Choose a base branch
from

Conversation

soheilshahrouz
Copy link
Contributor

@soheilshahrouz soheilshahrouz commented May 10, 2025

This PR adds a new option to bias routing away from congested channels during early iterations by adjusting the initial accumulated cost based on estimated CHANX/CHANY utilization.

@github-actions github-actions bot added VPR VPR FPGA Placement & Routing Tool lang-cpp C/C++ code libvtrutil labels May 10, 2025
@soheilshahrouz
Copy link
Contributor Author

soheilshahrouz commented May 11, 2025

To-do list

  1. compute channel widths by iterating over RR nodes ---> done
  2. support 3d ---> CHANX/CHANY utilization for all layers are computed. CHANX nodes that represent vertical connection are mistakenly initilized with acc_cost of the CHANX at that location.

@soheilshahrouz
Copy link
Contributor Author

soheilshahrouz commented May 12, 2025

titan_quick_qor

channel width place_time wl cpd route_time pack_time heap_pops total_swaps
300 1.0007 0.9991 0.9965 0.9993 0.9950 1.0067 1
270 1.0054 0.9984 1.0047 0.9615 0.9965 0.9914 1
250 0.9876 0.9981 1.0031 0.8403 0.9924 0.8510 1

In experiments with a channel width of 250, bitcoin_miner failed for both the master branch and this branch.

@soheilshahrouz
Copy link
Contributor Author

soheilshahrouz commented May 16, 2025

The impact of increasing acc_fac to 1.1 on Titan benchmarks

W place_time wl cpd route_time pack_time heap_pops total_swaps
250 1.017395588 1.001856283 1.00593143 1.043113712 1.000524706 1.054397302 1
270 1.008064369 1.000474773 1.004645215 0.9784847728 1.003675494 1.000754474 1

Comparison between this branch and master. Data collection in progress...

W place_time wl cpd route_time pack_time heap_pops total_swaps
300 1.000709887 0.9990728234 0.9964754886 1.006605634 0.9989301366 1.006669728 1
270 1.007525117 0.9983562986 1.004650437 0.9699298169 0.9988696226 0.9913845767 1
250 1.008814692 0.9980936599 1.003070789 0.8505039119 0.9995534048 0.8510168759 1

Bitcoin miner failed on both branches when W=250.

…old and --router_initial_acc_cost_chan_congestion_weight
…ht and --router_initial_acc_cost_chan_congestion_threshold so that the realted feature is enabled by default
@soheilshahrouz soheilshahrouz changed the title [WIP] Initialize acc_cost with post-placement channel utilization estimate Congestion-Aware Initial Accumulated Cost May 16, 2025
@soheilshahrouz soheilshahrouz requested a review from vaughnbetz May 20, 2025 21:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lang-cpp C/C++ code libvtrutil VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant