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

Reduce Peak Memory Usage of Fabric Bitstream Database #669

Merged
merged 6 commits into from
May 25, 2022

Conversation

tangxifan
Copy link
Collaborator

@tangxifan tangxifan commented May 25, 2022

Motivate of the pull request

  • To address an existing issue. If so, please provide a link to the issue:
  • Breaking new feature. If so, please describe details in the description part.

Describe the technical details

What is currently done? (Provide issue link if applicable)

Currently, OpenFPGA has the following limitations:

  • Bitstream generation of memory banks has very high peak memory usage.
    • For a K4N4 48x48 architecture, the peak memory usage is 3GB
    • For a K4N4 96x96 architecture, the peak memory usage is >20GB
      This will create issues for OpenFPGA to fit customers' computers, e.g., laptop

What does this pull request change?

This PR improves in the following aspects:

  • Use encoded data when storing the BL/WL addresses in fabric bitstream database.
  • This significantly reduces the memory usage
  • For a K4N4 96x96 architecture, the peak memory usage is ~1.3GB
  • Add test cases on large scale memory bank architecture to CI

Which part of the code base require a change

  • VPR
  • Tileable routing architecture generator
  • OpenFPGA libraries
  • FPGA-Verilog
  • FPGA-Bitstream
  • FPGA-SDC
  • FPGA-SPICE
  • Flow scripts
  • Architecture library
  • Cell library
  • Documentation
  • Regression tests
  • Continous Integration (CI) scripts

Impact of the pull request

  • Require a change on Quality of Results (QoR)
  • Break back-compatibility. If so, please list who may be influenced.

* TODO: use nested vector may cause large memory footprint
* when bitstream size increases
* NEED TO THINK ABOUT A COMPACT MODELING
* TODO: There is a limitation here, when the length of address vector is more than 64,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tpagarani @taoli4rs @alain-rs

The peak memory overhead issue should be solved. I am going to merge it.

However, I pointed out a limitation in the data structure here.

I expect to have another engineer to work on this and solve the potential issue.

@tangxifan tangxifan merged commit b824f94 into master May 25, 2022
@tangxifan tangxifan deleted the runtime_membank branch May 25, 2022 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant