Skip to content

Fix the ordered reduction's vector loads after the SIMD.jl removal - #175

Merged
maleadt merged 2 commits into
mainfrom
tb/ordered-vloada
Oct 23, 2026
Merged

maleadt merged 2 commits into
mainfrom
tb/ordered-vloada

Conversation

@maleadt

@maleadt maleadt commented Oct 23, 2026

Copy link
Copy Markdown
Member

Fix the ordered reduction's vector loads after the SIMD.jl removal

#165 and #168 were merged minutes apart. #165 added a vector load to _mapreduce_ordered! using SIMD.jl's vloada(Vec{W,T}, ptr), but #168 had just replaced that with the llvmcall-based _vloada(Val(W), ptr) and dropped the using SIMD. Each PR passed CI on its own; the combination doesn't compile. With 0.5.8, every GPU back-end therefore fails reduce/mapreduce with commutative=false on dense sources whose vector width divides items_per_thread:

Reason: unsupported use of an undefined name (use of 'AcceleratedKernels.vloada')

This is why main is red (OpenCL, KA host kernels, Buildkite), and it also breaks CI on #137, #140 and JuliaGPU/GPUArrays.jl#822.

The existing vector-load tests in test/generic/reduce.jl (line 1596 onwards) cover this, so no new test is needed. Locally on Julia 1.12, cuda/reduce + opencl/reduce (PoCL) hit 14 errors on main and pass all 36900 tests with this change.

The second commit bumps the version to 0.5.9, so the fix can be released right away.

#165 and #168 were merged on the same day. #165 added a vector load to
the ordered reduction kernel with SIMD.jl's `vloada`, which #168 had
just replaced with an `llvmcall`-based `_vloada` and stopped importing.
The kernel thus failed to compile for dense sources with
`commutative=false` on every GPU back-end, which breaks 0.5.8 and the
existing vector-load tests in test/generic/reduce.jl.
@maleadt
maleadt merged commit 1b8cef4 into main Oct 23, 2026
34 of 35 checks passed
@maleadt
maleadt deleted the tb/ordered-vloada branch October 23, 2026 13:31
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