The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.42k stars 497 forks source link

Repair Antennas non-deterministic/faulty results #5325

Open osamahammad21 opened 3 days ago

osamahammad21 commented 3 days ago

Describe the bug

In https://github.com/The-OpenROAD-Project/OpenROAD/pull/5281 The CI is giving different result for sky130hd_ibex than my local machine run. The differences start at repair_antennas part, while the groute guides are identical. What's more weird is that at the end of repair_antennas, the number of antenna violations reported is 0 while after check antennas which is called right after it, the antenna violations are 1 (This is on the CI's result).

Expected Behavior

Same number of antenna violations reported by repair_antennas and check_antennas Same result on my machine and the CI's

Environment

kernel: Linux 6.5.0-41-generic
os: Ubuntu 22.04.3 LTS (Jammy Jellyfish)
cmake version 3.24.2
-- The CXX compiler identification is GNU 11.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: v2.0-14378-gc1c65bb8c
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- The C compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Python: /usr/bin/python3.10 (found version "3.10.12") found components: Interpreter 
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format -CMake Warning (dev) at src/sta/CMakeLists.txt:33 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'USE_TCL_READLINE'.
This warning is for project developers.  Use -Wno-dev to suppress it.

 Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17 - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17 - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Found SWIG: /usr/bin/swig (found suitable version "4.1.0", minimum required is "4.0")  
-- Using SWIG >= 4.1.0 -flatstaticmethod flag for python
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")  
-- boost: 1.80.0
-- Found Python3: /usr/include/python3.10 (found version "3.10.12") found components: Development Development.Module Development.Embed 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- spdlog: 1.8.1
-- Found BISON: /usr/bin/bison (found version "3.8.2") 
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- STA version: 2.5.0
-- STA git sha: ee21333caa14eac641bcccbf2a36b4f6b4ba7de1
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3 -DNDEBUG
-- Install prefix: /usr/local
-- Found FLEX: /usr/bin/flex (found version "2.6.4") 
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- SSTA: 0
-- Found SWIG: /usr/bin/swig (found suitable version "4.1.0", minimum required is "3.0")  
-- STA executable: /home/osama/Desktop/OpenROAD/src/sta/app/sta
-- Found re2: /opt/or-tools/lib/cmake/re2/re2Config.cmake (found version "9.0.0") 
-- Found Clp: /opt/or-tools/lib/cmake/Clp/ClpConfig.cmake (found version "1.17.7") 
-- Found Cbc: /opt/or-tools/lib/cmake/Cbc/CbcConfig.cmake (found version "2.10.7") 
-- Found SCIP: /opt/or-tools/lib/cmake/scip/scip-config.cmake (found version "8.0.1") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- GPU is not enabled
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- Found OpenMP: TRUE (found version "4.5")  
-- GUI is enabled
-- Charts widget is enabled
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization 
-- Could NOT find VTune (missing: VTune_LIBRARIES VTune_INCLUDE_DIRS) 
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found suitable version "1.80.0", minimum required is "1.78")  
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-Number of processor cores: 16
- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization system thread 
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")  
-- Found Eigen3: /usr/local/share/eigen3/cmake/Eigen3Config.cmake (found version "3.4.0") 
-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/tmp.0Dd7peA3Ac

To Reproduce

This is from a branch on my fork https://github.com/osamahammad21/OpenROAD/tree/drt-fix-update-design This is a non-determinism issue so I am not sure if this happens specifically on my local machine or does the difference appear on other machines as well. What's concerning more tho and I think would be the root of the problem is the difference in the antenna violations number we get from check_antennas and repair_antennas.

Relevant log output

No response

Screenshots

Screenshot from 2024-07-02 19-37-21

Left is my local machine and right is on the CI machine

Screenshot from 2024-07-02 19-38-32

Additional Context

No response

gudeh commented 2 days ago

The previous issue #5233 seems to be due to the same reason.

I noticed this when running the regression test in ./test/regression jpeg_sky130hd.

I ran with valgrind on a previous OR version and got the following log:

