Skip to content

KernelAbstractions 0.10 - #3302

Closed
christiangnrd wants to merge 2 commits into
interfacefrom
intrinsics
Closed

christiangnrd wants to merge 2 commits into
interfacefrom
intrinsics

Conversation

@christiangnrd

Copy link
Copy Markdown
Member

#2944 but on this repo so it can stack

@christiangnrd
christiangnrd added this pull request to stack #3303 September 26, 2026 19:51
maleadt added a commit to JuliaGPU/KernelAbstractions.jl that referenced this pull request Sep 27, 2026
The fork branch this used to point to is gone; the KernelAbstractions 0.10 port
is now JuliaGPU/CUDA.jl#3302, and the branch this points to builds on it.
@codecov

codecov Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.14286% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 38.59%. Comparing base (c0b84a2) to head (290e9a5).
⚠️ Report is 2 commits behind head on interface.

Files with missing lines Patch % Lines
CUDACore/ext/KernelAbstractionsExt.jl 94.23% 3 Missing ⚠️
CUDACore/src/CUDAKernels.jl 98.00% 1 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff               @@
##           interface    #3302       +/-   ##
==============================================
- Coverage      85.77%   38.59%   -47.18%     
==============================================
  Files            188      188               
  Lines          19130    18660      -470     
==============================================
- Hits           16408     7202     -9206     
- Misses          2722    11458     +8736     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

maleadt added a commit to JuliaGPU/KernelAbstractions.jl that referenced this pull request Sep 27, 2026
The fork branch this used to point to is gone; the KernelAbstractions 0.10 port
is now JuliaGPU/CUDA.jl#3302, and the branch this points to builds on it.
maleadt added a commit to JuliaGPU/KernelAbstractions.jl that referenced this pull request Sep 27, 2026
The fork branch this used to point to is gone; the KernelAbstractions 0.10 port
is now JuliaGPU/CUDA.jl#3302, and the branch this points to builds on it.
maleadt added a commit to JuliaGPU/KernelAbstractions.jl that referenced this pull request Sep 27, 2026
The fork branch this used to point to is gone; the KernelAbstractions 0.10 port
is now JuliaGPU/CUDA.jl#3302, and the branch this points to builds on it.
maleadt added a commit to JuliaGPU/KernelAbstractions.jl that referenced this pull request Sep 27, 2026
The fork branch this used to point to is gone; the KernelAbstractions 0.10 port
is now JuliaGPU/CUDA.jl#3302, and the branch this points to builds on it.
maleadt added a commit to JuliaGPU/KernelAbstractions.jl that referenced this pull request Sep 27, 2026
The fork branch this used to point to is gone; the KernelAbstractions 0.10 port
is now JuliaGPU/CUDA.jl#3302, and the branch this points to builds on it.
@maleadt maleadt mentioned this pull request Sep 27, 2026
maleadt added a commit to JuliaGPU/KernelAbstractions.jl that referenced this pull request Sep 27, 2026
The fork branch this used to point to is gone; the KernelAbstractions 0.10 port
is now JuliaGPU/CUDA.jl#3302, and the branch this points to builds on it.
christiangnrd and others added 2 commits September 28, 2026 07:05
With KernelAbstractions 0.10, back-ends implement KernelInterface, and
KernelAbstractions builds on top of that. `CUDABackend` is now the
KernelInterface back-end from CUDACore (`CUDAInterface.jl` replaces
`CUDAKernels.jl`, and its module is renamed to `CUDAKernels`), and
only the KernelAbstractions-specific bits (kernel launch, `@index`
bounds checking, scratch memory, `@Const` adaptation) remain, in a
`KernelAbstractionsExt` package extension.

- require KernelAbstractions 0.10, taken from its main branch for the
  time being ([sources] in test/Project.toml). The Julia 1.10 and 1.11
  CI jobs develop it from git, as 1.10 ignores [sources] and 1.11
  doesn't see the test project's when instantiating the workspace, and
  the GPU-less job moves to Julia 1.12 for the same reason;
- cuSPARSE extends `KernelInterface.get_backend`, which is the same
  function as `KernelAbstractions.get_backend` in KA 0.10, so it no
  longer depends on KernelAbstractions;
- `CUDA.versioninfo` reports KernelAbstractions only when it's loaded;
- skip the KA tests that launch kernels on the POCL-based CPU back-end.

Co-authored-by: Tim Besard <tim.besard@gmail.com>
Dogfood the KernelInterface device API (`get_local_id`, `get_group_id`,
`get_local_size`, `get_num_groups`, `barrier`, `localmemory`) in the
mapreduce, scan, `findall` and RNG kernels.

The indices are requested as `Int32`, matching CUDA's hardware indices:
KernelInterface defaults to `Int`, which turns the index arithmetic into
64-bit operations and made reductions 2x, scans and `findall` 4-7x, and
in-kernel `rand` 15x slower.

Co-authored-by: Tim Besard <tim.besard@gmail.com>
@maleadt

maleadt commented Sep 30, 2026

Copy link
Copy Markdown
Member

#3314

@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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants