-
Notifications
You must be signed in to change notification settings - Fork 56
Expand set of Mooncake rules #356
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
base: main
Are you sure you want to change the base?
Conversation
|
I can likely pick up some of the linalg ones if you like |
|
I'll keep my progress committed and pushed, feel free to push if you have something. If not I'll just gradually keep adding some whenever I'm waiting for other tests, so also shouldn't be a huge issue. |
130f031 to
7a6adcc
Compare
kshyatt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One comment its it might be nice to put some of these pullbacks into shared files like we did with MAK and TO so that if/when we add Enzyme support, we can do so with a light touch
|
I definitely agree that it would be nicer to put this in a better form, but would you be okay with leaving that for a follow-up PR? What is preventing me from actually pulling this through though is that I now am also altering the primal computation in some places, specifically for constructions involving Without actually having the Enzyme code next to it, it's a bit hard to already come up with the correct abstractions to make sure this works for both engines, and I want to avoid having to do that work twice. Additionally, it would be nice to immediately overload the TensorOperations functions but these haven't been released yet (and additionally I would like to play a similar trick there, but haven't gotten around to that yet) |
Yeah that sounds fine, just separating things into discrete functions is great already |
b5f1836 to
a7422aa
Compare
0dd1456 to
bd3cc11
Compare
Here I am porting over a bunch of our chainrules to the Mooncake ones.
In particular, I am trying to identify the core computational routines and writing the rules for these, while not blindly taking the same methods.
For example, in ChainRules we overload rules for
*(::Number, ::AbstractTensorMap), in Mooncake we simply define a rule forscale!(::AbstractTensorMap, ::Number).To do: