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

BLAS evaluation #411

Open
3 of 4 tasks
gabizon103 opened this issue Feb 15, 2024 · 1 comment
Open
3 of 4 tasks

BLAS evaluation #411

gabizon103 opened this issue Feb 15, 2024 · 1 comment
Labels

Comments

@gabizon103
Copy link
Collaborator

gabizon103 commented Feb 15, 2024

Taking inspiration from this paper, implement some level 1 and 2 BLAS kernels and parameterize them similarly. Specifically:

  • a GEMV implementation that is parameterized over matrix tiling and hardware reuse
  • a DOT implementation that is parameterized over hardware reuse
  • a SCAL implementation that is parameterized over hardware reuse (maybe redundant?)
  • an AXPY implementation that is parameterized over hardware reuse

If time permitting, also show that modules can be chained together using output parameters. The linked paper uses FIFOs to make some computations blocking in their compositions, but since this isn't possible in Filament we can just use output parameters instead.

These implementations seem straightforward, so that we have an easy way to show that Filament can be used for design space exploration.

@rachitnigam
Copy link
Member

One note about #413: A cool thing enabled by being parameteric over the multiplier's (and adder's) timing behavior is we can implement precision optimizations: we can support both floating-point and fixed-point implementations of all the kernels.

Showing off this example might be useful to demonstrate how when doing DSE, there are many different kinds of "correctness" you need to care about and Filament doesn't track all of them (in this case, bit-precision in computations).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants