Skip to content

Support GPUArrays 12 - #541

Open
maleadt wants to merge 1 commit into
mainfrom
tb/gpuarrays-12
Open

maleadt wants to merge 1 commit into
mainfrom
tb/gpuarrays-12

Conversation

@maleadt

@maleadt maleadt commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Ports OpenCL.jl to GPUArrays 12. GPUArrays 12 implements Base's reductions, sorting, scans, findall, logical indexing and reverse once for every GPU array, on AcceleratedKernels 0.5 (JuliaGPU/GPUArrays.jl#790), and no longer calls the GPUArrays.mapreducedim! hook. OpenCL.jl gets sort!, accumulate and the rest for free.

  • Removes OpenCL.jl's reduction kernel (src/mapreduce.jl) and the test of the hook.
  • GPUArrays.default_rng and RNG(state) are gone in GPUArrays 12, so the per-device RNG now lives in gpuarrays_rng() and constructs GPUArrays' stateless RNG{CLArray}() directly.

Intended as a minor release (0.10.13; AcceleratedKernels' weakdep compat is OpenCL = "0.10").

Tested with pocl on Julia 1.13 (pocl and poclc targets): 30,582 pass (main: 27,946). There are 16 errors, both fixed upstream:

@maleadt
maleadt marked this pull request as ready for review October 7, 2026 06:17
@maleadt
maleadt force-pushed the tb/gpuarrays-12 branch 2 times, most recently from df7c258 to f7aca16 Compare October 7, 2026 14:33
GPUArrays 12 implements Base's reductions on AcceleratedKernels and no longer
calls the GPUArrays.mapreducedim! hook, so OpenCL.jl's reduction kernel is
removed. GPUArrays.default_rng is gone too; the per-device RNG backing rand!,
randn! and seed! now lives in OpenCL.jl and constructs GPUArrays' stateless
RNG directly.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant