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

Add OpenVINO AI Plugins to Preview Track #325

Open
wants to merge 22 commits into
base: preview
Choose a base branch
from

Conversation

frenchwr
Copy link

This merges in the OpenVINO AI plugins to the preview branch. Until recently the plugins only supported GIMP 2.99 and therefore we published the snaps in a dedicated 2.99-openvino branch and track. Now that the plugins support GIMP 3.0 I propose putting them into preview for broader reach.

Note about the 3.0-openvino branch: I created this from the current 2.99-openvino branch, then merged in the preview branch, and finally added a handful of commits for 3.0 support.

I've tested on a few different devices (each with a different generation of Intel Core Ultra CPU) and verified that the plugins all work as expected (including with GPU and NPU acceleration).

frenchwr and others added 21 commits December 9, 2024 15:14
…-plugins

feature: integrate OpenVINO AI plugins
readme: remove section for manually connecting plugs
fix: minor plug-in and extension errors from logs
@jnsgruk
Copy link
Member

jnsgruk commented Jan 29, 2025

Thank you for this!

My only question is whether we should maintain a separate branch for this - I don't know that we want to ship openvino bits to every device, even when they may not support it.

We could go forward with an openvino/* track or similar?

WDYT? Perhaps @merlijn-sebrechts has an opinion?

Keeping it all in the same branch is certainly simpler for us 🤷‍♂️ but I'm not sure what that would like like in the future if we were to integrate toolkits from other vendors?

@frenchwr
Copy link
Author

Thank you for this!

My only question is whether we should maintain a separate branch for this - I don't know that we want to ship openvino bits to every device, even when they may not support it.

We could go forward with an openvino/* track or similar?

WDYT? Perhaps @merlijn-sebrechts has an opinion?

Keeping it all in the same branch is certainly simpler for us 🤷‍♂️ but I'm not sure what that would like like in the future if we were to integrate toolkits from other vendors?

My preference is to not use a dedicated branch/track, primarily for broader reach but also to minimize the maintenance cost (with separate tracks someone will need to keep everything in sync, build everything twice, etc).

I also intentionally designed the packaging of the plugins to minimize the maintenance burden to the GIMP snap itself, i.e. I used snapd's content interface to allow the plugins to be maintained and updated independently from GIMP.

The risk of the plugins somehow breaking GIMP I think is also low.

In terms of hardware support, it's true that not all devices will support acceleration available only through Intel NPUs and GPUs; however, I'm publishing the OpenVINO snaps built for both AMD64 and ARM64 (I'm currently enlisting a colleague to test on ARM64) so the coverage for CPU support is fairly large!

That's my two cents - admittedly I'm somewhat biased. :)

@frenchwr
Copy link
Author

Heads up: my coworker uncovered a small issue on ARM64 that I'm fixing now. I'll update here when it's done.

@merlijn-sebrechts
Copy link
Member

+1 for adding this to the regular snap

@jnsgruk
Copy link
Member

jnsgruk commented Jan 31, 2025

Give me a shout when you've had a chance to test the new changes and I'll get this merged - thank you!

@frenchwr
Copy link
Author

In terms of hardware support, it's true that not all devices will support acceleration available only through Intel NPUs and GPUs; however, I'm publishing the OpenVINO snaps built for both AMD64 and ARM64 (I'm currently enlisting a colleague to test on ARM64) so the coverage for CPU support is fairly large!

It seems I was a bit too optimistic here. While the OpenVINO runtime supports ARM64, the plugins themselves do not, sadly. In fact, they only support Intel silicon (CPU, GPU, and NPU). We've tested a bit and I'm fairly certain two of the three plugins will run fine on ARM64 or an AMD CPU, but I don't think that's something we want to commit to supporting without testing/validation upstream.

I still think there is a case to including the plugins in preview for the other reasons I originally mentioned. We can control which devices get the new plugins like so:

  • ARM64 machines: I'm going to delete the ARM64 releases for openvino-ai-plugins-gimp, so ARM64 machines will never get the plugins.
  • non-Intel AMD64 machines: We can ensure that the openvino-ai-plugins-gimp snap never auto-installs by keeping it in beta or not listing it as a default-provider for the content plug in GIMP's snapcraft.yaml. This means users need to intentionally install it. I could make it more clear in the README that the plugins only run on Intel silicon.

@jnsgruk
Copy link
Member

jnsgruk commented Jan 31, 2025

You could also use an advanced grammar is a bunch of places to ensure we don't ship bits to arm64 machines...

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

Successfully merging this pull request may close these issues.

3 participants