Skip to content
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

Non-deterministic behavior in ESOP computation #617

Open
3 tasks done
aletempiac opened this issue Aug 4, 2023 · 1 comment
Open
3 tasks done

Non-deterministic behavior in ESOP computation #617

aletempiac opened this issue Aug 4, 2023 · 1 comment
Labels
bug Something isn't working wontfix This will not be worked on (deprecated/outdated)

Comments

@aletempiac
Copy link
Member

aletempiac commented Aug 4, 2023

Describe the bug
Non-deterministic behavior in ESOP computation in Kitty. Functions esop_from_optimum_pkrm, and esop_from_pprm_slow use an unordered_set data structure to store the cubes. That content is moved to a vector later. Since the order of the cubes in the vector dependents on the compiler, it leads to a non-deterministic behavior.

Environment

  • OS: MacOS, Linux, Windows
  • Compiler: all the tested ones
  • Compilation mode: DEBUG or RELEASE

Check list

  • I have tried to run in DEBUG mode and there was no assertion failure (or the reported bug is an assertion failure).
  • I have made sure that the provided code compiles and the testcase reproduces the error.
  • I have minimized the testcase.
@aletempiac aletempiac added the bug Something isn't working label Aug 4, 2023
@aletempiac aletempiac added the wontfix This will not be worked on (deprecated/outdated) label Oct 6, 2023
@lee30sonia
Copy link
Member

Are the results wrong, or just non-deterministic? In my opinion, producing non-deterministic but correct results is not counted as a "bug", although it is not preferred in an experiment setting.
I'm not even sure if non-deterministic is the correct word, if you said the result depends on the compiler. I think non-deterministic means if you run it multiple times on the same machine, the results are different (e.g. when time is used as the random seed, or memory-related bugs depending on the memory address or content being allocated each time).
Also, maybe we should put this issue in kitty, not in mockturtle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working wontfix This will not be worked on (deprecated/outdated)
Projects
None yet
Development

No branches or pull requests

2 participants