Open sandeep-amd opened 9 months ago
Are the binaries on both systems byte for byte identical? Also do you have a test case that you can share with us?
What are the two systems? You are getting different answers so something is varying beyond runtime.
The binaries are not byte to byte identical. But both are built with same compiler(AOCC). Binary size is almost similar i.e OpenRoad is 79 MB on both systems. Both are AMD servers with similar configuration .
System1:~/sandeep/benchmarking/ORFS/AOCC/OpenROAD-flow-scripts/tools/install/OpenROAD$ ls -lrt bin/openroad -rwxr-xr-x 1 amd amd 82015776 Oct 26 17:22 bin/openroad
System 2:~/dporwal/openroad/ORFS/new/OpenROAD-flow-scripts/tools/install/OpenROAD$ ls -lrt bin/openroad -rwxr-xr-x 1 amd amd 82252592 Nov 15 11:08 bin/openroad
Why not use the same binary to eliminate a source of difference? Also is the input data identical?
@sandeep-amd if you send an email to info@precisioninno.com, we can get connected and figure out how to solve this. -Tom
Yes the input data is identical as it is being run using Open Road Flow Scripts.
Also, if yoy see the log, major difference seems to be in this step. [INFO RSZ-0045] Inserted 200 buffers, 1 to split loads. [INFO RSZ-0041] Resized 195 instances. [INFO RSZ-0043] Swapped pins on 80 instances.
################################################################# [INFO RSZ-0045] Inserted 539 buffers, 1 to split loads. [INFO RSZ-0041] Resized 2955 instances. [INFO RSZ-0043] Swapped pins on 118 instances. #################################################################
Why it has inserted more buffers(200 vs 539) and resized more instances (195 vs 2955) ? What does these steps do ?
@sandeep-amd if you send an email to info@precisioninno.com, we can get connected and figure out how to solve this. -Tom
i will send an email
It is performing timing optimization. You need to use the same build of OR to have comparable results. The simplest way to ensure that would be to use the same binaries on both machines.
Were you able to connect with @tspyrou ?
@sandeep-amd I don't think that we connected yet.
Describe the bug
I have 2 similar system . On one system CTS is taking around 625 seconds while on the other system it is taking 2550 seconds. These results are consistent.
On both system cpufreq governor is set to performance.
System 1 log: (625 seconds)
Repair setup and hold violations... TNS end percent 100 Skipping gate cloning during optimization [INFO RSZ-0094] Found 3457 endpoints with setup violations. [INFO RSZ-0045] Inserted 200 buffers, 1 to split loads. [INFO RSZ-0041] Resized 195 instances. [INFO RSZ-0043] Swapped pins on 80 instances. [WARNING RSZ-0062] Unable to repair all setup violations. [INFO RSZ-0033] No hold violations found. Placement Analysis
total displacement 985.8 u average displacement 0.0 u max displacement 11.0 u original HPWL 5532893.1 u legalized HPWL 5533517.5 u delta HPWL 0 %
System 2 (2550 seconds):
Repair setup and hold violations... TNS end percent 100 Skipping gate cloning during optimization [INFO RSZ-0094] Found 3459 endpoints with setup violations. [INFO RSZ-0045] Inserted 539 buffers, 1 to split loads. [INFO RSZ-0041] Resized 2955 instances. [INFO RSZ-0043] Swapped pins on 118 instances. [WARNING RSZ-0062] Unable to repair all setup violations. [INFO RSZ-0033] No hold violations found. Placement Analysis
total displacement 6384.6 u average displacement 0.0 u max displacement 19.6 u original HPWL 5567471.6 u legalized HPWL 5572355.7 u delta HPWL 0 %
The difference i see here with respect to total displacement.
Please do let me know how to fix this.
Expected Behavior
CTS should take around 625 seconds in both systems. As that is nearer to golden value.
Environment
To Reproduce
This issue is specific to one of the server i am working on.
Relevant log output
No response
Screenshots
No response
Additional Context
No response