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

[dataflow] [Pass] Enable multi-cache design for larger-scale gemm #280

Merged
merged 6 commits into from
Dec 18, 2024

Conversation

AdrianLiu00
Copy link
Contributor

Description

This PR has three primary contributions as follows:

  1. Modify the automated buffer-generation as optional pass for users.
  2. Enhance the multi-cache design with a stream-type L3 for tiling.
  3. Polish some naming and testcases.

Examples

Under expected conditions, this multi-cache design can significantly enhance performance and enable large-scale computation.
Examples are provided inside.

Future Works

Although the passed csim tests prove the functionality of architecture, there are some notable minor issues:

  1. The design contains data-packing technique to improve the efficiency of memory access, but the relevant type system is not well-supported, including efficient data packaging in pythonish testing and type consistency between generated hls code and test inputs. Relevant utility functions are neccessary to develop.
  2. The hardware related tests are not conducted yet due to unavailable environment these days. And aforementioned type issues also possibly happen. We can try to solve these problem during enhancing (1).

Checklist

  • PR's title starts with a category (e.g. [Bugfix], [IR], [Builder], etc)
  • Changes are complete (i.e. I finished coding on this PR)
  • All changes have test coverage (It would be better to provide ~2 different test cases to test the robustness of your code)
  • Code is well-documented

@AdrianLiu00 AdrianLiu00 requested a review from chhzh123 December 16, 2024 23:07
Copy link
Member

@chhzh123 chhzh123 left a comment

Choose a reason for hiding this comment

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

Maybe change the wrapping argument to wrap_io.

Can you be specific about the issues you mentioned in 1? You can also submit a new issue on Github to describe the problem.

@AdrianLiu00
Copy link
Contributor Author

Sure, I have fixed the naming. I'll file an issue about the specific demands of type system later.

Copy link
Member

@chhzh123 chhzh123 left a comment

Choose a reason for hiding this comment

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

LGTM! Thanks for the PR.

@chhzh123 chhzh123 merged commit d4a51b1 into cornell-zhang:main Dec 18, 2024
1 check passed
@AdrianLiu00 AdrianLiu00 deleted the nowrap branch December 18, 2024 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants