Skip to content

Update GPUArrays requirement from 11 to 11, 12.2 - #54

Merged
nHackel merged 1 commit into
mainfrom
dependabot/julia/GPUArrays-11-and-12.2
Nov 7, 2026
Merged

nHackel merged 1 commit into
mainfrom
dependabot/julia/GPUArrays-11-and-12.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 5, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on GPUArrays to permit the latest version.

Release notes

Sourced from GPUArrays's releases.

v12.2.0

GPUArrays v12.2.0

Diff since v12.1.1

Merged pull requests:

Closed issues:

  • Concatenation (#92)
  • Generic softmax (#96)
  • Convolutions and Pooling (#102)
  • Re-add convolution kernel (#117)
  • TestSuite.compare does not handle Nothing (#272)
  • mean can overflow on integer inputs (#819)
  • Better error for map! misuse (#482)
  • Vectorized getindex of wrapped array falls back to scalar indexing (#509)
  • Test copy constructor (#557)
  • Add support for rand(rng, n) (#578)
  • Kronecker product between Diagonal and AbstractGPUArray (#585)
  • Hermitian() wrapper missing a GPU compatible iterator (#586)
  • Adding @​views yields ambiguity for certain assignment of mutable CuArray (#587)
  • GPUArrays rand seeding fails when container is bigger than workgroup size (#643)
  • Statistics.mean(Float32, arr, dims=1) throws KernelError (#611)
  • kron doesn't support Diagonals (#668)
  • Missing indexing on GPUSparseDeviceMatrixCSC (#730)
  • JLArrays 0.4 takes ~4.5 s to load (was 0.5 s), spent activating its methods (#807)
  • Storage-level matrix-vector mul! scalar-indexes step views (#816)
  • @fastmath reductions are 2–5× slower: no neutral_element for Base.FastMath.max_fast and co. (#833)
  • Range getindex and setindex! are up to 17× slower than copyto!: getindex_generated/setindex_generated are not inlined (#837)
Changelog

Sourced from GPUArrays's changelog.

GPUArrays.jl release history

This document lists the noteworthy changes in GPUArrays.jl releases that back-ends act on, newest first, aimed at the authors of back-end packages. For the complete list of merged pull requests, see the GitHub releases.

v12.1

GPUArrays defines Base.dataids and Base.mightalias for every AbstractGPUArray. A back-end that implements the new GPUArrays.memory_location hook (the coordinate of an array's allocation, normally its address, and its byte offset into it) gets precise alias detection: disjoint views of one buffer don't alias, empty arrays alias nothing on every Julia version, and SubArrays of two such arrays are compared without converting their parents to pointers. Arrays wrapped in a SubArray or other wrapper are still compared by allocation, which is conservative. Back-ends should implement the hook and delete their own dataids and mightalias methods, which would keep winning dispatch.

v12.0

Base's reductions, sorting, scans, findall, logical indexing and reverse are now implemented once for every AnyGPUArray, on top of AcceleratedKernels.jl (AK) 0.5. A back-end gets all of them by defining nothing beyond the array interface and a KernelAbstractions back-end, and they follow Base's semantics: stable sorting by default, init applied once, no neutral element needed, Base's result types, empty results and errors.

Breaking changes for back-ends:

  • The GPUArrays.mapreducedim! hook is removed and GPUArrays no longer picks neutral elements. Every Base reduction goes to AK directly. Back-ends must delete their methods for the hook, together with the reduction kernels only it used.
  • GPUArrays.default_rng and the deprecated RNG(state::AbstractGPUArray) and seed!(rng, ::Vector{UInt32}) methods are removed. Construct the RNG with RNG{AT}() and seed it with an integer.
  • KernelAbstractions 0.9.43 or later and Adapt 4.7.3 or later are required.

What back-ends should delete:

Methods narrower than GPUArrays' keep winning dispatch, so a back-end that keeps its own findall, to_index/to_indices, _accumulate!/accumulate, sort!/sortperm!/ partialsort!, or reverse! bypasses GPUArrays' Base conformance, and some of those methods are ambiguous with GPUArrays' (e.g. findall(f, ::MyArray) against findall(::Fix2{typeof(in)}, ::AnyGPUArray)). Delete them.

A vendor sort or scan (e.g. one built on MPSGraph) can stay as a fast path, as long as it falls back to GPUArrays' method for the cases it doesn't handle and accepts AK's algorithm objects (alg=AK.MergeSort() etc.). There is no extension point for vendor reductions; GPUArrays._ak_mapreducedim! is internal.

... (truncated)

Commits
  • 4c71d50 Bump version.
  • d88ea8e Define copyto! for GPU Diagonals (#829)
  • 111f0b9 Inline the range indexing kernel bodies and launch getindex linearly (#839)
  • a74fe95 Define neutral elements for the @​fastmath reduction operators (#840)
  • 33c7073 Require support for arrays of isbits unions in the testsuite (#835)
  • 4eead0c Fix sparse mapreduce for operators other than + (#796)
  • 9b3052c Don't launch a kernel to permute empty arrays (#798)
  • 523f963 Reduce with operators not known to commute in element order (#822)
  • da93fde Let Base handle zero-source map! on GPU arrays (#824)
  • 685d1c1 Accumulate mean in floating point and divide afterwards (#825)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [GPUArrays](https://github.com/JuliaGPU/GPUArrays.jl) to permit the latest version.
- [Release notes](https://github.com/JuliaGPU/GPUArrays.jl/releases)
- [Changelog](https://github.com/JuliaGPU/GPUArrays.jl/blob/main/NEWS.md)
- [Commits](JuliaGPU/GPUArrays.jl@v11.0.0...v12.2.0)

---
updated-dependencies:
- dependency-name: GPUArrays
  dependency-version: 12.2.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file julia Pull requests that update julia code labels Nov 5, 2026
@nHackel
nHackel merged commit eeef7f0 into main Nov 7, 2026
6 checks passed
@dependabot
dependabot Bot deleted the dependabot/julia/GPUArrays-11-and-12.2 branch November 7, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file julia Pull requests that update julia code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant