Skip to content

Finalize 0.10: release notes, precompile warnings, compat and CI - #885

Merged
vchuravy merged 4 commits into
mainfrom
tb/finalize-0.10
Oct 12, 2026
Merged

vchuravy merged 4 commits into
mainfrom
tb/finalize-0.10

Conversation

@maleadt

@maleadt maleadt commented Oct 12, 2026

Copy link
Copy Markdown
Member

Loose ends before registering KernelInterface 0.4.0 and KernelAbstractions 0.10.0 (both versions are already set on main).

  • Julia 1.10 precompile warnings: using .POCL brought POCL's @device_code_* macros into KernelAbstractions, where they clash with its own, and POCL's using LLVM.IR clashed with POCL's context. Both now import only the names they use, and precompiling on 1.10 prints no warnings.
  • Release notes: the sub-group entry said KernelInterface 0.4 "adds sub-groups", but 0.3 already had the ids, sub_group_barrier and shfl_down. It now lists what 0.4 adds and says that the layout guarantee moved behind supports_linear_subgroups. Also fixes the cpu= docstring, which said the option was deprecated in 0.11, and a few typos.
  • Compat: GPUToolbox 3.3.2 requires LLVM 9 or earlier, so the floor becomes 3.3.3.
  • TagBot: adds a job for lib/KernelInterface. Its 0.2 and 0.3 releases were never tagged.
  • Buildkite: tests the back ends' main branches again, replacing the sub-group branches that came in with KernelInterface: sub-group shuffles, votes, reductions and scans #831's [TEMP] commit. The Buildkite jobs here will fail until the back ends' KernelInterface 0.4 PRs are merged.

Tested locally on Julia 1.10: KernelAbstractions' test suite passes.

Release notes for the registrations

KernelInterface first: @JuliaRegistrator register subdir="lib/KernelInterface"

Release notes:

## Breaking changes

- `KI.launch` receives a kernel's arguments as one tuple, so that launching kernels with many arguments doesn't allocate (#811).
- Which work-items form a sub-group is no longer specified. Backends whose 1-D work-groups form sub-groups from consecutive work-items report `supports_linear_subgroups` (#815, #831).
- `supports_subgroups` now also promises the votes `sub_group_any`, `sub_group_all` and `sub_group_ballot`. `supports_shuffle` promises `shfl`, `shfl_up` and `shfl_xor` in addition to `shfl_down`, including for `UInt32` (#831).

## New features

- Sub-group shuffles of any `isbits` value, votes, reductions and scans, also within segments of a sub-group. The new capability queries `supports_independent_subgroups` and `supports_partitionable_subgroups` say whether sub-groups and their segments may diverge (#831).

Then KernelAbstractions: @JuliaRegistrator register

Release notes:

## Breaking changes

See the 0.10 section of the changelog: https://juliagpu.github.io/KernelAbstractions.jl/stable/#0.10
In short: the `CPU` backend is now an OpenCL backend running on PoCL, `CPU(; static=true)`, `isgpu`, `@ka_code_llvm` and `@ka_code_typed` were removed, `GPU` is deprecated, `@private` arrays are a `PrivateArray`, `@Const` arguments are constified at launch, and backends implement KernelInterface 0.4.

`using .POCL` brought in POCL's `@device_code_*` macros, which clash with
KernelAbstractions' own, and POCL's `using LLVM.IR` clashed with its
`context`. Import only the names that are used.
KernelInterface 0.3 already had the sub-group ids, `sub_group_barrier` and
`shfl_down`; say what 0.4 adds, and that the layout guarantee moved behind
`supports_linear_subgroups`. Also fix the `cpu=` option's deprecation
version, which said 0.11, and a few typos.
GPUToolbox 3.3.2 requires LLVM 9 or earlier, so with LLVM 10 the effective
lower bound was already 3.3.3. TagBot only tagged the root package; add a job
for lib/KernelInterface, whose 0.2 and 0.3 releases went untagged.
The back ends' KernelInterface 0.4 support is merged into their default
branches, so stop testing the sub-group branches (added temporarily in
#831) and the ka-0.10 branches before them.
@JuliaRegistrator

This comment was marked as off-topic.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Show table
main ff62f40... main / ff62f40...
const/@Const/Float32/262144 0.254 ± 0.0067 ms 0.252 ± 0.0066 ms 1.01 ± 0.038
const/@Const/Float32/65536 0.0857 ± 0.0038 ms 0.0886 ± 0.0035 ms 0.967 ± 0.057
const/@Const/Float64/262144 0.451 ± 0.0097 ms 0.447 ± 0.012 ms 1.01 ± 0.035
const/@Const/Float64/65536 0.134 ± 0.0034 ms 0.135 ± 0.0055 ms 0.992 ± 0.048
const/unmarked/Float32/262144 0.353 ± 0.0095 ms 0.341 ± 0.012 ms 1.04 ± 0.046
const/unmarked/Float32/65536 0.103 ± 0.0024 ms 0.106 ± 0.008 ms 0.976 ± 0.078
const/unmarked/Float64/262144 1.22 ± 0.016 ms 0.624 ± 0.016 ms 1.95 ± 0.056
const/unmarked/Float64/65536 0.174 ± 0.012 ms 0.169 ± 0.012 ms 1.02 ± 0.098
dgsem/2D/Float32/fluxdiff/element 0.342 ± 0.014 ms 0.34 ± 0.01 ms 1 ± 0.052
dgsem/2D/Float32/fluxdiff/node E=8 0.452 ± 0.0097 ms 0.455 ± 0.0085 ms 0.993 ± 0.028
dgsem/2D/Float32/fluxdiff/node halfsweep E=8 0.331 ± 0.011 ms 0.338 ± 0.011 ms 0.98 ± 0.044
dgsem/2D/Float32/fluxdiff/node halfsweep v-last E=8 0.345 ± 0.0081 ms 0.35 ± 0.011 ms 0.985 ± 0.038
dgsem/2D/Float32/weak/element 0.117 ± 0.0063 ms 0.118 ± 0.0069 ms 0.99 ± 0.078
dgsem/2D/Float32/weak/element private 0.128 ± 0.0058 ms 0.131 ± 0.0032 ms 0.978 ± 0.05
dgsem/2D/Float32/weak/node localmem E=1 0.109 ± 0.0065 ms 0.11 ± 0.0022 ms 0.994 ± 0.062
dgsem/2D/Float32/weak/node localmem E=8 0.108 ± 0.0033 ms 0.109 ± 0.014 ms 0.995 ± 0.14
dgsem/2D/Float32/weak/node localmem v-last E=1 0.168 ± 0.0081 ms 0.165 ± 0.0036 ms 1.02 ± 0.054
dgsem/2D/Float32/weak/node localmem v-last E=8 0.167 ± 0.0088 ms 0.164 ± 0.0082 ms 1.02 ± 0.074
dgsem/2D/Float32/weak/node recompute E=8 0.297 ± 0.0091 ms 0.295 ± 0.0071 ms 1.01 ± 0.039
dgsem/2D/Float64/fluxdiff/element 0.353 ± 0.011 ms 0.352 ± 0.01 ms 1 ± 0.044
dgsem/2D/Float64/fluxdiff/node E=8 0.496 ± 0.011 ms 0.499 ± 0.012 ms 0.995 ± 0.032
dgsem/2D/Float64/fluxdiff/node halfsweep E=8 0.363 ± 0.0097 ms 0.364 ± 0.0082 ms 0.996 ± 0.035
dgsem/2D/Float64/fluxdiff/node halfsweep v-last E=8 0.355 ± 0.014 ms 0.349 ± 0.0096 ms 1.02 ± 0.048
dgsem/2D/Float64/weak/element 0.134 ± 0.01 ms 0.134 ± 0.0098 ms 0.999 ± 0.11
dgsem/2D/Float64/weak/element private 0.136 ± 0.0073 ms 0.135 ± 0.0038 ms 1.01 ± 0.061
dgsem/2D/Float64/weak/node localmem E=1 0.112 ± 0.0028 ms 0.113 ± 0.0025 ms 0.992 ± 0.033
dgsem/2D/Float64/weak/node localmem E=8 0.112 ± 0.0039 ms 0.109 ± 0.0043 ms 1.03 ± 0.055
dgsem/2D/Float64/weak/node localmem v-last E=1 0.166 ± 0.009 ms 0.166 ± 0.005 ms 0.998 ± 0.062
dgsem/2D/Float64/weak/node localmem v-last E=8 0.166 ± 0.0082 ms 0.165 ± 0.0038 ms 1 ± 0.055
dgsem/2D/Float64/weak/node recompute E=8 0.406 ± 0.0087 ms 0.406 ± 0.0089 ms 1 ± 0.031
dgsem/3D/Float32/fluxdiff/element 1.11 ± 0.0093 ms 1.13 ± 0.0095 ms 0.984 ± 0.012
dgsem/3D/Float32/fluxdiff/node E=2 1.85 ± 0.018 ms 1.85 ± 0.018 ms 1 ± 0.014
dgsem/3D/Float32/fluxdiff/node halfsweep E=1 1.16 ± 0.023 ms 1.16 ± 0.033 ms 1.01 ± 0.035
dgsem/3D/Float32/fluxdiff/node halfsweep v-last E=1 1.35 ± 0.018 ms 1.36 ± 0.023 ms 0.989 ± 0.021
dgsem/3D/Float32/weak/element 0.423 ± 0.011 ms 0.433 ± 0.011 ms 0.979 ± 0.036
dgsem/3D/Float32/weak/element private 0.421 ± 0.011 ms 0.411 ± 0.013 ms 1.02 ± 0.042
dgsem/3D/Float32/weak/node localmem E=1 0.542 ± 0.012 ms 0.545 ± 0.01 ms 0.995 ± 0.029
dgsem/3D/Float32/weak/node localmem E=2 0.553 ± 0.011 ms 0.556 ± 0.011 ms 0.993 ± 0.028
dgsem/3D/Float32/weak/node localmem v-last E=1 0.802 ± 0.012 ms 0.819 ± 0.028 ms 0.979 ± 0.037
dgsem/3D/Float32/weak/node localmem v-last E=2 0.805 ± 0.023 ms 0.826 ± 0.019 ms 0.974 ± 0.036
dgsem/3D/Float32/weak/node recompute E=2 1.28 ± 0.041 ms 1.31 ± 0.013 ms 0.973 ± 0.033
dgsem/3D/Float32/weak/slab E=1 1.49 ± 0.026 ms 1.5 ± 0.028 ms 0.995 ± 0.026
dgsem/3D/Float32/weak/slab E=8 4.14 ± 0.038 ms 4.02 ± 0.068 ms 1.03 ± 0.02
dgsem/3D/Float32/weak/slab double-buffered E=1 0.898 ± 0.029 ms 0.935 ± 0.0082 ms 0.96 ± 0.032
dgsem/3D/Float32/weak/slab double-buffered E=8 1.04 ± 0.011 ms 1.06 ± 0.012 ms 0.989 ± 0.015
dgsem/3D/Float32/weak/slab double-buffered v-last E=1 0.937 ± 0.011 ms 0.946 ± 0.022 ms 0.99 ± 0.026
dgsem/3D/Float32/weak/slab double-buffered v-last E=8 1.09 ± 0.013 ms 1.06 ± 0.0096 ms 1.02 ± 0.015
dgsem/3D/Float32/weak/slab v-last E=1 1.48 ± 0.045 ms 1.51 ± 0.028 ms 0.985 ± 0.035
dgsem/3D/Float32/weak/slab v-last E=8 4.26 ± 0.32 ms 3.99 ± 0.37 ms 1.07 ± 0.13
dgsem/3D/Float64/fluxdiff/element 1.16 ± 0.028 ms 1.18 ± 0.0081 ms 0.98 ± 0.025
dgsem/3D/Float64/fluxdiff/node E=2 1.97 ± 0.022 ms 1.93 ± 0.049 ms 1.02 ± 0.028
dgsem/3D/Float64/fluxdiff/node halfsweep E=1 1.19 ± 0.0096 ms 1.16 ± 0.031 ms 1.02 ± 0.029
dgsem/3D/Float64/fluxdiff/node halfsweep v-last E=1 1.41 ± 0.023 ms 1.4 ± 0.013 ms 1.01 ± 0.019
dgsem/3D/Float64/weak/element 0.496 ± 0.013 ms 0.482 ± 0.01 ms 1.03 ± 0.035
dgsem/3D/Float64/weak/element private 0.505 ± 0.011 ms 0.497 ± 0.012 ms 1.02 ± 0.032
dgsem/3D/Float64/weak/node localmem E=1 0.568 ± 0.017 ms 0.566 ± 0.0082 ms 1 ± 0.033
dgsem/3D/Float64/weak/node localmem E=2 0.567 ± 0.011 ms 0.578 ± 0.013 ms 0.981 ± 0.029
dgsem/3D/Float64/weak/node localmem v-last E=1 0.829 ± 0.012 ms 0.819 ± 0.0096 ms 1.01 ± 0.019
dgsem/3D/Float64/weak/node localmem v-last E=2 0.84 ± 0.015 ms 0.828 ± 0.015 ms 1.01 ± 0.026
dgsem/3D/Float64/weak/node recompute E=2 1.41 ± 0.022 ms 1.41 ± 0.016 ms 0.999 ± 0.019
dgsem/3D/Float64/weak/slab E=1 1.5 ± 0.012 ms 1.49 ± 0.014 ms 1 ± 0.013
dgsem/3D/Float64/weak/slab E=8 4.37 ± 0.07 ms 4.34 ± 0.059 ms 1.01 ± 0.021
dgsem/3D/Float64/weak/slab double-buffered E=1 0.935 ± 0.014 ms 0.923 ± 0.0065 ms 1.01 ± 0.017
dgsem/3D/Float64/weak/slab double-buffered E=8 1.07 ± 0.022 ms 1.07 ± 0.013 ms 0.997 ± 0.024
dgsem/3D/Float64/weak/slab double-buffered v-last E=1 0.953 ± 0.029 ms 0.952 ± 0.012 ms 1 ± 0.033
dgsem/3D/Float64/weak/slab double-buffered v-last E=8 1.09 ± 0.011 ms 1.09 ± 0.016 ms 0.997 ± 0.017
dgsem/3D/Float64/weak/slab v-last E=1 1.5 ± 0.017 ms 1.5 ± 0.014 ms 0.998 ± 0.015
dgsem/3D/Float64/weak/slab v-last E=8 3.94 ± 0.37 ms 4.24 ± 0.26 ms 0.93 ± 0.1
launch/3D static workgroup, dynamic ndrange 8.17 ± 0.91 μs 7.12 ± 1.2 μs 1.15 ± 0.23
launch/3D static workgroup, static ndrange 8.14 ± 0.99 μs 8.17 ± 1.1 μs 0.997 ± 0.18
launch/dynamic workgroup, dynamic ndrange 8.42 ± 1.1 μs 8.87 ± 0.79 μs 0.95 ± 0.15
launch/dynamic workgroup, dynamic ndrange, workgroupsize given 8.09 ± 0.99 μs 8.21 ± 1.1 μs 0.986 ± 0.18
launch/static workgroup, dynamic ndrange 8.24 ± 0.97 μs 7.84 ± 1.1 μs 1.05 ± 0.19
launch/static workgroup, static ndrange 8.06 ± 1.1 μs 8.17 ± 1.3 μs 0.987 ± 0.21
narrow workgroup/masked/W=16 0.278 ± 0.0067 ms 0.281 ± 0.0076 ms 0.987 ± 0.036
narrow workgroup/masked/W=4 0.289 ± 0.0086 ms 0.285 ± 0.0083 ms 1.01 ± 0.042
narrow workgroup/unmasked/W=16 0.284 ± 0.0084 ms 0.283 ± 0.008 ms 1.01 ± 0.041
narrow workgroup/unmasked/W=4 0.286 ± 0.0092 ms 0.285 ± 0.008 ms 1 ± 0.043
partition/dynamic workgroup, dynamic ndrange 0.0379 ± 0.016 μs 0.038 ± 0.017 μs 0.998 ± 0.62
partition/static workgroup, dynamic ndrange 0.0424 ± 0.0086 μs 0.0434 ± 0.0087 μs 0.978 ± 0.28
partition/static workgroup, static ndrange 1.64 ± 0.01 ns 1.65 ± 0.01 ns 0.993 ± 0.0085
saxpy/default/Float16/1024 10.1 ± 2.4 μs 8.31 ± 1.4 μs 1.21 ± 0.35
saxpy/default/Float16/1048576 0.37 ± 0.024 ms 0.427 ± 0.04 ms 0.867 ± 0.099
saxpy/default/Float16/16384 16.8 ± 1 μs 15.5 ± 0.85 μs 1.08 ± 0.089
saxpy/default/Float16/2048 8.2 ± 1 μs 9.7 ± 2.3 μs 0.846 ± 0.23
saxpy/default/Float16/256 7.81 ± 0.14 μs 8.1 ± 0.2 μs 0.964 ± 0.03
saxpy/default/Float16/262144 0.109 ± 0.0062 ms 0.116 ± 0.011 ms 0.94 ± 0.11
saxpy/default/Float16/32768 20.4 ± 0.85 μs 20.9 ± 1.5 μs 0.976 ± 0.079
saxpy/default/Float16/4096 8.97 ± 2.8 μs 10 ± 1.1 μs 0.893 ± 0.29
saxpy/default/Float16/512 7.93 ± 0.14 μs 9.09 ± 1.9 μs 0.872 ± 0.18
saxpy/default/Float16/64 7.88 ± 0.14 μs 7.98 ± 0.22 μs 0.987 ± 0.032
saxpy/default/Float16/65536 30.2 ± 2.4 μs 31 ± 1.9 μs 0.975 ± 0.098
saxpy/default/Float32/1024 7.58 ± 0.93 μs 7.93 ± 0.8 μs 0.955 ± 0.15
saxpy/default/Float32/1048576 0.414 ± 0.091 ms 0.496 ± 0.089 ms 0.834 ± 0.24
saxpy/default/Float32/16384 10.6 ± 1.4 μs 14.6 ± 1 μs 0.731 ± 0.11
saxpy/default/Float32/2048 8.16 ± 1.2 μs 8.68 ± 1.1 μs 0.941 ± 0.18
saxpy/default/Float32/256 7.97 ± 0.2 μs 8.06 ± 1.2 μs 0.989 ± 0.15
saxpy/default/Float32/262144 0.103 ± 0.019 ms 0.122 ± 0.057 ms 0.844 ± 0.43
saxpy/default/Float32/32768 19.1 ± 2.1 μs 19 ± 1.3 μs 1 ± 0.13
saxpy/default/Float32/4096 8.55 ± 1.3 μs 9.05 ± 0.67 μs 0.945 ± 0.16
saxpy/default/Float32/512 7.67 ± 0.78 μs 8.16 ± 0.98 μs 0.94 ± 0.15
saxpy/default/Float32/64 7.76 ± 0.18 μs 9.09 ± 1.1 μs 0.853 ± 0.11
saxpy/default/Float32/65536 25.7 ± 2.8 μs 29.3 ± 5 μs 0.879 ± 0.18
saxpy/default/Float64/1024 8.07 ± 1.5 μs 8.6 ± 2.1 μs 0.939 ± 0.29
saxpy/default/Float64/1048576 0.612 ± 0.12 ms 0.782 ± 0.19 ms 0.782 ± 0.24
saxpy/default/Float64/16384 17.1 ± 1.2 μs 18.1 ± 1.5 μs 0.947 ± 0.1
saxpy/default/Float64/2048 8.51 ± 2.3 μs 8.51 ± 0.71 μs 1 ± 0.28
saxpy/default/Float64/256 7.63 ± 0.88 μs 10.3 ± 0.21 μs 0.742 ± 0.087
saxpy/default/Float64/262144 0.137 ± 0.02 ms 0.16 ± 0.019 ms 0.857 ± 0.16
saxpy/default/Float64/32768 23.4 ± 5.6 μs 27.8 ± 5 μs 0.843 ± 0.25
saxpy/default/Float64/4096 8.74 ± 1.5 μs 9.24 ± 1.1 μs 0.946 ± 0.2
saxpy/default/Float64/512 7.9 ± 1.2 μs 7.87 ± 1.2 μs 1 ± 0.21
saxpy/default/Float64/64 7.88 ± 1.2 μs 8.03 ± 1 μs 0.982 ± 0.19
saxpy/default/Float64/65536 0.0347 ± 0.0045 ms 0.0376 ± 0.0042 ms 0.922 ± 0.16
saxpy/static workgroup=(1024,)/Float16/1024 8.01 ± 1 μs 8.38 ± 1.4 μs 0.956 ± 0.2
saxpy/static workgroup=(1024,)/Float16/1048576 0.349 ± 0.025 ms 0.38 ± 0.03 ms 0.92 ± 0.098
saxpy/static workgroup=(1024,)/Float16/16384 14.9 ± 0.68 μs 15.1 ± 0.54 μs 0.981 ± 0.057
saxpy/static workgroup=(1024,)/Float16/2048 8.21 ± 0.96 μs 9.86 ± 2.4 μs 0.832 ± 0.22
saxpy/static workgroup=(1024,)/Float16/256 7.76 ± 0.2 μs 8.29 ± 0.27 μs 0.937 ± 0.039
saxpy/static workgroup=(1024,)/Float16/262144 0.104 ± 0.0064 ms 0.111 ± 0.0094 ms 0.94 ± 0.098
saxpy/static workgroup=(1024,)/Float16/32768 19.6 ± 1.1 μs 19.8 ± 1.9 μs 0.991 ± 0.11
saxpy/static workgroup=(1024,)/Float16/4096 9.67 ± 2.4 μs 9.2 ± 1.1 μs 1.05 ± 0.29
saxpy/static workgroup=(1024,)/Float16/512 7.99 ± 0.24 μs 8.15 ± 1.1 μs 0.981 ± 0.13
saxpy/static workgroup=(1024,)/Float16/64 8.16 ± 0.18 μs 8.25 ± 0.72 μs 0.99 ± 0.09
saxpy/static workgroup=(1024,)/Float16/65536 28.4 ± 5.3 μs 29 ± 1.3 μs 0.981 ± 0.19
saxpy/static workgroup=(1024,)/Float32/1024 8.01 ± 0.88 μs 7.98 ± 1.1 μs 1 ± 0.18
saxpy/static workgroup=(1024,)/Float32/1048576 0.305 ± 0.042 ms 0.418 ± 0.078 ms 0.729 ± 0.17
saxpy/static workgroup=(1024,)/Float32/16384 10.3 ± 1.4 μs 14.2 ± 1.1 μs 0.726 ± 0.12
saxpy/static workgroup=(1024,)/Float32/2048 8.04 ± 1.4 μs 8.45 ± 0.81 μs 0.951 ± 0.19
saxpy/static workgroup=(1024,)/Float32/256 8 ± 0.21 μs 8.15 ± 0.24 μs 0.982 ± 0.039
saxpy/static workgroup=(1024,)/Float32/262144 0.0879 ± 0.014 ms 0.105 ± 0.048 ms 0.835 ± 0.4
saxpy/static workgroup=(1024,)/Float32/32768 18.4 ± 2.9 μs 18.7 ± 1.4 μs 0.984 ± 0.17
saxpy/static workgroup=(1024,)/Float32/4096 8.35 ± 1.4 μs 8.36 ± 1.2 μs 0.998 ± 0.21
saxpy/static workgroup=(1024,)/Float32/512 7.64 ± 1.2 μs 8 ± 0.68 μs 0.955 ± 0.18
saxpy/static workgroup=(1024,)/Float32/64 7.96 ± 0.23 μs 8.07 ± 0.22 μs 0.986 ± 0.039
saxpy/static workgroup=(1024,)/Float32/65536 23.5 ± 5.6 μs 26.5 ± 3.9 μs 0.887 ± 0.25
saxpy/static workgroup=(1024,)/Float64/1024 7.94 ± 1.4 μs 8.04 ± 0.91 μs 0.987 ± 0.2
saxpy/static workgroup=(1024,)/Float64/1048576 0.607 ± 0.092 ms 0.761 ± 0.13 ms 0.797 ± 0.18
saxpy/static workgroup=(1024,)/Float64/16384 11.9 ± 2.2 μs 18.1 ± 1.6 μs 0.655 ± 0.13
saxpy/static workgroup=(1024,)/Float64/2048 8.72 ± 2.5 μs 8.27 ± 1 μs 1.05 ± 0.33
saxpy/static workgroup=(1024,)/Float64/256 7.66 ± 1.2 μs 8 ± 1 μs 0.958 ± 0.19
saxpy/static workgroup=(1024,)/Float64/262144 0.138 ± 0.021 ms 0.145 ± 0.021 ms 0.952 ± 0.2
saxpy/static workgroup=(1024,)/Float64/32768 22.7 ± 5.8 μs 27.5 ± 3 μs 0.824 ± 0.23
saxpy/static workgroup=(1024,)/Float64/4096 8.67 ± 1.7 μs 9.35 ± 2 μs 0.927 ± 0.27
saxpy/static workgroup=(1024,)/Float64/512 8.2 ± 2.4 μs 7.97 ± 0.88 μs 1.03 ± 0.32
saxpy/static workgroup=(1024,)/Float64/64 8 ± 0.19 μs 8.14 ± 0.27 μs 0.983 ± 0.04
saxpy/static workgroup=(1024,)/Float64/65536 0.0333 ± 0.005 ms 0.037 ± 0.009 ms 0.898 ± 0.26
time_to_load 0.37 ± 0.0061 s 0.362 ± 0.011 s 1.02 ± 0.034
main ff62f40... main / ff62f40...
const/@Const/Float32/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/@Const/Float32/65536 9 allocs: 0.203 kB 5 allocs: 0.0938 kB 2.17
const/@Const/Float64/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/@Const/Float64/65536 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/unmarked/Float32/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/unmarked/Float32/65536 9 allocs: 0.203 kB 5 allocs: 0.0938 kB 2.17
const/unmarked/Float64/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/unmarked/Float64/65536 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
dgsem/2D/Float32/fluxdiff/element 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/2D/Float32/fluxdiff/node E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float32/fluxdiff/node halfsweep E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float32/fluxdiff/node halfsweep v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float32/weak/element 6 allocs: 0.109 kB 6 allocs: 0.109 kB 1
dgsem/2D/Float32/weak/element private 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/2D/Float32/weak/node localmem E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float32/weak/node localmem E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float32/weak/node localmem v-last E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float32/weak/node localmem v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float32/weak/node recompute E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/fluxdiff/element 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/2D/Float64/fluxdiff/node E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/fluxdiff/node halfsweep E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/fluxdiff/node halfsweep v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/weak/element 10 allocs: 0.219 kB 6 allocs: 0.109 kB 2
dgsem/2D/Float64/weak/element private 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/2D/Float64/weak/node localmem E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/weak/node localmem E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/weak/node localmem v-last E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/weak/node localmem v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/2D/Float64/weak/node recompute E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/fluxdiff/element 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/3D/Float32/fluxdiff/node E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/fluxdiff/node halfsweep E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/fluxdiff/node halfsweep v-last E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/weak/element 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/3D/Float32/weak/element private 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/3D/Float32/weak/node localmem E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/weak/node localmem E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/weak/node localmem v-last E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/weak/node localmem v-last E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/weak/node recompute E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float32/weak/slab E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/weak/slab E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/weak/slab double-buffered E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/weak/slab double-buffered E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/weak/slab double-buffered v-last E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/weak/slab double-buffered v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/weak/slab v-last E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float32/weak/slab v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/fluxdiff/element 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/3D/Float64/fluxdiff/node E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/fluxdiff/node halfsweep E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/fluxdiff/node halfsweep v-last E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/weak/element 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/3D/Float64/weak/element private 10 allocs: 0.219 kB 10 allocs: 0.219 kB 1
dgsem/3D/Float64/weak/node localmem E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/weak/node localmem E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/weak/node localmem v-last E=1 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/weak/node localmem v-last E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/weak/node recompute E=2 13 allocs: 0.391 kB 13 allocs: 0.391 kB 1
dgsem/3D/Float64/weak/slab E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/weak/slab E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/weak/slab double-buffered E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/weak/slab double-buffered E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/weak/slab double-buffered v-last E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/weak/slab double-buffered v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/weak/slab v-last E=1 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
dgsem/3D/Float64/weak/slab v-last E=8 10 allocs: 0.234 kB 10 allocs: 0.234 kB 1
launch/3D static workgroup, dynamic ndrange 9 allocs: 0.219 kB 9 allocs: 0.219 kB 1
launch/3D static workgroup, static ndrange 9 allocs: 0.219 kB 9 allocs: 0.219 kB 1
launch/dynamic workgroup, dynamic ndrange 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
launch/dynamic workgroup, dynamic ndrange, workgroupsize given 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
launch/static workgroup, dynamic ndrange 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
launch/static workgroup, static ndrange 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
narrow workgroup/masked/W=16 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
narrow workgroup/masked/W=4 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
narrow workgroup/unmasked/W=16 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
narrow workgroup/unmasked/W=4 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
partition/dynamic workgroup, dynamic ndrange 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
partition/static workgroup, dynamic ndrange 2 allocs: 32 B 2 allocs: 32 B 1
partition/static workgroup, static ndrange 0 allocs: 0 B 0 allocs: 0 B
saxpy/default/Float16/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float16/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float16/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float16/32768 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float16/65536 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float32/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float32/262144 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/32768 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float32/65536 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float64/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float64/262144 8 allocs: 0.141 kB 12 allocs: 0.25 kB 0.562
saxpy/default/Float64/32768 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float64/65536 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float16/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float16/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float16/32768 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float16/65536 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float32/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float32/262144 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/32768 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float32/65536 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float64/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float64/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float64/32768 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float64/65536 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
time_to_load 0.2 k allocs: 11.8 kB 0.2 k allocs: 11.8 kB 1

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR.
Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

@vchuravy
vchuravy merged commit 61bd51c into main Oct 12, 2026
54 of 55 checks passed
@vchuravy
vchuravy deleted the tb/finalize-0.10 branch October 12, 2026 21:01
@codecov

codecov Bot commented Oct 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.59%. Comparing base (daccb07) to head (ff62f40).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #885   +/-   ##
=======================================
  Coverage   82.59%   82.59%           
=======================================
  Files          28       28           
  Lines        2454     2454           
=======================================
  Hits         2027     2027           
  Misses        427      427           

☔ 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.

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.

3 participants