-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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 Windows on Arm #11472
Comments
Polite ping :) Does anyone has experience with porting conda to new architectures? |
cc @chenghlee, @jezdez |
@pbo-linaro Enabling Windows on ARM support requires a few things, some easier than others.
|
Thanks for taking time to detail steps needed, that's very helpful.
|
Yes; we just need to know if Python on Windows was going to use the macOS name ( |
@chenghlee Both of us are working on this: @pbo-linaro, @nsait-linaro |
cc @zooba (for awareness) |
@zooba Can you answer if the values in #11472 (comment) are the ones in current builds of Python for arm64? |
Yes. However, the two main detections we need are:
Because an ARM64 host can run x86 and x64 builds, just checking the processor isn't enough. But only an ARM64 host can run an ARM64 build, so if Also, the
Also, there's no standard way to specify that a build should be cross-compiled for ARM64. We get to invent one here (the variable used for setuptools is the one set by vcvarsall.bat, which may/may not be appropriate for conda). |
We're just removing the milestone for now, while we're working through the legal parts of this work. |
Can someone kindly provide an outlook/availability for this issue of conda supported/beta on Windows ARM? Thank You |
With Microsoft's and Qualcomm's recent push for Arm64 Windows PCs, it might be interesting to reconsider this issue.
|
A regular x64 conda will run fine on Windows ARM64, however, it will currently only install emulated binaries. conda itself can run fine on a native ARM64 Python (last time we tested it, anyway), so there's nothing to worry about there. It's up to conda-forge right now to add build support for every package to get a truly native ARM64 environment - best to show your interest over here. I'm not sure what the "legal parts" Jannis mentioned in his last post refer to (unless it's the CLA?), so there may be some other things to do here. But this is not the project that needs the encouragement. |
I use the linux subsystem, which is not supported in that there is no miniconda. The above comment played a part in my decision to be one of the first to own a new Surface, but the x86 version would not load. So I have this wonderful machine now sort of useless. Hoping... |
If you're in WSL, then you're in Linux. You'll need an aarch64 build for Linux (probably, I haven't used WSL on ARM64 hardware, but I assume that's how it works). The x86/x64 emulation I refer to above is a Windows feature, not a Linux feature. |
One area this isn't true for yet is packages which depend explicitly on AVX instructions since those aren't yet supported by the x64 emulation layer. A handful of packages don't perform dynamic dispatch but instead bind to the host architecture to pass on to the compiler for auto-vectorization. |
The original post mentions the lack of Windows ARM CI systems, an update is GitHub Actions now have ARM images for both Windows and Linux in public beta. |
Indeed, but for now it's only for paid plans. However, the blog article mentions they will open up this to public repositories by end of the year:
This is a great thing, and will definitely help to support windows-arm64. |
conda-forge has ARM64 machines already available, so if you want to help get their recipes migrated to build up to and including conda, please do. (We donated a build pool while we wait for GitHub support to open up, as they're a single organisation with good coverage, which is far more efficient than trying to do individual projects.) |
Any news on this issue? The demand is growing for the native support. |
Not yet, but it's growing... conda-forge/conda-forge.github.io#1940 |
Checklist
type-feature
tag)What is the idea?
Hi, Linaro is currently working with Microsoft to enable a lot of open source projects to run on Windows on Arm.
We are currently investigating if conda could be easily enabled for this new architecture.
The main blocking point today is the lack of "free" Windows on Arm machines in CI systems.
Azure started deploying Arm server, but this is not a free solution.
Thus, we are targetting cross compilation for now, and we would like to experiment with it, before offering any official support.
Why is this needed
Microsoft is investing a lot of effort in this new architecture, and the numbers of users is growing steadily.
Since conda allows to distribute a lot of software, it is a great way to support a lot of projects through it.
What should happen?
So far, I'm trying to build a package for this new architecture on a custom channel at anaconda.org.
I added a conda_build_config.yaml:
I started with a recipe without any dependencies.
conda-build insists on finding
...\conda-bld\win-arm64\repodata.json
, which, of course, is not available at the time.I managed to bypass this by copying it (locally) from win-64 arch.
Is a support needed on anaconda side to make it work?
After that, I tried to compile a C package. Alas, due to the absence of repodata.json, no compiler package can be found.
Is there a way to define it locally, so I can at least try to build a few packages?
I didn't manage to find useful documentation on porting to new architecture, which, I can understand, is not very frequent.
Where is the best place to get information on this?
Thanks,
Pierrick
Additional Context
No response
The text was updated successfully, but these errors were encountered: