Skip to content

Tests for host interface functions - #739

Open
christiangnrd wants to merge 1 commit into
mainfrom
testhostinterface
Open

Tests for host interface functions#739
christiangnrd wants to merge 1 commit into
mainfrom
testhostinterface

Conversation

@christiangnrd

Copy link
Copy Markdown
Member

supports_atomics in Metal.jl is broken and I realized we should probably test the interface definitions

All Claude and I reviewed

@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results

Show table
main e540c24... main / e540c24...
saxpy/default/Float32/1024 29.6 ± 20 μs 0.0327 ± 0.022 ms 0.904 ± 0.87
saxpy/default/Float32/1048576 0.34 ± 0.035 ms 0.349 ± 0.042 ms 0.976 ± 0.15
saxpy/default/Float32/16384 0.0435 ± 0.022 ms 0.0434 ± 0.021 ms 1 ± 0.7
saxpy/default/Float32/2048 0.0449 ± 0.02 ms 0.0485 ± 0.021 ms 0.927 ± 0.58
saxpy/default/Float32/256 29.4 ± 18 μs 26.6 ± 9 μs 1.1 ± 0.78
saxpy/default/Float32/262144 0.112 ± 0.017 ms 0.11 ± 0.016 ms 1.02 ± 0.22
saxpy/default/Float32/32768 0.0459 ± 0.022 ms 0.0476 ± 0.022 ms 0.963 ± 0.64
saxpy/default/Float32/4096 0.0534 ± 0.024 ms 0.052 ± 0.023 ms 1.03 ± 0.64
saxpy/default/Float32/512 26.3 ± 11 μs 30.4 ± 22 μs 0.867 ± 0.73
saxpy/default/Float32/64 25.6 ± 5.9 μs 26.4 ± 6.9 μs 0.97 ± 0.34
saxpy/default/Float32/65536 0.0567 ± 0.022 ms 0.06 ± 0.023 ms 0.944 ± 0.51
saxpy/default/Float64/1024 0.0363 ± 0.022 ms 0.035 ± 0.024 ms 1.04 ± 0.95
saxpy/default/Float64/1048576 0.615 ± 0.069 ms 0.635 ± 0.073 ms 0.969 ± 0.16
saxpy/default/Float64/16384 0.0435 ± 0.022 ms 0.0458 ± 0.023 ms 0.95 ± 0.68
saxpy/default/Float64/2048 0.0478 ± 0.022 ms 0.0472 ± 0.023 ms 1.01 ± 0.68
saxpy/default/Float64/256 25.4 ± 7.5 μs 26.1 ± 8.7 μs 0.972 ± 0.43
saxpy/default/Float64/262144 0.182 ± 0.025 ms 0.185 ± 0.028 ms 0.985 ± 0.2
saxpy/default/Float64/32768 0.0513 ± 0.023 ms 0.0527 ± 0.023 ms 0.974 ± 0.62
saxpy/default/Float64/4096 0.056 ± 0.022 ms 0.0528 ± 0.021 ms 1.06 ± 0.6
saxpy/default/Float64/512 26 ± 10 μs 26.6 ± 12 μs 0.977 ± 0.58
saxpy/default/Float64/64 26 ± 7.5 μs 26.1 ± 5.9 μs 0.997 ± 0.37
saxpy/default/Float64/65536 0.0713 ± 0.025 ms 0.0699 ± 0.023 ms 1.02 ± 0.49
saxpy/static workgroup=(1024,)/Float32/1024 31.6 ± 17 μs 0.032 ± 0.019 ms 0.985 ± 0.78
saxpy/static workgroup=(1024,)/Float32/1048576 0.431 ± 0.073 ms 0.403 ± 0.071 ms 1.07 ± 0.26
saxpy/static workgroup=(1024,)/Float32/16384 0.0442 ± 0.021 ms 0.0453 ± 0.021 ms 0.976 ± 0.64
saxpy/static workgroup=(1024,)/Float32/2048 0.0429 ± 0.019 ms 0.0442 ± 0.019 ms 0.971 ± 0.6
saxpy/static workgroup=(1024,)/Float32/256 31.4 ± 15 μs 30.8 ± 18 μs 1.02 ± 0.76
saxpy/static workgroup=(1024,)/Float32/262144 0.139 ± 0.016 ms 0.152 ± 0.015 ms 0.916 ± 0.14
saxpy/static workgroup=(1024,)/Float32/32768 0.0505 ± 0.02 ms 0.0505 ± 0.02 ms 0.999 ± 0.56
saxpy/static workgroup=(1024,)/Float32/4096 0.0505 ± 0.017 ms 0.0504 ± 0.017 ms 1 ± 0.48
saxpy/static workgroup=(1024,)/Float32/512 0.0329 ± 0.018 ms 31.6 ± 16 μs 1.04 ± 0.77
saxpy/static workgroup=(1024,)/Float32/64 30.8 ± 14 μs 29.9 ± 15 μs 1.03 ± 0.69
saxpy/static workgroup=(1024,)/Float32/65536 0.062 ± 0.02 ms 0.0638 ± 0.019 ms 0.973 ± 0.43
saxpy/static workgroup=(1024,)/Float64/1024 0.0342 ± 0.02 ms 0.0349 ± 0.021 ms 0.978 ± 0.81
saxpy/static workgroup=(1024,)/Float64/1048576 0.653 ± 0.091 ms 0.651 ± 0.1 ms 1 ± 0.21
saxpy/static workgroup=(1024,)/Float64/16384 0.044 ± 0.02 ms 0.0466 ± 0.022 ms 0.943 ± 0.63
saxpy/static workgroup=(1024,)/Float64/2048 0.049 ± 0.022 ms 0.0465 ± 0.022 ms 1.05 ± 0.7
saxpy/static workgroup=(1024,)/Float64/256 30.7 ± 9.9 μs 31.1 ± 14 μs 0.988 ± 0.54
saxpy/static workgroup=(1024,)/Float64/262144 0.198 ± 0.021 ms 0.189 ± 0.02 ms 1.05 ± 0.16
saxpy/static workgroup=(1024,)/Float64/32768 0.0528 ± 0.021 ms 0.0551 ± 0.021 ms 0.959 ± 0.53
saxpy/static workgroup=(1024,)/Float64/4096 0.0504 ± 0.018 ms 0.052 ± 0.018 ms 0.969 ± 0.49
saxpy/static workgroup=(1024,)/Float64/512 30.7 ± 13 μs 30.8 ± 17 μs 0.996 ± 0.69
saxpy/static workgroup=(1024,)/Float64/64 30.8 ± 13 μs 30.1 ± 15 μs 1.02 ± 0.66
saxpy/static workgroup=(1024,)/Float64/65536 0.0741 ± 0.019 ms 0.0749 ± 0.019 ms 0.989 ± 0.36
time_to_load 0.751 ± 0.024 s 0.758 ± 0.0094 s 0.991 ± 0.034

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

@christiangnrd

christiangnrd commented Jul 28, 2026

Copy link
Copy Markdown
Member Author

Metal failure is fixed by JuliaGPU/Metal.jl#894.

oneAPI and CUDA fail because they return a device instead of nothing but that's not specified in the interface so probably just remove the tests?

@christiangnrd

Copy link
Copy Markdown
Member Author

Similarly, priority! in AMDGPU returns the symbol instead of nothing, but that's not specified in the interface

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