-
-
Notifications
You must be signed in to change notification settings - Fork 34
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
Use new Accelerate from OSX>=13.3 #105
base: main
Are you sure you want to change the base?
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
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 is amazing!
I only get the broad strokes, but AFAICT:
- Apple's implementation has a
$NEWLAPACK
suffix for all the BLAS/LAPACK symbols - We create a mapping from the normal expected names to the Apple ones and register them in an alias layer, together with re-exporting the libraries that actually contain those symbols.
- For the legacy accelerate we could take BLAS but needed to replace LAPACK wholesale (hence both
liblapack
&liblapacke
) - Apparently we still need to re-export
liblapacke
even in the new setup - There are some missing/incompatible symbols and you're providing a wrapper layer
- All that (wrapper layer, aliases, re-exported symbols) is bundled into one new shared library
Probably still missing a bunch of details, perhaps we could add some comments in build.sh
and document the intent a bit?
…nda-forge-pinning 2023.10.18.13.10.31
9cbe00c
to
f461b87
Compare
Okay, this is ready. I'll build these locally and upload when this PR is merged. |
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.
Okay, this is ready. I'll build these locally and upload when this PR is merged.
Not sure if you were waiting for review or anything, but basically this LGTM. I mostly have some nits and suggestions for clarification.
Co-authored-by: h-vetinari <[email protected]>
Co-authored-by: h-vetinari <[email protected]>
You said above you'll build these locally, so I'm assuming there's a reason why we cannot just set MACOSX_SDK_VERSION to 13.3 for the new_accelerate builds? AFAICT that should be possible since conda-forge/conda-forge-ci-setup-feedstock#281. |
We only allow users to install newaccelerate builds for 13.3 and therefore we use the |
@@ -3,6 +3,7 @@ blas_impl: | |||
- mkl # [x86 or x86_64] | |||
- blis # [x86 or x86_64] | |||
- accelerate # [osx] | |||
- newaccelerate # [osx] |
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.
Would it make sense to version this somehow (maybe OS or library version if specified)?
Just thinking about whether we might wind up with newnewaccelerate
in a future update 😉
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.
Apple calls it NEWLAPACK
, so if they call a newer one NEWNEWLAPACK
then we can call it newnewaccelerate
. :D
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.
Fair enough :)
I was surprised that the runners don't offer 13.x yet, and actually they've been added a while ago -- though for some reason they recently got marked as in preview months later 🤷. The readme link from the azure pipeline docs goes to here - I guess the separation between Azure Pipelines and GHA is pretty thin, since it's all MSFT in the end. In any case, we could probably build & test this in CI if we upgrade the runners. |
I tested this in #112. The good news is that the image can be used and the resolution for
|
Unfortunately, we're (still) getting
everywhere.... |
FWIW, there's a PR in scipy that does something very similar, and which is nearing completion. Perhaps that can provide some inspiration or at least clues. |
Clues as to why the two tests fail? |
Perhaps? @thalassemia dug in pretty deeply into the topic, and fixed a couple of long-standing issues around this in scipy. |
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)Closes #103