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

ABC Version Update #2388

Merged
merged 6 commits into from
Nov 12, 2023
Merged

Conversation

navidjafarof
Copy link
Contributor

@navidjafarof navidjafarof commented Sep 11, 2023

Description

This PR is made to update ABC to the latest version and make sure everything is stable.

Source repository: https://github.com/berkeley-abc/abc

Related Issue

#2356 (comment)

Motivation and Context

How Has This Been Tested?

Types of changes

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

@github-actions github-actions bot added the ABC ABC Logic Optimization & Technology Mapping Tool label Sep 11, 2023
@navidjafarof navidjafarof changed the title ABC Version Update WIP: ABC Version Update Sep 11, 2023
@navidjafarof
Copy link
Contributor Author

@alirezazd This is the PR regarding the ABC update.

@alirezazd
Copy link
Contributor

alirezazd commented Sep 14, 2023

@navidjafarof Please remove the merge commit as its not allowed in this codebase. rebase instead.

@alirezazd
Copy link
Contributor

@vaughnbetz FYI

@navidjafarof navidjafarof force-pushed the ABC-Update branch 3 times, most recently from 148d483 to e322fb7 Compare September 28, 2023 02:48
@vaughnbetz
Copy link
Contributor

@navidjafarof : the abc results all appear to be identical (num_pre_packed_blocks, abc_max_depth etc. are the same for every circuit in both VTR and Koios). It looks like the same version of abc was used in both runs, as any update to abc should change some of these metrics for at least some circuits. Can you double check that the QoR test was run correctly?

@navidjafarof
Copy link
Contributor Author

@vaughnbetz I will double check the results and let you know. I will attach new results as soon as it is ready.

@vaughnbetz
Copy link
Contributor

I'd expect the metrics due solely to synthesize, like the num_pre_packed_blocks and abc_max_depth, to change. That will lead to knock on effects in downstream metrics like critical_path_delay and so on.

It seems unlikely that a much more recent version of abc would get identical results; I'd expect at least some change in QoR, even with the same synthesis commands. It's also possible that the claimed abc improvements in the http://people.eecs.berkeley.edu/~alanmi/publications/2023/date23_gap.pdf are due to running different synthesis commands so that is also worth looking into.

@alirezazd
Copy link
Contributor

@vaughnbetz I'm re-checking the QoR, but as you might know this paper is another version of ABC which is called (ABC9) it is not the official version that we've been usning in VTR, it is the ABC which Yosys uses.

@vaughnbetz
Copy link
Contributor

I think they just gave ABC9 as the name to the new ABC ... probably best to clarify what new code is in this PR then.

@alirezazd
Copy link
Contributor

alirezazd commented Sep 28, 2023

@vaughnbetz I just Updated the PR with the link of the ABC that we've used. We can also try to use the latest ABC9.
According to the paper: "specifically, we describe how ABC9 — a set of feature additions to ABC — was integrated into Yosys upstream and available in the latest version."

By doing this we can remove the ABC directory and just use the ABC which available in the Yosys directory of the codebase. The drawback is that we will not be using the offical ABC maintained by University of Berkeley.

@navidjafarof
Copy link
Contributor Author

Dear @vaughnbetz,
I wanted to ensure the accuracy of my comparison between the results of the master branch and my own branch. To accomplish this, I downloaded the artifacts from GitHub. Specifically, I compared the results of "koios" from "qor_results_vtr_reg_nightly_test6" with "vtr_reg_qor_chain" from "vtr_reg_nightly_test3," as we discussed during the meeting. The expected parameters were still the same and no differences were noticed. However, I also compared the tasks for which I updated the golden results, and here I did observe differences. As a specific example, I compared the results for "multless_consts" from "vtr_reg_nightly_test1_odin," and I have attached a spreadsheet detailing this comparison for your reference.
comparison_output.xlsx

@navidjafarof navidjafarof changed the title WIP: ABC Version Update ABC Version Update Nov 12, 2023
@navidjafarof
Copy link
Contributor Author

Dear @vaughnbetz,
This PR is ready to be merged.
Thanks,
Navid

@vaughnbetz vaughnbetz merged commit 2e17646 into verilog-to-routing:master Nov 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ABC ABC Logic Optimization & Technology Mapping Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants