Support LLVM 22 with Numba 0.66 - #75
Open
awennersteen wants to merge 11 commits into
Open
awennersteen wants to merge 11 commits into
awennersteen wants to merge 11 commits into
Conversation
Numba 0.66 selects llvmlite 0.48 and LLVM 22. This dependency change must land with the following LLVM 22 compiler and runtime update; it is not validated as a standalone release. Assisted-by: Codex
Adapt OpenMPIRBuilder configuration, reduction and target arguments, plugin headers, and the GPU parallel runtime ABI. Port the runtime patches and build the relocated GPU device bitcode separately. Update LLVM build pins and document the tested platform limits. Validated together with Numba 0.66: 120 host tests, 68 mandatory host-offload tests, and four mandatory RTX 3080 offload tests passed. The full GPU suite and other platforms remain unverified. Assisted-by: Codex
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
README First
This PR is largely developed with Codex on GPT6-Astra medium. It was originally done for me to be able to test some experimental code of my own.
I provide it for the maintainers, since I've seen that in #71 you note that you were going to make the update.
I'm happy to make the effort needed to make this merged, but I'm also happy for the maintainers to decide that its easier to do it yourself.
Description
Build PyOMP's OpenMP pass, host runtime, offload runtime, and GPU device bitcode with LLVM 22.1.8, targeting Numba 0.66.x and llvmlite 0.48.x.
The Numba dependency changes from >=0.62,<0.64 to >=0.66,<0.67 to match llvmlite 0.48's LLVM 22 stack, following the compiler-stack updates in upstream PR #37 and PR #45. Broader cross-version bitcode compatibility has not been validated. Python 3.10–3.14 and Linux x86_64, Linux ARM64, and macOS ARM64 remain in CI.
The implementation adapts LLVM APIs and libomptarget patches and builds NVPTX/AMDGPU device bitcode separately, excluding host CPU flags. Package builds disable LLVM's offload tests and unit tests. Linux and macOS wheels use LLVM 22.1.8 from conda-forge through the existing Miniforge setup. Linux wheels link the compiler runtimes statically for manylinux compatibility.
Validation
CI results for current commit
66690ff:MODAL_TOKEN_IDandMODAL_TOKEN_SECRET.test_omp_get_wtime(0.2597 seconds versus 0.25 expected). The remaining matrix jobs were cancelled by fail-fast, so the Conda matrix is not fully validated on this commit.