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

Support for einops #172

Open
gboduljak opened this issue Dec 15, 2023 · 6 comments
Open

Support for einops #172

gboduljak opened this issue Dec 15, 2023 · 6 comments
Labels
enhancement New feature or request

Comments

@gboduljak
Copy link
Contributor

gboduljak commented Dec 15, 2023

Hi :)

I am a big fan of einops and I believe that supporting it within the framework would be highly valuable, especially for quick prototyping and situations where performance isn't the primary focus. Are there any plans to implement a feature akin to torch.einsum within the framework? If there's a plan for something like mlx.einsum and contributions are welcome, I'd be eager to contribute.

@gboduljak
Copy link
Contributor Author

It seems that Apple MLX support was already proposed within einops.

@sck-at-ucy
Copy link

I second that. einops saved me quite a few times where the logic was becoming a bit intractable.

@awni awni added the enhancement New feature or request label Dec 15, 2023
@awni
Copy link
Member

awni commented Dec 15, 2023

We'll definitely keep this on the feature roadmap. I think if we had an einsum like NumPY integration with einops is doable. (Contributions welcome!)

@dc-dc-dc dc-dc-dc mentioned this issue Dec 21, 2023
4 tasks
@dc-dc-dc
Copy link
Contributor

Will also need a tile op to support einops

@dc-dc-dc
Copy link
Contributor

After #278 and #240 get merged, that should be all thats needed to create a backend for einops

@arogozhnikov
Copy link

Einops maintainer here.

Simplest way to get einops functions for framework is to implement array api.
einops.array_api works with all array-api compatible tensors (there is also support for scikit-learn and eindex).

It also simplifies prioritization of ops a lot for framework devs, as what's in the standard is a bare minimum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants