Skip to content

Adapt to GPUCompiler 2.13's atomics handling - #1147

Merged
maleadt merged 2 commits into
mainfrom
tb/usub-sat-metadata
Oct 7, 2026
Merged

maleadt merged 2 commits into
mainfrom
tb/usub-sat-metadata

Conversation

@maleadt

@maleadt maleadt commented Oct 7, 2026

Copy link
Copy Markdown
Member

Follow-up to #1143, for GPUCompiler 2.13:

Tested core/codegen on Julia 1.13 (gfx1036 host, offline gfx1030/gfx90a code generation) with GPUCompiler 2.13.0 and AMDGPU_LLVM_Backend_jll 23.1.3: main fails with one error, both commits pass.

…cope.

GPUCompiler 2.13 rejects atomics with synchronization scopes the GCN back-end
doesn't know when validating the IR, so the test checking that such an
atomic gets no memory assumptions failed to compile.
LLVM 22 couldn't select a native flat usub_sat on gfx10.3 and gfx11 with the
memory assumptions (llvm/llvm-project#229442), so they were left off as an
interim workaround. GPUCompiler 2.13 handles it: it requires the fixed
AMDGPU_LLVM_Backend_jll and expands the operation for Julia's own LLVM, so
require that version and treat usub_sat like the other operations.
@maleadt

maleadt commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

Merging this a little quicker since this fixes main again.

@maleadt
maleadt merged commit f4f4203 into main Oct 7, 2026
3 of 4 checks passed
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

AMDGPU.jl Benchmarks

Details
Benchmark suite Current: d4e09ad Previous: 6f37fdf Ratio
amdgpu/synchronization/context/device 547.5 ns 547.5 ns 1
amdgpu/synchronization/stream/blocking 222.5 ns 222.5 ns 1
amdgpu/synchronization/stream/nonblocking 312.5 ns 305 ns 1.02
applications/bitonic_sort 1111449.5 ns 1121018 ns 0.99
applications/convolution 90956.25 ns 91856.25 ns 0.99
applications/floyd_warshall 9092236.75 ns 9088943 ns 1.00
applications/histogram 793914.75 ns 795198.5 ns 1.00
applications/prefix_sum 188477.75 ns 188172.75 ns 1.00
array/accumulate/Float32/1d 82211.25 ns 82703.5 ns 0.99
array/accumulate/Float32/dims=1 266236.75 ns 259653.5 ns 1.03
array/accumulate/Float32/dims=1L 100556.5 ns 91916.25 ns 1.09
array/accumulate/Float32/dims=2 75706 ns 105999 ns 0.71
array/accumulate/Float32/dims=2L 3030870 ns 3029801.75 ns 1.00
array/accumulate/Int64/1d 86631.25 ns 93226.5 ns 0.93
array/accumulate/Int64/dims=1 241926.25 ns 242948.25 ns 1.00
array/accumulate/Int64/dims=1L 111059.25 ns 112674.25 ns 0.99
array/accumulate/Int64/dims=2 100699 ns 80158.75 ns 1.26
array/accumulate/Int64/dims=2L 3390968.25 ns 3392649.25 ns 1.00
array/broadcast 28790.25 ns 29063 ns 0.99
array/construct 2365 ns 2220 ns 1.07
array/copy 38015.75 ns 38870.5 ns 0.98
array/copyto!/cpu_to_gpu 89096.25 ns 88961.25 ns 1.00
array/copyto!/gpu_to_cpu 89319 ns 89613.75 ns 1.00
array/copyto!/gpu_to_gpu 33700.5 ns 34700.5 ns 0.97
array/iteration/findall/bool 121814.5 ns 119901.75 ns 1.02
array/iteration/findall/int 112469 ns 112736.5 ns 1.00
array/iteration/findfirst/bool 151912.5 ns 152529.75 ns 1.00
array/iteration/findfirst/int 153660 ns 153119.5 ns 1.00
array/iteration/findmin/1d 103469 ns 104196.25 ns 0.99
array/iteration/findmin/2d 93824 ns 93761.25 ns 1.00
array/iteration/logical 182895.25 ns 183702.5 ns 1.00
array/iteration/scalar 299422.25 ns 309796.75 ns 0.97
array/permutedims/2d 61138.25 ns 59476 ns 1.03
array/permutedims/3d 56328.5 ns 57221 ns 0.98
array/permutedims/4d 41290.5 ns 43595.5 ns 0.95
array/random/rand/Float32 44733.25 ns 45258 ns 0.99
array/random/rand/Int64 42983.25 ns 37798 ns 1.14
array/random/rand!/Float32 41388.25 ns 41948 ns 0.99
array/random/rand!/Int64 31733 ns 37215.5 ns 0.85
array/random/randn/Float32 68153.5 ns 72228.25 ns 0.94
array/random/randn!/Float32 53348.25 ns 54075.75 ns 0.99
array/reductions/mapreduce/Float32/1d 107961.5 ns 108671.5 ns 0.99
array/reductions/mapreduce/Float32/dims=1 87391.25 ns 88146.25 ns 0.99
array/reductions/mapreduce/Float32/dims=1L 835465.5 ns 836306.5 ns 1.00
array/reductions/mapreduce/Float32/dims=2 92706.5 ns 94228.75 ns 0.98
array/reductions/mapreduce/Float32/dims=2L 135524.5 ns 135486.75 ns 1.00
array/reductions/mapreduce/Int64/1d 106111.75 ns 108869 ns 0.97
array/reductions/mapreduce/Int64/dims=1 88076.5 ns 88541.25 ns 0.99
array/reductions/mapreduce/Int64/dims=1L 838898 ns 841141.75 ns 1.00
array/reductions/mapreduce/Int64/dims=2 91298.75 ns 92663.75 ns 0.99
array/reductions/mapreduce/Int64/dims=2L 136294.75 ns 136469.5 ns 1.00
array/reductions/reduce/Float32/1d 100604 ns 108931.5 ns 0.92
array/reductions/reduce/Float32/dims=1 87638.75 ns 88088.5 ns 0.99
array/reductions/reduce/Float32/dims=1L 834180.5 ns 835606.5 ns 1.00
array/reductions/reduce/Float32/dims=2 93304 ns 94116.25 ns 0.99
array/reductions/reduce/Float32/dims=2L 135417 ns 135959.5 ns 1.00
array/reductions/reduce/Int64/1d 108276.75 ns 107759 ns 1.00
array/reductions/reduce/Int64/dims=1 87876.25 ns 87166.25 ns 1.01
array/reductions/reduce/Int64/dims=1L 844910.5 ns 837371.5 ns 1.01
array/reductions/reduce/Int64/dims=2 92096.25 ns 92491.25 ns 1.00
array/reductions/reduce/Int64/dims=2L 135722 ns 135859.25 ns 1.00
array/reverse/1d 42750.75 ns 35203 ns 1.21
array/reverse/1dL 68171 ns 69038.25 ns 0.99
array/reverse/1dL_inplace 53395.75 ns 54128.25 ns 0.99
array/reverse/1d_inplace 37080.5 ns 37770.5 ns 0.98
array/reverse/2d 44695.75 ns 46583 ns 0.96
array/reverse/2dL 89976.25 ns 91263.75 ns 0.99
array/reverse/2dL_inplace 48435.75 ns 65028.5 ns 0.74
array/reverse/2d_inplace 35360.5 ns 37158 ns 0.95
array/sorting/1d 319555 ns 330742 ns 0.97
gemm/tiled 1941872.25 ns 1949946.75 ns 1.00
gemm/tiled_unbounded 1984465.5 ns 2914637.75 ns 0.68
integration/byval/reference 39611 ns 39901 ns 0.99
integration/byval/slices=1 40370 ns 39770 ns 1.02
integration/byval/slices=2 158342 ns 157742 ns 1.00
integration/byval/slices=3 238014 ns 223213 ns 1.07
integration/volumerhs 4877064 ns 4883697 ns 1.00
kernel/indexing 29825.5 ns 28847.75 ns 1.03
kernel/indexing_checked 36175.5 ns 32488 ns 1.11
kernel/launch 1212.5 ns 1220 ns 0.99
kernel/rand 50373.25 ns 51218.25 ns 0.98
latency/import 1633802228 ns 1628061194 ns 1.00
latency/precompile 29177559763 ns 29168346331 ns 1.00
latency/ttfp 2186237051 ns 2181953516 ns 1.00
stencil/diffusion3d 1585699.25 ns 1583662 ns 1.00
stencil/diffusion3d_checked 1631142.5 ns 1637802.75 ns 1.00

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