-
Notifications
You must be signed in to change notification settings - Fork 14
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
Existential Dimensions #61
Comments
Thinking about this a little more. and the exdims in that equivelence class can be matched against any of their canonical public names. |
The cool thing about this would be for a Neural network (or similar) that internally has unnamed dimensions and so has a partially named output) right now if one has:
Now: since in calculating the And that would be remembered even when running on real world data (and not thus computing the loss). This I think is a textbook motivation for existential dimensions. |
I do not understand this yet -- but i appreciate the excitement around the idea -- can we talk it through in person? Then maybe I can post my understanding back here / we can work on it? |
Yeah sure. |
Have been talking to @jekbradbury at juliacon on the existential dimensions.
These are to replace our current wildcard dimensions.
This will probably take place in a branch that may never merge and might become a nother package cos the idea is pretty wild.
Some facts.
DimensionMismatch
)This means maintaining a global collection of this equivelence classes of ExDims and canonical public name.
It also means that if you have the same method instance (input types + function) being called in very different parts of the code (by chance), problems can occur.
Possibly some namespacing stuff may be needed to also add in the calling module some how.
Which would likely need a compiler pass.
But that is fine because the next bit:
I think we can make this happen at compile time,
because it is fully determine by the method instance.
However, maintaining global mutable state during compilation is not entirely allowed by julia.
But I think by using the "run backedges backwards" thing that was added to solve the
#265
issue for Cassette/IRTools can be used for this also.by triggering appropriate recompilations whenever that mutable state is changed.
Though the ideal way to do this would be solve it fully via type inference style
The text was updated successfully, but these errors were encountered: