Skip to content

Drop the test for atomics on local memory - #3408

Merged
maleadt merged 1 commit into
mainfrom
tb/atomic-test-constant
Oct 17, 2026
Merged

maleadt merged 1 commit into
mainfrom
tb/atomic-test-constant

Conversation

@maleadt

@maleadt maleadt commented Oct 17, 2026

Copy link
Copy Markdown
Member

GPUCompiler 2.15 (JuliaGPU/GPUCompiler.jl#963) lowers atomics on local memory to plain loads and stores instead of rejecting them, so the atomic operation in address space 5 test in test/core/device/intrinsics.jl now fails. It breaks GPUCompiler's downstream CUDA.jl job on main and on every PR.

The test dates from when CUDA.jl's atomic functions asserted the address space themselves. Since #3350 it only re-checks a GPUCompiler rule, which GPUCompiler covers in its own tests. The atomics testset (test/core/device/intrinsics/atomics.jl) already checks that GPUCompiler's atomic validation errors surface through CUDA.jl, with a backtrace into the kernel, for every atomic function and for UnsafeAtomics. So this removes the test rather than moving it to another invalid address space. Removing it works across the whole GPUCompiler = "2.13" compat range.

The test predates leaving atomic validation to GPUCompiler, when it checked the address
space assertion in CUDA.jl's atomic functions. It now only exercises a GPUCompiler rule,
and that rule changed: GPUCompiler 2.15 lowers atomics on local memory to plain accesses
instead of rejecting them (JuliaGPU/GPUCompiler.jl#963), so the test fails there.
GPUCompiler tests its own validation, and the atomics tests here already check that
CUDA.jl surfaces those errors.
@maleadt maleadt added the tests label Oct 17, 2026
@maleadt
maleadt merged commit f533f03 into main Oct 17, 2026
1 of 4 checks passed
@maleadt
maleadt deleted the tb/atomic-test-constant branch October 17, 2026 15:14
@github-actions

Copy link
Copy Markdown
Contributor

CUDA.jl Benchmarks

Details
Benchmark suite Current: 1bab36b Previous: d906dd4 Ratio
array/accumulate/Float32/1d 54371 ns 54610 ns 1.00
array/accumulate/Float32/dims=1 39176 ns 39595 ns 0.99
array/accumulate/Float32/dims=1L 82211 ns 82179 ns 1.00
array/accumulate/Float32/dims=2 49577 ns 49690 ns 1.00
array/accumulate/Float32/dims=2L 397854 ns 399898 ns 0.99
array/accumulate/Int64/1d 88457 ns 88538 ns 1.00
array/accumulate/Int64/dims=1 59652 ns 59894 ns 1.00
array/accumulate/Int64/dims=1L 139878 ns 139741 ns 1.00
array/accumulate/Int64/dims=2 68854 ns 68697 ns 1.00
array/accumulate/Int64/dims=2L 797054 ns 795555 ns 1.00
array/broadcast 10180 ns 10266 ns 0.99
array/broadcast launch 6642.4 ns 6671.8 ns 1.00
array/construct 969.3846153846154 ns 970.4285714285714 ns 1.00
array/copy 16973 ns 16671 ns 1.02
array/copyto!/cpu_to_gpu 208622 ns 208691 ns 1.00
array/copyto!/gpu_to_cpu 242680 ns 241416 ns 1.01
array/copyto!/gpu_to_gpu 8878 ns 8901 ns 1.00
array/iteration/findall/bool 49988 ns 50292 ns 0.99
array/iteration/findall/int 66209 ns 65694 ns 1.01
array/iteration/findfirst/bool 33850 ns 34156 ns 0.99
array/iteration/findfirst/int 33668 ns 34135 ns 0.99
array/iteration/findmin/1d 51279 ns 51295 ns 1.00
array/iteration/findmin/2d 51932 ns 51568 ns 1.01
array/iteration/logical 50683 ns 51191 ns 0.99
array/iteration/scalar 60745 ns 60491 ns 1.00
array/permutedims/2d 47148 ns 47182 ns 1.00
array/permutedims/3d 44647 ns 44299 ns 1.01
array/permutedims/4d 47749 ns 47627 ns 1.00
array/random/rand/Float32 11024 ns 10941 ns 1.01
array/random/rand/Int64 17818 ns 17362 ns 1.03
array/random/rand!/Float32 8118.666666666667 ns 8365.666666666666 ns 0.97
array/random/rand!/Int64 15339 ns 15492 ns 0.99
array/random/randn/Float32 34201 ns 34079 ns 1.00
array/random/randn!/Float32 24934 ns 24936 ns 1.00
array/reductions/mapreduce/Float32/1d 34522 ns 34206 ns 1.01
array/reductions/mapreduce/Float32/dims=1 18603 ns 18940 ns 0.98
array/reductions/mapreduce/Float32/dims=1L 56680 ns 56520 ns 1.00
array/reductions/mapreduce/Float32/dims=2 27466 ns 26651 ns 1.03
array/reductions/mapreduce/Float32/dims=2L 56884 ns 57077 ns 1.00
array/reductions/mapreduce/Int64/1d 34820 ns 34513 ns 1.01
array/reductions/mapreduce/Int64/dims=1 21812 ns 21363 ns 1.02
array/reductions/mapreduce/Int64/dims=1L 95968 ns 95697 ns 1.00
array/reductions/mapreduce/Int64/dims=2 27751 ns 27710 ns 1.00
array/reductions/mapreduce/Int64/dims=2L 82624 ns 83260 ns 0.99
array/reductions/reduce/Float32/1d 34654 ns 34650 ns 1.00
array/reductions/reduce/Float32/dims=1 18967 ns 18868 ns 1.01
array/reductions/reduce/Float32/dims=1L 56900 ns 56506 ns 1.01
array/reductions/reduce/Float32/dims=2 26973 ns 26736 ns 1.01
array/reductions/reduce/Float32/dims=2L 56927 ns 57352 ns 0.99
array/reductions/reduce/Int64/1d 34876 ns 34936 ns 1.00
array/reductions/reduce/Int64/dims=1 21623 ns 21357 ns 1.01
array/reductions/reduce/Int64/dims=1L 96157 ns 96315 ns 1.00
array/reductions/reduce/Int64/dims=2 27829 ns 27507 ns 1.01
array/reductions/reduce/Int64/dims=2L 83930 ns 82585 ns 1.02
array/reverse/1d 19575 ns 19510 ns 1.00
array/reverse/1dL 73567 ns 73486 ns 1.00
array/reverse/1dL_inplace 70072 ns 70289 ns 1.00
array/reverse/1d_inplace 11863 ns 11818 ns 1.00
array/reverse/2d 22159 ns 22108 ns 1.00
array/reverse/2dL 80486 ns 80797 ns 1.00
array/reverse/2dL_inplace 70691 ns 70790 ns 1.00
array/reverse/2d_inplace 14559 ns 14626 ns 1.00
array/sorting/1d 750080 ns 751400 ns 1.00
array/sorting/2d 194121 ns 194606 ns 1.00
array/sorting/by 928499 ns 928713 ns 1.00
cuda/graph/capture 37391 ns 35510 ns 1.05
cuda/graph/eager 33632 ns 32786 ns 1.03
cuda/graph/launch 13857 ns 13875 ns 1.00
cuda/synchronization/context/auto 2386.4444444444443 ns 2310.1111111111113 ns 1.03
cuda/synchronization/context/blocking 883.64 ns 883.9322033898305 ns 1.00
cuda/synchronization/context/nonblocking 8084 ns 8373 ns 0.97
cuda/synchronization/stream/auto 871.7402597402597 ns 826.3561643835617 ns 1.05
cuda/synchronization/stream/blocking 760.9203539823009 ns 760.0223880597015 ns 1.00
cuda/synchronization/stream/nonblocking 7696 ns 7836 ns 0.98
integration/byval/reference 147595 ns 147475 ns 1.00
integration/byval/slices=1 148801 ns 148515 ns 1.00
integration/byval/slices=2 290423 ns 290141 ns 1.00
integration/byval/slices=3 432462 ns 432030 ns 1.00
integration/cudadevrt 105089 ns 104862 ns 1.00
integration/volumerhs 9608714 ns 9608642 ns 1.00
kernel/indexing 11275 ns 11291 ns 1.00
kernel/indexing_checked 11940 ns 11884 ns 1.00
kernel/launch 2328.6666666666665 ns 2315.777777777778 ns 1.01
kernel/occupancy 704.4133333333333 ns 678.1192052980133 ns 1.04
kernel/rand 15088 ns 14928 ns 1.01
latency/import 4405853532 ns 4784183934 ns 0.92
latency/precompile 5368981855 ns 5431409471 ns 0.99
latency/ttfp 5233688297 ns 5408854891 ns 0.97

This comment was automatically generated by workflow using github-action-benchmark.

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