openlane2 icon indicating copy to clipboard operation
openlane2 copied to clipboard

Cross-OS Determinism

Open donn opened this issue 1 year ago • 5 comments

Description

OpenLane is fairly deterministic on either macOS or Linux, i.e., the same inputs/design will broadly run into the same errors.

However, a design failing on macOS may succeed on Linux, and vice versa.

Proposal

The culprit appears to be Synthesis. We need to track down why the same file (heck, the same filepath even) may have two different results on two different operating systems.

donn avatar Jul 24 '24 14:07 donn

I can add we encounter this issue with yosys (outside of OpenLane's flow) between yosys builds, from the same repository revision, and on the same OS, but e.g. different OS versions.

We had assumed it was a random seed issue, or a parallel processing issue, but so far these appear to not be supported by experiments to track the cause down.

One more data point: It appears that some yosys generated netlists for an FPGA target on MacOS will completely fail to place an route if they are close to capacity, even when moved to a Linux machine for P&R. Linux generated netlists P&R successfully. This may point at build variation in the optimisation libraries, perhaps.

donnie-j avatar Jul 25 '24 04:07 donnie-j

My money would be on ABC, specifically.

donn avatar Jul 25 '24 07:07 donn

Well there might be more, but this definitely is A culprit.

Screenshot 2024-07-25 at 11 03 39

donn avatar Jul 25 '24 08:07 donn

is the flow deterministic post synthesis?

kareefardi avatar Jul 28 '24 08:07 kareefardi

As far as we can tell.

donn avatar Jul 28 '24 09:07 donn