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

Is TACO capable of doing caculation with extra itervar? #536

Open
qelk123 opened this issue Oct 12, 2022 · 2 comments
Open

Is TACO capable of doing caculation with extra itervar? #536

qelk123 opened this issue Oct 12, 2022 · 2 comments

Comments

@qelk123
Copy link

qelk123 commented Oct 12, 2022

Hi all,
I'm a beginer in TACO , and I am trying to use it to compile some stencil caculations.However,I didn't find a way to declare the extent and other attributes of axis which not included in the tensor dim.So,I am wondering is TACO capable of doing caculation for something like stencil?
Mike

@rohany
Copy link
Contributor

rohany commented Oct 27, 2022

TACO cannot currently be used for direct stencil calculations (i.e. A(i + 1, j + 1)), but it could be used through indirect stencil operations by constructing an indirect higher order stencil matrix and multiplying by that. If you're interested in sparse stencil operations, talk to @willow-ahrens about some work she's been up to!

@willow-ahrens
Copy link
Contributor

It's been a while, but I wanted to give the best response I could on sparse tensor compiler convolution support.

https://dl.acm.org/doi/abs/10.1145/3485505 describes TACO support for static affine expressions (A[i + 1]), which would allow you to represent each point in a stencil separately. If there are only a few points in the stencil this could be a good approach.

https://drive.google.com/file/d/1_VIvuiBV7HHDOMnKppHbAMiNLOYJU7DG/view?usp=sharing is very recent work which describes TACO support for arbitrary affine expressions (A[i + j]), which would be a better fit for bigger stencils.

Finally, https://github.com/willow-ahrens/Finch.jl is a Julia-to-Julia sparse tensor compiler I've been working on which currently supports both of the above (for a very wide variety of operations and formats) using named index modifiers like A[offset[i, j]], you can read more about it at https://dl.acm.org/doi/10.1145/3579990.3580020.

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

3 participants