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

[Wave] Fun projects for beginnners #278

Open
2 of 15 tasks
raikonenfnu opened this issue Nov 19, 2024 · 8 comments
Open
2 of 15 tasks

[Wave] Fun projects for beginnners #278

raikonenfnu opened this issue Nov 19, 2024 · 8 comments

Comments

@raikonenfnu
Copy link
Contributor

raikonenfnu commented Nov 19, 2024

Are you interested in learning more about GPU programming and developing cool optimizations? Do you want to help build next generation and state-of-the-art machine learning models and layers? Do you want to define the future programming paradigm of machine learning and GPU layers? Look no further, come join us in building "Wave"!

Here are some fun starter tasks to look at:

Core infrastructure

Useful Integration/Deployment on LLM and GenAI model

  • Implement Pytorch Linear Layer (forward, backward) that uses custom TKW kernel
  • Implement Pytorch Conv2d Layer (forward, backward) that uses custom TKW kernel
  • Implement Pytorch Attention Layer (forward, backward) that uses custom TKW kernel
  • Integrate Wave kernel into sharktank for e2e S.T we can inject IR from TKW into model IR.

Useful Operations for Quantized LLM and GenAI workload

  • Add support for tkw.abs #322 - @NoumanAmir657
  • Add support for tkw.round_even (math::RoundEvenOp)
  • Add support for tkw.minimum (elementwise/ arith::MinimumFOp)
  • Add support for tkw.clamp (takes upper bound, lowerbound arguments and combines tkw.minimum and tkw.maximum)
  • Add support for tkw.min (reduction) dependent on tkw.minimum (elementwise)
@NoumanAmir657
Copy link
Contributor

Would this be open for someone who has almost no knowledge of GPU programming except for some basic understanding.

@raikonenfnu
Copy link
Contributor Author

Hi @NoumanAmir657 thanks for reaching out! There are plenty of tasks to go around, depending on your experience level, would probably assign easier tasks to start with.

@NoumanAmir657
Copy link
Contributor

Hi @NoumanAmir657 thanks for reaching out! There are plenty of tasks to go around, depending on your experience level, would probably assign easier tasks to start with.

Hi, yes would love any pointers to which task would help me getting started. You can assign me whichever you see fit and I can work towards it

@raikonenfnu
Copy link
Contributor Author

@NoumanAmir657 I think a good starter task is to implement tkw.abs and it's lowering into math.absfOp or math.absIOp in math dialect of MLIR. Here is a sample of a similar task on reciprocal (82852d1).

LMK what you think. :)

Disclaimer: if this(or any task assigned to external collaborator) becomes high priority, someone internal may take on this task to get it out asap.

@NoumanAmir657
Copy link
Contributor

@NoumanAmir657 I think a good starter task is to implement tkw.abs and it's lowering into math.absfOp or math.absIOp in math dialect of MLIR. Here is a sample of a similar task on reciprocal (82852d1).

LMK what you think. :)

Disclaimer: if this(or any task assigned to external collaborator) becomes high priority, someone internal may take on this task to get it out asap.

Yes this seems a good starting point. I shall make a PR soon. Thanks!

@raikonenfnu
Copy link
Contributor Author

thanks @NoumanAmir657 for the awesome work with tkw.abs! let me know if you're interested in picking up other issues. The next important thing for us is adding support for tkw.minimum (elementwise) and extending it's support to tkw.min(reduction) but feel free to pick other things more aligned with your interest of course.

@NoumanAmir657
Copy link
Contributor

thanks @NoumanAmir657 for the awesome work with tkw.abs! let me know if you're interested in picking up other issues. The next important thing for us is adding support for tkw.minimum (elementwise) and extending it's support to tkw.min(reduction) but feel free to pick other things more aligned with your interest of course.

Thanks for getting me started. I want to contribute more. Over the weekend, I will go over issues and decide on one. Thanks!

@NoumanAmir657
Copy link
Contributor

@raikonenfnu Hi. You can assign me the tkw.minimum issue.
Thanks!

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

No branches or pull requests

2 participants