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

Defining operand precisions #213

Open
sjoks93 opened this issue Aug 3, 2023 · 8 comments
Open

Defining operand precisions #213

sjoks93 opened this issue Aug 3, 2023 · 8 comments

Comments

@sjoks93
Copy link

sjoks93 commented Aug 3, 2023

How do we define the precision (data width) and sparse compressed representation of each operand of a problem, and at different memory levels (e.g compressed output features at higher levels, operands uncompressed in higher levels)?

Is it possible to define them in a flexible architecture, where memory is completely shared, instead of simply defining the datawidth of the storage?

@angshuman-parashar
Copy link
Collaborator

That's not possible today. It's a very useful feature though, so if you are interested in contributing I can guide you. Should be a ~3-day project.

@siddharth-joshi
Copy link

Hi Angshu, actually, I'd like to contribute to this. It's something on the critical path for our own projects, so I'd be interested. Might take me longer than three days though, just to get up to speed!

@angshuman-parashar
Copy link
Collaborator

@siddharth-joshi are you thinking of per-operand precision (data-width) or compression formats?

@siddharth-joshi
Copy link

siddharth-joshi commented Oct 16, 2023 via email

@vkb27
Copy link

vkb27 commented Oct 17, 2023

Hi, I have to analyse performance of implementation of different numerical representations, like POSIT. Is this something possible in Timeloop (I'm just starting out on the tool, gone through the tutorials) by working on the source code? If yes, are there any online resources around it?

@angshuman-parashar
Copy link
Collaborator

@vkb27 If you specify the number of bits required by each numerical representation you want to evaluate, Timeloop will model the energy cost of moving those bits across the hardware. This works very well for fixed-width data. For variable bit-widths, you may have to provide an average and convince yourself that the resultant modeling is a reasonably accurate proxy of the actual variable-width behavior. You will also have to provide (via Accelergy) the cost of accessing each arithmetic unit and each SRAM structure on your hardware. If you would like to discuss this further I suggest creating a new issue.

@angshuman-parashar
Copy link
Collaborator

Both, first per-operand precision and then per-operand compression. I think we have the latter somewhat hacked in somewhere, but I can let @pooria-taheri comment on that more

@poant Could you confirm if per-operand compression format is already supported?

@siddharth-joshi
Copy link

Hi Folks, just following up on this?

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

4 participants