Skip to content

KernelAbstractions 0.10 - #625

Closed
christiangnrd wants to merge 6 commits into
JuliaGPU:mainfrom
christiangnrd:intrinsics
Closed

christiangnrd wants to merge 6 commits into
JuliaGPU:mainfrom
christiangnrd:intrinsics

Conversation

@christiangnrd

Copy link
Copy Markdown
Member

No description provided.

@michel2323 michel2323 added the alcf-ci Run ALCF Aurora CI (GitLab) on this fork PR label Aug 24, 2026
@christiangnrd
christiangnrd force-pushed the intrinsics branch 5 times, most recently from b17c721 to 0b25323 Compare September 7, 2026 23:34
@christiangnrd
christiangnrd force-pushed the intrinsics branch 2 times, most recently from e0191ff to 62848d0 Compare September 11, 2026 21:00
@christiangnrd
christiangnrd force-pushed the intrinsics branch 6 times, most recently from d3b0f28 to eb64fcf Compare September 26, 2026 19:34
christiangnrd and others added 6 commits September 28, 2026 07:08
In preparation for KernelAbstractions becoming a weak dependency.
The `sub_group_size` compiler keyword sets the `intel_reqd_sub_group_size` metadata of the kernel, defaulting to 32.
Implement KernelInterface next to the KernelAbstractions back end, which
moves to oneAPIKernelsOld.jl until the port to KernelAbstractions 0.10.

The per-dimension launch limits (`max_work_group_dims`, `max_num_groups`)
come from the Level Zero compute properties. Every auto-sized launch
queries them, so they are cached per device.

The KernelInterface test suite runs as the `kernelinterface` test. Its
events test is skipped when every submission synchronizes (the Aurora LTS
workaround, ONEAPI_SYNC_EACH_SUBMISSION), as the ordering it checks is not
observable then.

Co-authored-by: Tim Besard <tim.besard@gmail.com>
Needed to make JuliaGPU/KernelAbstractions.jl#659 pass CI. We should eventually add RNG support to oneAPI by using a similar approach to OpenCL.jl, but lets skip these tests for now
KernelAbstractions 0.10 builds on KernelInterface, so the KernelInterface
back end becomes `oneAPIBackend` and the old KernelAbstractions back end
is removed. What remains specific to KernelAbstractions (launching
`@kernel` functions, `__validindex`, scratchpads, adapting to the CPU)
moves into a package extension.

Adapting to the back end (`adapt(oneAPIBackend(), x)`) is now defined next
to the back end, as KernelAbstractions 0.10 requires of every back end.

Since KernelAbstractions 0.10, an ndrange may contain ranges, so the
preliminary and the tuned workgroup size, as well as the number of items
used by the prefer_blocks heuristic, are computed from the number of
indices along each dimension rather than from the raw ndrange. An empty
ndrange returns before compiling.

The KernelAbstractions tests that only apply to the CPU back end are
skipped.

Co-authored-by: Tim Besard <tim.besard@gmail.com>
KernelAbstractions 0.10 is unreleased, and the released AcceleratedKernels does not support it yet.
@maleadt

maleadt commented Sep 30, 2026

Copy link
Copy Markdown
Member

#653

@maleadt maleadt closed this Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

alcf-ci Run ALCF Aurora CI (GitLab) on this fork PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants