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.
I thought maybe it would be good to have
isequal
work for GPU arrays? The AbstractArray fallback contains an explicit loop, so without this PR,isequal(::AnyGPUArray, ::AnyGPUArray)
hits scalar indexing.I also added some tests for
==
andisequal
, including edge cases where they differ.PS. Note that
isapprox
is also broken for GPU arrays wheneverisfinite(norm(A - B)) == false
(e.g., when the arrays contain Infs or NaNs) because the elementwise fallback iterates sequentially. I've proposed that this be fixed in base: JuliaLang/julia#44893. However, if this is rejected on account of performance I guess GPUArrays.jl should get it's ownisapprox
as well.