Support LLVM 23's library-based NVPTX backend - #161
Merged
Merged
Conversation
AntonOresten
marked this pull request as draft
September 11, 2026 11:45
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
The Julia 1.12 CI worker runs matrix_api_safety before wait_registers. That sequence perturbs the quarters variant's instruction scheduling and predicate allocation through debug metadata, although instruction counts and resource usage match. Running the comparison alone passes. Strip debug information before backend code generation in both jobs. Retain the exact encoding comparison across all six attention variants and its ability to catch added spill instructions. Validation: the formerly failing Julia 1.12 sequence passes all 10,179 assertions with CUDA 6.4, backend 23.1.1+2, and coverage enabled. Julia 1.10 and 1.13 each pass all 301 host and offline wait assertions.
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.
NVPTX_LLVM_Backend_jll 23 replaces the
llcexecutable withlibnvptx. Migrate PTX's registry, wrapper adaptations, and conformance tests together so the package works with CUDA.jl 6.4 and its library-based backend (CUDA.jl#3267, GPUCompiler.jl#930).Require CUDACore/CUDATools 6.4 or later and resolve registered releases.
.ci/prepare.jlrefreshes cached registries and creates isolated test/documentation environments across supported Julia versions, including Julia 1.10. CUDA and the backend remain weak dependencies of PTX.Validation with registered CUDACore/CUDATools/CUPTI/NVML 6.4.0, GPUCompiler 2.8.0, LLVM.jl 9.13.1 and NVPTX_LLVM_Backend_jll 23.1.1+2:
host/nvvm,host/conformance,host/nvptx_backend,host/effect_ceiling,host/warp_reduce,host/wrappers,host/tensor_map,host/aquaandptxas/golden.gpu/sm121a_smoke, executed on GB10 with CUDA compiler 13.4.59.host/matrix_api_safetyfollowed byptxas/wait_registers), coverage enabled, and the exact CI backend build 23.1.1+2. Julia 1.10 and 1.13 each pass 301/301 assertions acrosshost/wait_registersandptxas/wait_registers. All six instruction streams remain byte-identical.Supersedes the compatibility-only updates in #155, #156 and #157.