-
Notifications
You must be signed in to change notification settings - Fork 11
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
actx.tag() comes too late to benefit eager mode execution #5
Comments
This is more or less kinda what I was trying (albeit rushed/incomplete) in inducer/meshmode#170 --- Based on your comments there, I can imagine that one would tag information to a loopy program "as you go", which can then be transformed based on said information in transform_loopy_kernel. This is assuming that, when doing any kind of eager evaluation, it always ends up going through actx.call_loopy. Obviously with eager this would be somewhat limited (since results are computed as you go), but some level of code transformation can and should happen along the way. With lazy, this information just gets propogated through until evaluation is needed, and so I imagine these transformations will occur at the pytato level. |
In short, I think tagging can still work for eager. Update: Unless I am fundamentally misunderstanding something. I guess what I'm wondering is, if all expressions (whether eager or lazy) go through |
My thought was that lazy would bypass |
I agree that it can, but what this issue is about is the method |
For lazy mode,
actx.tag(MyTag(), 2*x+3)
works great. For eager mode, this doesn't help at all, as the result will already be computed (i.e. the kernel whose transformation would have benefited from the metadata was already executed). Is there a tagging interface that can work for both eager and lazy?cc @alexfikl @thomasgibson @nchristensen @kaushikcfd
x-ref: inducer/meshmode#176
The text was updated successfully, but these errors were encountered: