Skip to content

Conversation

AlexandreSinger
Copy link
Contributor

Ran both the equilibrium and variance initial temperature estimators and found that they both get similar quality; however, the equilibrium initial temperature estimator improves overall run time by 4-7% (up to 8% on the largest benchmarks). Setting it as the default for now.

Results on my test suites for both AP and No AP:

Screenshot from 2025-10-06 14-00-49

Ran both the equilibrium and variance initial temperature estimators and
found that they both get similar quality; however, the equilibrium
initial temperature estimator improves overall run time by 4-7% (up to
8% on the largest benchmarks). Setting it as the default for now.
@github-actions github-actions bot added VPR VPR FPGA Placement & Routing Tool docs Documentation lang-cpp C/C++ code labels Oct 6, 2025
@AlexandreSinger
Copy link
Contributor Author

This should be almost ready to merge. I will need to run the weekly tests since I am sure that those will have changed. Someone is currently running them; so I will wait until this evening.

@AlexandreSinger
Copy link
Contributor Author

@amin1377 FYI

@amin1377
Copy link
Contributor

amin1377 commented Oct 6, 2025

Hi @AlexandreSinger,

I don’t mean to create extra work for you, but since you’re planning to change the default, I’d prefer to be a bit more cautious. If you have time, for SIV, could you please either show or share the spreadsheet containing the results so I can check the spread for CPD and WL?

Usually, when the average looks slightly worse, it suggests there might be some serious outliers. I’d like to see whether all circuits are around 1, or if there are any significant deteriorations or improvements.

Thanks!

@AlexandreSinger
Copy link
Contributor Author

Hi @AlexandreSinger,

I don’t mean to create extra work for you, but since you’re planning to change the default, I’d prefer to be a bit more cautious. If you have time, for SIV, could you please either show or share the spreadsheet containing the results so I can check the spread for CPD and WL?

Usually, when the average looks slightly worse, it suggests there might be some serious outliers. I’d like to see whether all circuits are around 1, or if there are any significant deteriorations or improvements.

Thanks!

These are the results on AP using Equilibrium init T estimator normalized to the variance one on Titan.

circuit total_wirelength crit_path_delay ap_dp_runtime
LU230_stratixiv_arch_timing.blif 0.98 0.98 0.87
LU_Network_stratixiv_arch_timing.blif 0.99 0.85 0.81
SLAM_spheric_stratixiv_arch_timing.blif 1.04 1.01 0.83
bitcoin_miner_stratixiv_arch_timing.blif 0.96 0.95 0.69
bitonic_mesh_stratixiv_arch_timing.blif 1.06 1.02 0.82
cholesky_bdti_stratixiv_arch_timing.blif 0.96 1.04 0.79
cholesky_mc_stratixiv_arch_timing.blif 1.00 1.02 0.83
dart_stratixiv_arch_timing.blif 0.99 1.06 0.86
denoise_stratixiv_arch_timing.blif 0.95 0.98 0.75
des90_stratixiv_arch_timing.blif 1.04 0.95 0.78
directrf_stratixiv_arch_timing.blif 0.94 0.93 0.72
gsm_switch_stratixiv_arch_timing.blif 1.04 1.08 0.89
mes_noc_stratixiv_arch_timing.blif 1.02 1.13 0.68
minres_stratixiv_arch_timing.blif 1.00 0.94 0.80
neuron_stratixiv_arch_timing.blif 0.99 0.97 0.85
openCV_stratixiv_arch_timing.blif 1.03 1.03 0.84
segmentation_stratixiv_arch_timing.blif 1.02 1.01 0.84
sparcT1_chip2_stratixiv_arch_timing.blif 0.97 1.15 0.66
sparcT1_core_stratixiv_arch_timing.blif 1.00 1.03 0.99
sparcT2_core_stratixiv_arch_timing.blif 1.05 0.97 0.78
stap_qrd_stratixiv_arch_timing.blif 0.85 1.06 0.81
stereo_vision_stratixiv_arch_timing.blif 1.02 1.02 0.97
gaussianblur_stratixiv_arch_timing.blif 1.03 0.98 0.77
       
GEOMEAN 1.00 1.00 0.81

QoR is identical on average, with around a 19% reduction in detailed placement time.

Here is a colorful picture:
Screenshot from 2025-10-06 17-16-07

AS we can see there are a couple of outliers for CPD, but their runtimes improved by a huge amount. I think this is overall a good change.

@AlexandreSinger
Copy link
Contributor Author

@vaughnbetz FYI

@amin1377
Copy link
Contributor

amin1377 commented Oct 6, 2025

Thanks @AlexandreSinger. I think the results for AP make sense. If you can also include the results for the default flow, that would be great.

@AlexandreSinger
Copy link
Contributor Author

Default flow:

circuit total_wirelength crit_path_delay
LU230_stratixiv_arch_timing.blif 0.97 0.99
LU_Network_stratixiv_arch_timing.blif 1.01 1.06
SLAM_spheric_stratixiv_arch_timing.blif 1.03 0.98
bitonic_mesh_stratixiv_arch_timing.blif 1.00 1.02
cholesky_bdti_stratixiv_arch_timing.blif 1.01 0.88
cholesky_mc_stratixiv_arch_timing.blif 1.02 1.02
dart_stratixiv_arch_timing.blif 1.00 1.00
denoise_stratixiv_arch_timing.blif 1.01 1.00
des90_stratixiv_arch_timing.blif 0.97 0.89
directrf_stratixiv_arch_timing.blif 1.05 1.09
gsm_switch_stratixiv_arch_timing.blif 0.99 1.00
mes_noc_stratixiv_arch_timing.blif 0.98 1.26
minres_stratixiv_arch_timing.blif 0.98 1.06
neuron_stratixiv_arch_timing.blif 0.94 1.10
openCV_stratixiv_arch_timing.blif 0.98 1.00
segmentation_stratixiv_arch_timing.blif 0.99 1.00
sparcT1_chip2_stratixiv_arch_timing.blif 0.99 1.12
sparcT1_core_stratixiv_arch_timing.blif 1.00 1.09
sparcT2_core_stratixiv_arch_timing.blif 0.94 0.86
stap_qrd_stratixiv_arch_timing.blif 1.03 1.00
stereo_vision_stratixiv_arch_timing.blif 1.00 1.01
gaussianblur_stratixiv_arch_timing.blif 1.00 1.00
     
GEOMEAN 1.00 1.02

@AlexandreSinger
Copy link
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation lang-cpp C/C++ code VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants