-
Notifications
You must be signed in to change notification settings - Fork 0
WIP on building wheel variants #1
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
Conversation
Ok, the first demo is ready now: it builds openblas and mkl variants, with x86_64 v1 through v4 CPU baseline. The relevant options are enabled via Open questions right now:
Also, plugin work is currently blocked on wheelnext/variantlib#5 |
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.
This looks pretty good. Shall we enable CI jobs on this fork so we can see it in action more easily?
Also note that all GHA CI jobs are anyway guarded so they run on numpy/numpy
by default, so there's no need to delete them I think (may make browsing the diff easier).
Should we alter
cpu-dispatch
too? I.e. should x86-64-v2 wheel permit dispatching higher features,
I think that makes sense. Disabling dispatching for v1-v3 seems fine, since it reduces binary size and should only affect performance for some not-very-relevant corner cases. Only the highest variant (v4) should probably keep dispatching.
Perhaps we could explicitly define a protocol specifically for passing compiler flags from plugin to the build system
I don't think that is possible. I think the plugin should have an API to query what the desired flags are, and the build backend should call that API and then pass on the flags to the build system (it'll be build backend specific).
Good points. I've reverted the irrelevant changes and leftovers from earlier experiments to keep the diff clean. |
Hmm, looks like my CI pipelines are failing because they've cached old meson-python commit. I'll check again tomorrow. |
Isn't everything just skipped? I think the fix is changing these lines: if: github.repository == 'numpy/numpy' |
I mean in the added |
I've enabled artifact publishing on the workflows, in the fork: https://github.com/mgorny/numpy/actions/runs/14452129682 |
This reverts commit d32be73. That shouldn't be necessary, I was getting confused by meson output.
This is now |
The build logs look quite good, seems like this is ready for demo-ing indeed! There is one minor funky thing with AVX2 support it looks like. E.g., from this
It may be a quick in NumPy's SIMD support, or it may be something like the order of flags that come in as build options through what's implementing That's the only thing I noticed, everything else looks as I expected. |
Except, as we just discussed, that the wheels aren't redistributable yet because of no |
This is intended to be developed in parallel with wheelnext/meson-python#1.
The rough plan is as follows:
-Dvariant-name
and meson args.-Dvariant
and switch over to that.