-
-
Notifications
You must be signed in to change notification settings - Fork 32
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
Adding osx-arm support #224
base: main
Are you sure you want to change the base?
Conversation
…nda-forge-pinning 2022.08.23.13.46.03
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 ( |
@conda-forge-admin, please rerender |
…nda-forge-pinning 2022.09.02.10.01.46
@conda-forge-admin, please rerender |
Hi! This is the friendly automated conda-forge-webservice. I tried to rerender for you, but it looks like there was nothing to do. This message was generated by GitHub actions workflow run https://github.com/conda-forge/julia-feedstock/actions/runs/2982651707. |
@conda-forge-admin, please rerender |
Hi! This is the friendly automated conda-forge-webservice. I tried to rerender for you, but it looks like there was nothing to do. This message was generated by GitHub actions workflow run https://github.com/conda-forge/julia-feedstock/actions/runs/2982709690. |
@mkitti do you want to give this a shot as a native build? Not emulated |
Here are minimal steps to get you started:
For me, like before, this procedure gets stuck at
... but we should be able to build this!
|
I do have the hardware. I suppose I should try to build this and see if I can figure out where it gets stuck. |
Hey @mkitti, what is the status of this? Anything I can help with? |
Took a stab at trying to build this, but am getting this weird issue (maybe just a local issue):
|
@conda-forge-admin, please rerender |
Is there a blocker to building openlibm for macos-arm in conda-forge? |
Are we cross compiling? |
It's already available: https://anaconda.org/conda-forge/openlibm/files |
Co-authored-by: Mark Kittisopikul <[email protected]>
Co-authored-by: Mark Kittisopikul <[email protected]>
So the problem is that Julia cannot find openlibm.dylib? |
It may be that it is finding the "wrong" one because we are cross-compiling |
I am also trying to build locally natively, so we will see how that goes... |
I'm not sure if Julia will cross compile. We're going to get stuck at building the system image. |
Do you know what would stop the building at |
@staticfloat, are we any closer to cross compiling? |
It's running the REPL and tracing what method specializations were compiled while doing so. This generates a series of calls to |
Well... I guess it is a moot effort for the time being. Let me know if you make any progress on this front. |
Julia can cross-compile as long as you can execute the generated executable; so e.g. if you have rosetta available, I think you can cross-compile Julia x86_64 on aarch64. I'm not sure what kind of cross-compilation is happening here though. |
I think we're cross compiling from a x86_64 Azure host running macOS for an aarch64 macOS target. |
@conda-forge/help-osx-arm64 is there any way we can use a self-hosted macOS agent for building the arm64 binaries? Or is there a way we can upload binaries manually? Unless I misunderstand @staticfloat it sounds like Julia may not support osx-64 => osx-arm64 cross-compilation right now. But osx-arm64 => osx-arm64 builds seem to be working. |
@ngam @mkitti I also get stuck at 38/41 of the precompilation. This tip might provide some debugging info: JuliaLang/julia#37777 (comment) Edit: it gets stuck here: Profile.@profile while Profile.len_data() < 1000; rand(10,10) * rand(10,10); end This seems like a bad idea for a precompilation statement... It's an infinite while loop. I guess the profiler isn't getting any samples out of this. Edit: I will add the following patch file to this branch: - debug_output = devnull # or stdout
+ debug_output = stdout |
@MilesCranmer could you point your PR to this repo? |
Sure. Also I added a patch for the infinite precompilation (I'm going to patch this in Julia too, it seems like it is maybe not a great idea to have a unbounded while loop during precompilation...) Edit: looks like they actually patched it already. |
@MilesCranmer we do this for quite a few difficult packages (e.g., PyTorch, TensorFlow, and at least at some point QT) that are usually impossible to build within 6 hours of free public CI. There is a procedure outlined somewhere (under a CFEP, conda-forge enhancement proposal). Once we test the package in #252, I will tag the appropriate people to make it happen and formalize it.
Thanks @staticfloat and @mkitti; is there an issue upstream to follow progress on this front? Do we think it's happening soon? |
Julia does not support cross compilation of Julia code, the only reason it works the other way is because Apple built an emulator, Rosetta 2. |
I think the closest tracking issue is JuliaLang/julia#30338 |
I see, yeah, this doesn’t look like a feature that will be resolved anytime soon (understandably so) |
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)