################################################################
# Antenna repair
repair_antennas -iterations 5
==5208== Invalid read of size 8
==5208==    at 0x331ED57: odb::tmg_conn::splitBySj(int, odb::tmg_rc_sh const*, int, int, int, int, int) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x331F4D9: odb::tmg_conn::splitTtop() (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x3322024: odb::tmg_conn::findConnections() [clone .part.0] [clone .constprop.0] (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x3324BA5: odb::tmg_conn::analyzeNet(odb::dbNet*) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA60D5: grt::RepairAntennas::makeNetWire(odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >&, std::map<int, odb::dbTechVia*, std::less<int>, std::allocator<std::pair<int const, odb::dbTechVia*> > >&) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA7314: grt::RepairAntennas::makeNetWires(std::map<odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >, grt::cmpById, std::allocator<std::pair<odb::dbNet* const, std::vector<grt::GSegment, std::allocator<grt::GSegment> > > > >&, int) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA784D: grt::RepairAntennas::checkAntennaViolations(std::map<odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >, grt::cmpById, std::allocator<std::pair<odb::dbNet* const, std::vector<grt::GSegment, std::allocator<grt::GSegment> > > > >&, int, odb::dbMTerm*, float) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2D938D6: grt::GlobalRouter::repairAntennas(odb::dbMTerm*, int, float) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x13B52E3: _wrap_repair_antennas (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x5B93D31: TclNRRunCallbacks (in /usr/lib/x86_64-linux-gnu/libtcl8.6.so)
==5208==    by 0x5B95027: ??? (in /usr/lib/x86_64-linux-gnu/libtcl8.6.so)
==5208==    by 0x5B94AA6: Tcl_EvalEx (in /usr/lib/x86_64-linux-gnu/libtcl8.6.so)
==5208==  Address 0x6e2c5378 is 54,424 bytes inside a block of size 106,496 free'd
==5208==    at 0x5B31B6F: operator delete(void*, unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==5208==    by 0x3325244: void std::vector<odb::tmg_rc, std::allocator<odb::tmg_rc> >::_M_realloc_insert<odb::tmg_rc const&>(__gnu_cxx::__normal_iterator<odb::tmg_rc*, std::vector<odb::tmg_rc, std::allocator<odb::tmg_rc> > >, odb::tmg_rc const&) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x331EBCE: odb::tmg_conn::addRc(int, odb::tmg_rc_sh const&, int, int, int, int, int, int) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x331EF2C: odb::tmg_conn::splitBySj(int, odb::tmg_rc_sh const*, int, int, int, int, int) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x331F4D9: odb::tmg_conn::splitTtop() (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x3322024: odb::tmg_conn::findConnections() [clone .part.0] [clone .constprop.0] (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x3324BA5: odb::tmg_conn::analyzeNet(odb::dbNet*) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA60D5: grt::RepairAntennas::makeNetWire(odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >&, std::map<int, odb::dbTechVia*, std::less<int>, std::allocator<std::pair<int const, odb::dbTechVia*> > >&) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA7314: grt::RepairAntennas::makeNetWires(std::map<odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >, grt::cmpById, std::allocator<std::pair<odb::dbNet* const, std::vector<grt::GSegment, std::allocator<grt::GSegment> > > > >&, int) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA784D: grt::RepairAntennas::checkAntennaViolations(std::map<odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >, grt::cmpById, std::allocator<std::pair<odb::dbNet* const, std::vector<grt::GSegment, std::allocator<grt::GSegment> > > > >&, int, odb::dbMTerm*, float) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2D938D6: grt::GlobalRouter::repairAntennas(odb::dbMTerm*, int, float) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x13B52E3: _wrap_repair_antennas (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==  Block was alloc'd at
==5208==    at 0x5B2F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==5208==    by 0x331E20E: odb::tmg_conn::tmg_conn(utl::Logger*) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x324FB7A: odb::orderWires(utl::Logger*, odb::dbNet*) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA60D5: grt::RepairAntennas::makeNetWire(odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >&, std::map<int, odb::dbTechVia*, std::less<int>, std::allocator<std::pair<int const, odb::dbTechVia*> > >&) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA7314: grt::RepairAntennas::makeNetWires(std::map<odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >, grt::cmpById, std::allocator<std::pair<odb::dbNet* const, std::vector<grt::GSegment, std::allocator<grt::GSegment> > > > >&, int) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2DA784D: grt::RepairAntennas::checkAntennaViolations(std::map<odb::dbNet*, std::vector<grt::GSegment, std::allocator<grt::GSegment> >, grt::cmpById, std::allocator<std::pair<odb::dbNet* const, std::vector<grt::GSegment, std::allocator<grt::GSegment> > > > >&, int, odb::dbMTerm*, float) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x2D938D6: grt::GlobalRouter::repairAntennas(odb::dbMTerm*, int, float) (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x13B52E3: _wrap_repair_antennas (in /home/gudeh/Desktop/gplWithRudy/tools/install/OpenROAD/bin/openroad)
==5208==    by 0x5B93D31: TclNRRunCallbacks (in /usr/lib/x86_64-linux-gnu/libtcl8.6.so)
==5208==    by 0x5B95027: ??? (in /usr/lib/x86_64-linux-gnu/libtcl8.6.so)
==5208==    by 0x5B94AA6: Tcl_EvalEx (in /usr/lib/x86_64-linux-gnu/libtcl8.6.so)
==5208==    by 0x5B95C99: Tcl_Eval (in /usr/lib/x86_64-linux-gnu/libtcl8.6.so)
[WARNING ANT-0009] Net _14179_ requires more than 10 diodes per gate to repair violations.
[WARNING ANT-0009] Net net5 requires more than 10 diodes per gate to repair violations.
[WARNING ANT-0009] Net clk requires more than 10 diodes per gate to repair violations.
[WARNING ANT-0009] Net clk requires more than 10 diodes per gate to repair violations.
[WARNING ANT-0009] Net rle.rz4.amp\[2\] requires more than 10 diodes per gate to repair violations.
[WARNING ANT-0009] Net rle.rz4.amp\[6\] requires more than 10 diodes per gate to repair violations.
[WARNING ANT-0009] Net rle.rz4.size\[2\] requires more than 10 diodes per gate to repair violations.
[INFO GRT-0012] Found 227 antenna violations.
[INFO GRT-0015] Inserted 758 diodes.
[INFO GRT-0054] Using detailed placer to place 69 diodes.
[INFO GRT-0012] Found 44 antenna violations.
[INFO GRT-0015] Inserted 399 diodes.
[INFO GRT-0054] Using detailed placer to place 89 diodes.
maliberty commented 2 days ago

If you are seeing calls to tmg_conn from ant you are using an old version and need to update.

gudeh commented 2 days ago

Indeed. This valngrind log is from an older version. I actually got this log from my chat with you @maliberty. But it is interesting that values change in the same place as before, the number of diodes reported by GRT.

eder-matheus commented 1 day ago

@osamahammad21 I've fixed the mismatch of violations reported here: https://github.com/The-OpenROAD-Project/OpenROAD/pull/5346.

When running in gcp, I see the same results as you see. I get the same output in every run, so at least we have consistency in the same OS and machine.

Could you update the branch of your PR: https://github.com/The-OpenROAD-Project/OpenROAD/pull/5281? I can't access the results of the older CI runs, probably because we had some updates in the CI.

eder-matheus commented 1 day ago

Reopening it to keep investigating the non-determinist across platforms.