-
Notifications
You must be signed in to change notification settings - Fork 47
Updates for Julia 1.12 #576
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #576 +/- ##
==========================================
+ Coverage 79.58% 80.31% +0.73%
==========================================
Files 61 61
Lines 2738 2738
==========================================
+ Hits 2179 2199 +20
+ Misses 559 539 -20 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Metal Benchmarks
Benchmark suite | Current: b853262 | Previous: bc1d702 | Ratio |
---|---|---|---|
latency/precompile |
10670477833.5 ns |
10844034395.5 ns |
0.98 |
latency/ttfp |
3998126542 ns |
4062392000 ns |
0.98 |
latency/import |
1295514896 ns |
1323297834 ns |
0.98 |
integration/metaldevrt |
897333 ns |
897084 ns |
1.00 |
integration/byval/slices=1 |
1619875 ns |
1649541.5 ns |
0.98 |
integration/byval/slices=3 |
8863292 ns |
20432291 ns |
0.43 |
integration/byval/reference |
1602500 ns |
1620917 ns |
0.99 |
integration/byval/slices=2 |
2676604 ns |
2762083 ns |
0.97 |
kernel/indexing |
626708 ns |
561625 ns |
1.12 |
kernel/indexing_checked |
623875 ns |
568020.5 ns |
1.10 |
kernel/launch |
8958 ns |
8291 ns |
1.08 |
array/construct |
5958 ns |
6167 ns |
0.97 |
array/broadcast |
629875 ns |
525521 ns |
1.20 |
array/random/randn/Float32 |
805959 ns |
904792 ns |
0.89 |
array/random/randn!/Float32 |
624041 ns |
603125 ns |
1.03 |
array/random/rand!/Int64 |
554833 ns |
556042 ns |
1.00 |
array/random/rand!/Float32 |
586458 ns |
549375 ns |
1.07 |
array/random/rand/Int64 |
770833 ns |
920291.5 ns |
0.84 |
array/random/rand/Float32 |
607458 ns |
868312.5 ns |
0.70 |
array/accumulate/Int64/1d |
1334750 ns |
1391041.5 ns |
0.96 |
array/accumulate/Int64/dims=1 |
1924521 ns |
1938459 ns |
0.99 |
array/accumulate/Int64/dims=2 |
2192583 ns |
2314708 ns |
0.95 |
array/accumulate/Int64/dims=1L |
11842709 ns |
12532979.5 ns |
0.94 |
array/accumulate/Int64/dims=2L |
9799875 ns |
9877687.5 ns |
0.99 |
array/accumulate/Float32/1d |
1214500 ns |
1176667 ns |
1.03 |
array/accumulate/Float32/dims=1 |
1632395.5 ns |
1686625 ns |
0.97 |
array/accumulate/Float32/dims=2 |
1970167 ns |
2110166.5 ns |
0.93 |
array/accumulate/Float32/dims=1L |
9980749.5 ns |
10483479.5 ns |
0.95 |
array/accumulate/Float32/dims=2L |
7368667 ns |
7583083 ns |
0.97 |
array/reductions/reduce/Int64/1d |
1536646 ns |
1280666 ns |
1.20 |
array/reductions/reduce/Int64/dims=1 |
1121854 ns |
1173000 ns |
0.96 |
array/reductions/reduce/Int64/dims=2 |
1275541 ns |
1305833 ns |
0.98 |
array/reductions/reduce/Int64/dims=1L |
2063542 ns |
2058250 ns |
1.00 |
array/reductions/reduce/Int64/dims=2L |
3552562.5 ns |
3592333 ns |
0.99 |
array/reductions/reduce/Float32/1d |
1054167 ns |
811062.5 ns |
1.30 |
array/reductions/reduce/Float32/dims=1 |
863875 ns |
848229 ns |
1.02 |
array/reductions/reduce/Float32/dims=2 |
801083 ns |
747229 ns |
1.07 |
array/reductions/reduce/Float32/dims=1L |
1377896 ns |
1415271 ns |
0.97 |
array/reductions/reduce/Float32/dims=2L |
1872917 ns |
1896625 ns |
0.99 |
array/reductions/mapreduce/Int64/1d |
1559437.5 ns |
1293666.5 ns |
1.21 |
array/reductions/mapreduce/Int64/dims=1 |
1127000 ns |
1174292 ns |
0.96 |
array/reductions/mapreduce/Int64/dims=2 |
1290625 ns |
1310916 ns |
0.98 |
array/reductions/mapreduce/Int64/dims=1L |
2086708.5 ns |
2042625 ns |
1.02 |
array/reductions/mapreduce/Int64/dims=2L |
3568854 ns |
3598750 ns |
0.99 |
array/reductions/mapreduce/Float32/1d |
1050604 ns |
830417 ns |
1.27 |
array/reductions/mapreduce/Float32/dims=1 |
858583 ns |
850729.5 ns |
1.01 |
array/reductions/mapreduce/Float32/dims=2 |
824417 ns |
750792 ns |
1.10 |
array/reductions/mapreduce/Float32/dims=1L |
1373792 ns |
1403500 ns |
0.98 |
array/reductions/mapreduce/Float32/dims=2L |
1881666 ns |
1906291 ns |
0.99 |
array/private/copyto!/gpu_to_gpu |
652875 ns |
576250 ns |
1.13 |
array/private/copyto!/cpu_to_gpu |
833375 ns |
671312 ns |
1.24 |
array/private/copyto!/gpu_to_cpu |
829875 ns |
675875 ns |
1.23 |
array/private/iteration/findall/int |
1709000 ns |
1647812.5 ns |
1.04 |
array/private/iteration/findall/bool |
1498833.5 ns |
1560583 ns |
0.96 |
array/private/iteration/findfirst/int |
1977000 ns |
1804521.5 ns |
1.10 |
array/private/iteration/findfirst/bool |
1800667 ns |
1741750 ns |
1.03 |
array/private/iteration/scalar |
3995667 ns |
2804750 ns |
1.42 |
array/private/iteration/logical |
2697334 ns |
2711583 ns |
0.99 |
array/private/iteration/findmin/1d |
2056625 ns |
1938375 ns |
1.06 |
array/private/iteration/findmin/2d |
1588708 ns |
1607812.5 ns |
0.99 |
array/private/copy |
594708 ns |
841875 ns |
0.71 |
array/shared/copyto!/gpu_to_gpu |
83458 ns |
82041 ns |
1.02 |
array/shared/copyto!/cpu_to_gpu |
82458 ns |
85084 ns |
0.97 |
array/shared/copyto!/gpu_to_cpu |
82625 ns |
80125 ns |
1.03 |
array/shared/iteration/findall/int |
1667895.5 ns |
1650167 ns |
1.01 |
array/shared/iteration/findall/bool |
1514791 ns |
1573833 ns |
0.96 |
array/shared/iteration/findfirst/int |
1424625 ns |
1462979.5 ns |
0.97 |
array/shared/iteration/findfirst/bool |
1411292 ns |
1415896 ns |
1.00 |
array/shared/iteration/scalar |
151375 ns |
161084 ns |
0.94 |
array/shared/iteration/logical |
2538979.5 ns |
2510521 ns |
1.01 |
array/shared/iteration/findmin/1d |
1643292 ns |
1589708 ns |
1.03 |
array/shared/iteration/findmin/2d |
1597958 ns |
1627562.5 ns |
0.98 |
array/shared/copy |
250833 ns |
209625 ns |
1.20 |
array/permutedims/4d |
2501083 ns |
2614646 ns |
0.96 |
array/permutedims/2d |
1256917 ns |
1280958 ns |
0.98 |
array/permutedims/3d |
1807021 ns |
1954875 ns |
0.92 |
metal/synchronization/stream |
14083 ns |
15375 ns |
0.92 |
metal/synchronization/context |
14791.5 ns |
16417 ns |
0.90 |
This comment was automatically generated by workflow using github-action-benchmark.
Oh right, I forgot we don't actually support 1.12 yet. I guess we need to update the downgrader... |
f5bfc05
to
6801da3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure this is valuable without the bumped downgrader; now you're just removing opaque pointer testing from the CI roster without a replacement that will ever pass.
So I wouldn't merge this until we have that JLL at the least.
d5ecb95
to
02eab26
Compare
02eab26
to
74a91e7
Compare
74a91e7
to
21faf97
Compare
FWIW, simply rebasing this PR is not going to help. It needs somebody to go in and look at the specific failures, which I currently do not have the time for. |
d72818a
to
df8ec84
Compare
df8ec84
to
d152852
Compare
Your PR requires formatting changes to meet the project's style guidelines. Click here to view the suggested changes.diff --git a/src/compiler/reflection.jl b/src/compiler/reflection.jl
index 91c4848e..198fc872 100644
--- a/src/compiler/reflection.jl
+++ b/src/compiler/reflection.jl
@@ -69,5 +69,5 @@ function return_type(@nospecialize(func), @nospecialize(tt))
job = CompilerJob(source, config)
interp = GPUCompiler.get_interpreter(job)
sig = Base.signature_type(func, tt)
- Core.Compiler._return_type(interp, sig)
+ return Core.Compiler._return_type(interp, sig)
end
diff --git a/src/device/quirks.jl b/src/device/quirks.jl
index 08394d35..c1fda1c2 100644
--- a/src/device/quirks.jl
+++ b/src/device/quirks.jl
@@ -85,7 +85,7 @@ end
end
@static if VERSION >= v"1.12.0-DEV.1736" # Partially reverts JuliaLang/julia PR #56750
- let BitInteger64 = Union{Int64,UInt64}
+ let BitInteger64 = Union{Int64, UInt64}
@device_override function Base.checkbounds(::Type{Bool}, v::StepRange{<:BitInteger64, <:BitInteger64}, i::BitInteger64)
@inline
return checkindex(Bool, eachindex(IndexLinear(), v), i)
diff --git a/test/array.jl b/test/array.jl
index e64dbf9b..08424c36 100644
--- a/test/array.jl
+++ b/test/array.jl
@@ -56,7 +56,7 @@ end
@test Adapt.adapt(MtlArray{Float16}, Float64[1]) isa MtlArray{Float16}
# Test a few explicitly unsupported types
- @test_throws "MtlArray only supports element types that are stored inline" MtlArray(BigInt[1])
+ @test_throws "MtlArray only supports element types that are stored inline" MtlArray(BigInt[1])
@test_throws "Metal does not support Float64 values" MtlArray(Float64[1])
@test_throws "Metal does not support Int128 values" MtlArray(Int128[1])
@test_throws "Metal does not support UInt128 values" MtlArray(UInt128[1]) |
4e02b75
to
22a58d3
Compare
22a58d3
to
b853262
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for looking into this!
Remaining issues:
return_type
failure (fixed by 22a58d3):show
of CompilerJob broken with new binding semantics. (Seems fixed as of 1.12.0-rc1)diag(A::MtlMatrix{Float32, Metal.PrivateStorage}, k::Int64)
usesi128
with--check-bounds=yes
, probably needs a quirk. (Fixed by f5eec2e)from
mul!
dispatch failure. (Fixed in GPUArrays v11.2.5)