Repository navigation
Mark JLArray reverse tests broken with JLArrays 0.4.2 and GPUArrays 12.1.1 - #849
Merged
Merged
Conversation
… 12.1.1
GPUArrays 12.1.1 implements `reverse` of GPU vectors with
AcceleratedKernels, whose kernels are unavailable on the JLArrays
backend ("This kernel is unavailable for backend CPU"). The JLArrays
methods that avoid this path are not released yet: the registered
JLArrays 0.4.2 lacks them (JuliaGPU/GPUArrays.jl#817).
Check whether `reverse(::JLArray)` actually works instead of where the
method is defined, which also covers JLArrays < 0.4.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
devmotion
force-pushed
the
dmw/fix-gpu-reverse
branch
from
October 16, 2026 14:54
eb5511a to
b5772ea
Compare
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.
With GPUArrays 12.1.1 and the latest registered JLArrays (0.4.2),
reverse(::JLArray)throwsThis kernel is unavailable for backend CPU. This breaks the two@gpureversetests intest/rulesets/Base/array.jlon every CI job (seen in #848).GPUArrays 12.1.1 (JuliaGPU/GPUArrays.jl#815) implements
reverseof GPU vectors with AcceleratedKernels, whose kernels are not available on the JLArrays backend. The same upstream PR added JLArrays methods that avoid this path, but no JLArrays version with them has been released yet. The registered 0.4.2 lacks them. I reported this as JuliaGPU/GPUArrays.jl#817. With GPUArrays 12.1.0, or with JLArrays from GPUArrays'main, the calls work.This PR checks whether
reverse(::JLArray)actually works, instead of checking where the method is defined, and uses@gpu_brokenwhen it doesn't. The check also covers JLArrays < 0.4, wherereverseneeds scalar indexing. Once a fixed JLArrays is released, the tests will run as@gpuagain automatically.Tested locally with Julia 1.10, GPUArrays 12.1.1 and JLArrays 0.4.2:
Pkg.test(test_args=["rulesets/Base/array"])passes (7286 passed, 18 broken).🤖 Generated with Claude Code