gussmith23 / glenside

A pure, low-level tensor program representation enabling tensor program optimization via program rewriting. See the web demo at https://gussmith23.github.io/glenside-web-demo/
68 stars 10 forks source link

Relation with TENSAT? #178

Open ZakSingh opened 2 years ago

ZakSingh commented 2 years ago

I'm new to the space and I'm trying to fit all the pieces together conceptually... TENSAT (https://github.com/uwplse/tensat) appears to operate in a closely related task. From my understanding, TENSAT is working at a higher level (performing subgraph substitutions of subgraphs of operators) whereas Glenside is a lower-level representation that can optimize the individual implementation of these operators.

Although (I think?) Glenside can process an entire computation graph at once, its rewrite rules focus it on a very different set of optimizations, and trying to shoe-horn in TENSAT's high level rewrites would, even if it is possible, blow up the search space too much for egg.

Conceptually, could the two approaches be combined in a hierarchical fashion in which TENSAT rewrites the computation graph, then Glenside could be used to optimize each operator in isolation?

gussmith23 commented 2 years ago

Your understanding is correct! And they absolutely could! I would love to see that happen :) I don't have the time to do it myself, but would be glad to give advice to anyone attempting it.

On Tue, May 17, 2022 at 4:13 AM Zak Singh @.***> wrote:

I'm new to the space and I'm trying to fit all the pieces together conceptually... TENSAT (https://github.com/uwplse/tensat) appears to operate in a closely related task. From my understanding, TENSAT is working at a higher level (performing subgraph substitutions of subgraphs of operators) whereas Glenside is a lower-level representation that can optimize the individual implementation of these operators.

Although (I think?) Glenside can process an entire computation graph at once, its rewrite rules focus it on a very different set of optimizations, and trying to shoe-horn in TENSAT's high level rewrites would, even if it is possible, blow up the search space too much for egg.

Conceptually, could the two approaches be combined in a hierarchical fashion in which TENSAT rewrites the computation graph, then Glenside could be used to optimize each operator in isolation?

— Reply to this email directly, view it on GitHub https://github.com/gussmith23/glenside/issues/178, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJFZALXFX55WB4BHORGRU3VKN5PDANCNFSM5WERUUQA . You are receiving this because you are subscribed to this thread.Message ID: @.***>