Repository navigation
Officially add Windows ARM64 to tier 1.5 #10549
Description
Activity
- addedneeds triage/maintainer discussionFor an issue/PR that needs discussion at a triage/maintainer meetingFor an issue/PR that needs discussion at a triage/maintainer meeting
on Apr 20, 2026 This was discussed during the maintainer meeting today and no objections to moving forward with this were raised:
Hi, just wanted to update this issue to note that we are actively working on this. I don't have a precise ETA yet, because we expect to discover if LLVM (especially MCJIT) has any yet-unknown Windows ARM64 bugs that impact Numba. We're hoping to have something building in GHA, even if not fully working, by the end of the month, and want to ship experimental packages hopefully around the time that Python 3.15 is released.
Hi @seibert
Currently, there is one bug in llvmlite on windows ARM64 which is affecting the Unicodesets test cases in Numba. Kindly refer to the following trackers:
- Fix invalid fixup errors on Windows ARM64: Fix invalid fixup errors on Windows ARM64 llvmlite#1427
- JIT compilation fails with uimm12 fixup error for large UniTuple arguments: JIT compilation fails with uimm12 fixup error for large UniTuple arguments #10619
Thanks
Hi @seibert,
Now that the PR fixing the Numba UnicodeSet test failures has been merged, could you share the ETA for the Windows ARM64 releases?Hi @seibert, Now that the PR fixing the Numba UnicodeSet test failures has been merged, could you share the ETA for the Windows ARM64 releases?
Hello @MugundanMCW,
Release candidates for llvmlite 0.49 and Numba 0.67 are currently being prepared. These releases will include numpy2.5 support and the first Windows ARM64 binaries, both conda packages and wheels.Reacted by stonebigThanks @swap357 for sharing the ETA
Windows-arm64 wheels are now available with
Numba 0.67.0andllvmlite 0.49.0
https://pypi.org/project/numba/0.67.0/#files
Please test and post any findings.Reacted by MUGUNDANReacted by Gleb Khmyznikovsure @swap357, thanks
I have tried this with python 3.14 and 3.11 on both Windows and WSL, but unfortunately still have the same compilation error. Testing the minimal example from the docs:
from numba import jit import numpy as np x = np.arange(100).reshape(10, 10) @jit def go_fast(a): trace = 0.0 for i in range(a.shape[0]): trace += np.tanh(a[i, i]) return a + trace print(go_fast(x))
gives
DefIdx 1 exceeds machine model writes for early-clobber %25:gpr64sp, %26:gpr64 = LDRXpost %4:gpr64sp(tied-def 0), 8 ::(load (s64) from %ir.lsr.iv9) (Try with MCSchedModel.CompleteModel set to false)incomplete machine model UNREACHABLE executed at C:\a\_temp\conda-base\conda-bld\llvmdev_1782178184130\work\llvm\lib\CodeGen\TargetSchedule.cpp:226!Numba was installed in a clean venv from the wheel.
numba -s from Windows with Python 3.14
__Time Stamp__ Report started (local time) : 2026-08-14 10:20:00.170197 UTC start time : 2026-08-14 08:20:00.170223 Running time (s) : 2.661254 __Hardware Information__ Machine : ARM64 CPU Name : oryon-1 CPU Count : 12 Number of accessible CPUs : ? List of accessible CPUs cores : ? CFS Restrictions (CPUs worth of runtime) : None CPU Features : aes bf16 crc dotprod fullfp16 i8mm jsconv lse rcpc sha2 Memory Total (MB) : 59973 Memory Available (MB) : 19395 __OS Information__ Platform Name : Windows-11-10.0.26200-SP0 Platform Release : 11 OS Name : Windows OS Version : 10.0.26200 OS Specific Version : 11 10.0.26200 SP0 Multiprocessor Free Libc Version : ? __Python Information__ Python Compiler : MSC v.1944 64 bit (ARM64) Python Implementation : CPython Python Version : 3.14.4 Python Locale : en_AU.cp1252 __Numba Toolchain Versions__ Numba Version : 0.67.0 llvmlite Version : 0.49.0 __LLVM Information__ LLVM Version : 22.1.0 __CUDA Information__ CUDA Target Implementation : Built-in CUDA Device Initialized : False CUDA Driver Version : ? CUDA Runtime Version : ? CUDA NVIDIA Bindings Available : ? CUDA NVIDIA Bindings In Use : ? CUDA Minor Version Compatibility Available : ? CUDA Minor Version Compatibility Needed : ? CUDA Minor Version Compatibility In Use : ? CUDA Detect Output: None CUDA Libraries Test Output: None __NumPy Information__ NumPy Version : 2.5.2 NumPy Supported SIMD features : ('NEON', 'NEON_FP16', 'NEON_VFPV4', 'ASIMD') NumPy Supported SIMD dispatch : ('ASIMDHP', 'ASIMDDP', 'ASIMDFHM') NumPy Supported SIMD baseline : ('NEON', 'NEON_FP16', 'NEON_VFPV4', 'ASIMD') __SVML Information__ SVML State, config.USING_SVML : False SVML Library Loaded : False llvmlite Using SVML Patched LLVM : False SVML Operational : False __Threading Layer Information__ TBB Threading Layer Available : False +--> Disabled due to Unknown import problem. OpenMP Threading Layer Available : True +-->Vendor: MS Workqueue Threading Layer Available : True +-->Workqueue imported successfully. __Numba Environment Variable Information__ None found. __Conda Information__ Conda not available. __Installed Packages__ Package Version -------- ------- llvmlite 0.49.0 numba 0.67.0 numpy 2.5.2 pip 26.2.1 No errors reported. __Warning log__ Warning (cuda): CUDA driver library cannot be found or no CUDA enabled devices are present. Exception class: <class 'numba.cuda.cudadrv.error.CudaSupportError'> Warning: Conda not available. Warning (psutil): psutil cannot be imported. For more accuracy, consider installing it.Looks like another oryon-specific backend error in LLVM. @jasperlittle if you set the environment variable
NUMBA_CPU_NAME="generic", does that work around the issue?@gmarkall yup, that works fine on both Windows and WSL
This might be same issue as #10388 and needs this suggested patch #10388 (comment) to llvmdev. I'm working to rebuild
llvmdevfor next release as part of manylinux image upgrade (numba/llvmlite#1471), can someone open a PR with that patch to llvmdev recipe ? I can review it.Reacted by MUGUNDANYeah sure @swap357, let me create a PR with this patch
@seibert I think with the availability of artifacts for
win-arm64and a mention in the docs:Wheel packages on the PyPI distribution system and conda packages on the Anaconda dot org distribution system for Python 3.14 only. Support for additional Python versions may be added in the future. win-arm64 (Windows on 64-bit ARM)This can be closed now? Artifacts are available, CI is setup, support is documented.
FYI: since more versions below 3.14 are no supported, here is a PR to update the docs:
As per the Tier 1.5 discussion in #10406 (and the open PR to add the definition into the docs in #10548), I'd like to propose we add Windows ARM64 to Tier 1.5 over the next few months.
Windows on ARM64 is becoming more popular, and we've seen several requests for native support:
Initially I think we should add just Python 3.14 support (no free-threading) as a test. I expect most bugs will be either related to word sizes or LLVM linker issues with MCJIT, so once we are happy with it, we can talk about expanding the support to more Python versions.