-
Couldn't load subscription status.
- Fork 46
[do not merge] Test GPUArrays sort #647
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
base: main
Are you sure you want to change the base?
Conversation
|
Your PR requires formatting changes to meet the project's style guidelines. Click here to view the suggested changes.diff --git a/lib/mtl/capture.jl b/lib/mtl/capture.jl
index c2c1a77a..c101c5b7 100644
--- a/lib/mtl/capture.jl
+++ b/lib/mtl/capture.jl
@@ -59,7 +59,8 @@ function MTLCaptureDescriptor()
end
# TODO: Add capture state
-function MTLCaptureDescriptor(obj::Union{MTLDevice,MTLCommandQueue,MTLCaptureScope},
+function MTLCaptureDescriptor(
+ obj::Union{MTLDevice, MTLCommandQueue, MTLCaptureScope},
destination::MTLCaptureDestination;
folder::String=nothing)
desc = MTLCaptureDescriptor()
@@ -110,7 +111,8 @@ end
Start GPU frame capture using the default capture object and specifying capture descriptor parameters directly.
"""
-function startCapture(obj::Union{MTLDevice,MTLCommandQueue,MTLCaptureScope},
+function startCapture(
+ obj::Union{MTLDevice, MTLCommandQueue, MTLCaptureScope},
destination::MTLCaptureDestination=MTLCaptureDestinationGPUTraceDocument;
folder::String=nothing)
if destination == MTLCaptureDestinationGPUTraceDocument && folder === nothing
diff --git a/perf/array.jl b/perf/array.jl
index bc82d4bd..82db81ff 100644
--- a/perf/array.jl
+++ b/perf/array.jl
@@ -151,18 +151,18 @@ end
let group = addgroup!(group, "sorting")
let group = addgroup!(group, "Float32")
group["1d"] = @benchmarkable Metal.@sync sort($gpu_vec)
- group["by=sin"] = @benchmarkable Metal.@sync sort($gpu_vec; by=sin)
- # group["dims=1"] = @benchmarkable Metal.@sync sort($gpu_mat; dims=1)
- # group["dims=2"] = @benchmarkable Metal.@sync sort($gpu_mat; dims=2)
- # group["dims=1L"] = @benchmarkable Metal.@sync sort($gpu_mat_long; dims=1)
- # group["dims=2L"] = @benchmarkable Metal.@sync sort($gpu_mat_long; dims=2)
+ group["by=sin"] = @benchmarkable Metal.@sync sort($gpu_vec; by = sin)
+ # group["dims=1"] = @benchmarkable Metal.@sync sort($gpu_mat; dims=1)
+ # group["dims=2"] = @benchmarkable Metal.@sync sort($gpu_mat; dims=2)
+ # group["dims=1L"] = @benchmarkable Metal.@sync sort($gpu_mat_long; dims=1)
+ # group["dims=2L"] = @benchmarkable Metal.@sync sort($gpu_mat_long; dims=2)
end
let group = addgroup!(group, "Int64")
group["1d"] = @benchmarkable Metal.@sync sort($gpu_vec_ints)
- # group["dims=1"] = @benchmarkable Metal.@sync sort($gpu_mat_ints; dims=1)
- # group["dims=2"] = @benchmarkable Metal.@sync sort($gpu_mat_ints; dims=2)
- # group["dims=1L"] = @benchmarkable Metal.@sync sort($gpu_mat_long_ints; dims=1)
- # group["dims=2L"] = @benchmarkable Metal.@sync sort($gpu_mat_long_ints; dims=2)
+ # group["dims=1"] = @benchmarkable Metal.@sync sort($gpu_mat_ints; dims=1)
+ # group["dims=2"] = @benchmarkable Metal.@sync sort($gpu_mat_ints; dims=2)
+ # group["dims=1L"] = @benchmarkable Metal.@sync sort($gpu_mat_long_ints; dims=1)
+ # group["dims=2L"] = @benchmarkable Metal.@sync sort($gpu_mat_long_ints; dims=2)
end
end
diff --git a/perf/benchmark_graphs_nb.jl b/perf/benchmark_graphs_nb.jl
index ffecab59..0b500e53 100644
--- a/perf/benchmark_graphs_nb.jl
+++ b/perf/benchmark_graphs_nb.jl
@@ -18,142 +18,142 @@ end
# ╔═╡ 7259dbee-52ac-11f0-3192-dd97323b274a
begin
- using DataFrames
- using JSON
- using StatsPlots
- using PlutoUI
+ using DataFrames
+ using JSON
+ using StatsPlots
+ using PlutoUI
end
# ╔═╡ 09a99cb6-5e99-43ee-8b27-a8f84cb9770f
begin
- getbench(dict, benchstring::AbstractString) = getbench(dict, split(benchstring, "/"))
- function getbench(dict, benches::AbstractVector)
- _dict = _getbench(dict)
- for b in benches
- _dict = _getbench(_dict, b)
- end
- return _dict["time"]
- end
- function _getbench(dict)
- dict[2][1][2]["data"]["array"][2]
- end
- function _getbench(dict, bench)
- dict["data"][bench][2]
- end
+ getbench(dict, benchstring::AbstractString) = getbench(dict, split(benchstring, "/"))
+ function getbench(dict, benches::AbstractVector)
+ _dict = _getbench(dict)
+ for b in benches
+ _dict = _getbench(_dict, b)
+ end
+ return _dict["time"]
+ end
+ function _getbench(dict)
+ return dict[2][1][2]["data"]["array"][2]
+ end
+ function _getbench(dict, bench)
+ return dict["data"][bench][2]
+ end
end
# ╔═╡ 6c52f13d-11cb-47b2-812e-6316ab24c408
-begin
- benches = [
- # "accumulate/Int64/1d",
- # "accumulate/Int64/dims=1",
- # "accumulate/Int64/dims=2",
- "accumulate/Int64/dims=1L",
- "accumulate/Int64/dims=2L",
- # "accumulate/Float32/1d",
- # "accumulate/Float32/dims=1",
- # "accumulate/Float32/dims=2",
- "accumulate/Float32/dims=1L",
- "accumulate/Float32/dims=2L",
-
- # "reductions/reduce/Int64/1d",
- # "reductions/reduce/Int64/dims=1",
- # "reductions/reduce/Int64/dims=2",
- "reductions/reduce/Int64/dims=1L",
- "reductions/reduce/Int64/dims=2L",
- # "reductions/reduce/Float32/1d",
- # "reductions/reduce/Float32/dims=1",
- # "reductions/reduce/Float32/dims=2",
- "reductions/reduce/Float32/dims=1L",
- "reductions/reduce/Float32/dims=2L",
-
- # "reductions/mapreduce/Int64/1d",
- # "reductions/mapreduce/Int64/dims=1",
- # "reductions/mapreduce/Int64/dims=2",
- "reductions/mapreduce/Int64/dims=1L",
- "reductions/mapreduce/Int64/dims=2L",
- # "reductions/mapreduce/Float32/1d",
- # "reductions/mapreduce/Float32/dims=1",
- # "reductions/mapreduce/Float32/dims=2",
- "reductions/mapreduce/Float32/dims=1L",
- "reductions/mapreduce/Float32/dims=2L",
- ]
-
- configs = Dict()
- configs["M2 Max"] = [
- # ("M2 Max 1Curr", "benchmarkresultsmtlmain.json"),
- ("M2 Max 2CurrCUOpt","benchmarkresultsmtlbigkern.json"),
- # ("M2 Max 3Curr712","benchmarkresultsmtlcuopt712.json"),
- ("M2 Max 3NoGrain","benchmarkresultsmtlnograin.json"),
- ("M2 Max 4AK","benchmarkresultsmtlak.json"),
- ]
-
- configs["3060"] = [
- ("3060 1Curr","benchmarkresultscudamain.json"),
- ("3060 2AK","benchmarkresultscudaak.json"),
- ("3060 3AKThresh","benchmarkresultscudaakthresh.json"),
- ("3060 4AK512","benchmarkresultscudaak512.json"),
- ("3060 5AK1024","benchmarkresultscudaak1024.json"),
- ]
- configs["3090"] = [
- ("3090 1Curr","benchmarkresults3090main.json"),
- ("3090 2AK","benchmarkresults3090ak.json"),
- ("3090 3AKHeur ","benchmarkresults3090heur.json"),
- ]
- allconfs = vcat(values(configs)...)
+begin
+ benches = [
+ # "accumulate/Int64/1d",
+ # "accumulate/Int64/dims=1",
+ # "accumulate/Int64/dims=2",
+ "accumulate/Int64/dims=1L",
+ "accumulate/Int64/dims=2L",
+ # "accumulate/Float32/1d",
+ # "accumulate/Float32/dims=1",
+ # "accumulate/Float32/dims=2",
+ "accumulate/Float32/dims=1L",
+ "accumulate/Float32/dims=2L",
+
+ # "reductions/reduce/Int64/1d",
+ # "reductions/reduce/Int64/dims=1",
+ # "reductions/reduce/Int64/dims=2",
+ "reductions/reduce/Int64/dims=1L",
+ "reductions/reduce/Int64/dims=2L",
+ # "reductions/reduce/Float32/1d",
+ # "reductions/reduce/Float32/dims=1",
+ # "reductions/reduce/Float32/dims=2",
+ "reductions/reduce/Float32/dims=1L",
+ "reductions/reduce/Float32/dims=2L",
+
+ # "reductions/mapreduce/Int64/1d",
+ # "reductions/mapreduce/Int64/dims=1",
+ # "reductions/mapreduce/Int64/dims=2",
+ "reductions/mapreduce/Int64/dims=1L",
+ "reductions/mapreduce/Int64/dims=2L",
+ # "reductions/mapreduce/Float32/1d",
+ # "reductions/mapreduce/Float32/dims=1",
+ # "reductions/mapreduce/Float32/dims=2",
+ "reductions/mapreduce/Float32/dims=1L",
+ "reductions/mapreduce/Float32/dims=2L",
+ ]
+
+ configs = Dict()
+ configs["M2 Max"] = [
+ # ("M2 Max 1Curr", "benchmarkresultsmtlmain.json"),
+ ("M2 Max 2CurrCUOpt", "benchmarkresultsmtlbigkern.json"),
+ # ("M2 Max 3Curr712","benchmarkresultsmtlcuopt712.json"),
+ ("M2 Max 3NoGrain", "benchmarkresultsmtlnograin.json"),
+ ("M2 Max 4AK", "benchmarkresultsmtlak.json"),
+ ]
+
+ configs["3060"] = [
+ ("3060 1Curr", "benchmarkresultscudamain.json"),
+ ("3060 2AK", "benchmarkresultscudaak.json"),
+ ("3060 3AKThresh", "benchmarkresultscudaakthresh.json"),
+ ("3060 4AK512", "benchmarkresultscudaak512.json"),
+ ("3060 5AK1024", "benchmarkresultscudaak1024.json"),
+ ]
+ configs["3090"] = [
+ ("3090 1Curr", "benchmarkresults3090main.json"),
+ ("3090 2AK", "benchmarkresults3090ak.json"),
+ ("3090 3AKHeur ", "benchmarkresults3090heur.json"),
+ ]
+ allconfs = vcat(values(configs)...)
end
# ╔═╡ 1b9a4018-d995-4319-b8ff-1504dbc7ae7d
begin
- benchresults = Dict()
- for (conf, fname) in allconfs
- benchresults[conf] = JSON.parsefile(fname)
- end
+ benchresults = Dict()
+ for (conf, fname) in allconfs
+ benchresults[conf] = JSON.parsefile(fname)
+ end
end
# ╔═╡ 97d12cad-123b-46a2-bdc0-aeae60d9cadd
begin
- organizedresults = Dict()
- for bench in benches
- _res = Dict()
- for (conf,_) in allconfs
- _res[conf] = getbench(benchresults[conf], bench)
- end
- organizedresults[bench] = _res
- end
- organizedresults
+ organizedresults = Dict()
+ for bench in benches
+ _res = Dict()
+ for (conf, _) in allconfs
+ _res[conf] = getbench(benchresults[conf], bench)
+ end
+ organizedresults[bench] = _res
+ end
+ organizedresults
end
# ╔═╡ b619106c-b4ca-4f41-a4cd-c0bf46982631
begin
- res_df = let
- _bench = String[]
- _config = String[]
- _time = Float64[]
- for bench in benches, (conf,_) in allconfs
- push!(_bench, bench)
- push!(_config, conf)
- push!(_time, organizedresults[bench][conf])
- end
- DataFrame(Bench=_bench, Test=_config, Time=_time)
- end
- res_df
- md"The unfiltered dataframe"
+ res_df = let
+ _bench = String[]
+ _config = String[]
+ _time = Float64[]
+ for bench in benches, (conf, _) in allconfs
+ push!(_bench, bench)
+ push!(_config, conf)
+ push!(_time, organizedresults[bench][conf])
+ end
+ DataFrame(Bench = _bench, Test = _config, Time = _time)
+ end
+ res_df
+ md"The unfiltered dataframe"
end
# ╔═╡ 71f098a8-49bb-4b31-8c1a-e75a80735d4a
begin
-allconfkeys = sort(collect(keys(configs)))
-defconf = "3090" in allconfkeys ? "3090" : first(allconfkeys)
-md"
+ allconfkeys = sort(collect(keys(configs)))
+ defconf = "3090" in allconfkeys ? "3090" : first(allconfkeys)
+ md"
GPU: $(@bind backends MultiCheckBox(allconfkeys;default=[defconf]))
"
end
# ╔═╡ 9b41f92f-cff1-4770-afe1-044abd228484
begin
-benchmark_opts = filter(x->any(startswith.(Ref(x), backends)), first.(allconfs))
-md"
+ benchmark_opts = filter(x -> any(startswith.(Ref(x), backends)), first.(allconfs))
+ md"
Benchmarks: $(@bind benchmarks MultiCheckBox(benchmark_opts; default=benchmark_opts))
"
end
@@ -161,37 +161,37 @@ end
# ╔═╡ 33a148af-7991-45eb-8031-59c70ead8ec0
# The filtered dataframe
begin
- plot_df = filter(x->in(x.Test, benchmarks), res_df)
- md"The filtered dataframe"
+ plot_df = filter(x -> in(x.Test, benchmarks), res_df)
+ md"The filtered dataframe"
end
# ╔═╡ e099b6dd-f7b6-4201-bd29-275c30f35d1c
-function plot_benches(df, title; ylabel="Time (ns)")
- df = filter(x->startswith(x.Bench, title), df)
- tlabs = [b[length(title)+2:end] for b in unique(df.Bench)]
- if startswith(title, "reductions/")
- title = title[length("reductions/")+1:end]
- end
- groupedbar(df.Time; group = df.Test, bar_position = :dodge, ylabel, title, #=legendtitle="Test",=# xticks=(1:length(tlabs),tlabs), xtickfontsize=6)
+function plot_benches(df, title; ylabel = "Time (ns)")
+ df = filter(x -> startswith(x.Bench, title), df)
+ tlabs = [b[(length(title) + 2):end] for b in unique(df.Bench)]
+ if startswith(title, "reductions/")
+ title = title[(length("reductions/") + 1):end]
+ end
+ return groupedbar(df.Time; group = df.Test, bar_position = :dodge, ylabel, title, #=legendtitle="Test",=# xticks = (1:length(tlabs), tlabs), xtickfontsize = 6)
end
# ╔═╡ 090186dd-41f2-4b64-84bf-908537b6c186
-plot(plot_benches(plot_df, "accumulate/Int64"),plot_benches(plot_df, "accumulate/Float32"),layout=2;ylabel="")
+plot(plot_benches(plot_df, "accumulate/Int64"), plot_benches(plot_df, "accumulate/Float32"), layout = 2; ylabel = "")
# ╔═╡ 5ac936e9-0d75-43f6-97fb-6824512afe12
-plot(plot_benches(plot_df, "reductions/reduce/Int64"),plot_benches(plot_df, "reductions/reduce/Float32";ylabel=""),layout=2)
+plot(plot_benches(plot_df, "reductions/reduce/Int64"), plot_benches(plot_df, "reductions/reduce/Float32"; ylabel = ""), layout = 2)
# ╔═╡ 9d49a3e3-bdf5-46f0-a29c-d81d88066bb4
-plot(plot_benches(plot_df, "reductions/mapreduce/Int64"),plot_benches(plot_df, "reductions/mapreduce/Float32";ylabel=""),layout=2)
+plot(plot_benches(plot_df, "reductions/mapreduce/Int64"), plot_benches(plot_df, "reductions/mapreduce/Float32"; ylabel = ""), layout = 2)
# ╔═╡ 5f0396e0-b0a5-4a68-80ad-b01347f29dc3
length("reductions/reduce")
# ╔═╡ ec61beef-b93c-4ffe-a216-1f78c75312b8
-"reductions/reduce/Float32/dims=1"[length("reductions/reduce")+2:end]
+"reductions/reduce/Float32/dims=1"[(length("reductions/reduce") + 2):end]
# ╔═╡ 4bf14eb2-251c-4c5f-9523-bbd6a1db123c
-split("accumulate/Int64/1d","/";limit=1)
+split("accumulate/Int64/1d", "/"; limit = 1)
# ╔═╡ 00000000-0000-0000-0000-000000000001
PLUTO_PROJECT_TOML_CONTENTS = """
diff --git a/perf/runbenchmarks.jl b/perf/runbenchmarks.jl
index 2b6773fc..e73e8a82 100644
--- a/perf/runbenchmarks.jl
+++ b/perf/runbenchmarks.jl
@@ -1,7 +1,7 @@
# benchmark suite execution and codespeed submission
using Pkg
-Pkg.add(url="https://github.com/christiangnrd/GPUArrays.jl", rev="sort")
+Pkg.add(url = "https://github.com/christiangnrd/GPUArrays.jl", rev = "sort")
using Metal
diff --git a/test/runtests.jl b/test/runtests.jl
index 21d6b5d1..e41c0eab 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -1,5 +1,5 @@
using Pkg
-Pkg.add(url="https://github.com/christiangnrd/GPUArrays.jl", rev="sort")
+Pkg.add(url = "https://github.com/christiangnrd/GPUArrays.jl", rev = "sort")
using Distributed
using Dates |
886f712 to
3d564bc
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.
Metal Benchmarks
| Benchmark suite | Current: 1b6d4a8 | Previous: 9b8c604 | Ratio |
|---|---|---|---|
latency/precompile |
9966923250 ns |
9950383250 ns |
1.00 |
latency/ttfp |
4045766750 ns |
4042521958 ns |
1.00 |
latency/import |
1309155167 ns |
1300517645.5 ns |
1.01 |
integration/metaldevrt |
914958 ns |
902833 ns |
1.01 |
integration/byval/slices=1 |
1674625 ns |
1627146 ns |
1.03 |
integration/byval/slices=3 |
20244666 ns |
19739042 ns |
1.03 |
integration/byval/reference |
1626875 ns |
1631792 ns |
1.00 |
integration/byval/slices=2 |
2808542 ns |
2799250 ns |
1.00 |
kernel/indexing |
517125 ns |
502291 ns |
1.03 |
kernel/indexing_checked |
522917 ns |
524417 ns |
1.00 |
kernel/launch |
9542 ns |
8479.166666666668 ns |
1.13 |
array/construct |
6791 ns |
5958 ns |
1.14 |
array/broadcast |
525666 ns |
544166 ns |
0.97 |
array/random/randn/Float32 |
910083 ns |
901875 ns |
1.01 |
array/random/randn!/Float32 |
595834 ns |
602875 ns |
0.99 |
array/random/rand!/Int64 |
554584 ns |
559458 ns |
0.99 |
array/random/rand!/Float32 |
551708 ns |
549500 ns |
1.00 |
array/random/rand/Int64 |
878416 ns |
939708 ns |
0.93 |
array/random/rand/Float32 |
849084 ns |
838375 ns |
1.01 |
array/accumulate/Int64/1d |
1407333.5 ns |
1396042 ns |
1.01 |
array/accumulate/Int64/dims=1 |
1982625 ns |
1920958 ns |
1.03 |
array/accumulate/Int64/dims=2 |
2318750 ns |
2316166.5 ns |
1.00 |
array/accumulate/Int64/dims=1L |
12575084 ns |
12541000 ns |
1.00 |
array/accumulate/Int64/dims=2L |
10169666 ns |
10017708.5 ns |
1.02 |
array/accumulate/Float32/1d |
1167291 ns |
1188292 ns |
0.98 |
array/accumulate/Float32/dims=1 |
1717750 ns |
1700584 ns |
1.01 |
array/accumulate/Float32/dims=2 |
2159854 ns |
2092542 ns |
1.03 |
array/accumulate/Float32/dims=1L |
10589749.5 ns |
10561084 ns |
1.00 |
array/accumulate/Float32/dims=2L |
7700812.5 ns |
7616166 ns |
1.01 |
array/reductions/reduce/Int64/1d |
1315666 ns |
1284584 ns |
1.02 |
array/reductions/reduce/Int64/dims=1 |
1166667 ns |
1156208 ns |
1.01 |
array/reductions/reduce/Int64/dims=2 |
1326958 ns |
1306625 ns |
1.02 |
array/reductions/reduce/Int64/dims=1L |
2206000 ns |
2170417 ns |
1.02 |
array/reductions/reduce/Int64/dims=2L |
3611750 ns |
3596875 ns |
1.00 |
array/reductions/reduce/Float32/1d |
819125 ns |
831770.5 ns |
0.98 |
array/reductions/reduce/Float32/dims=1 |
879625 ns |
842667 ns |
1.04 |
array/reductions/reduce/Float32/dims=2 |
763292 ns |
754645.5 ns |
1.01 |
array/reductions/reduce/Float32/dims=1L |
1885083 ns |
1861417 ns |
1.01 |
array/reductions/reduce/Float32/dims=2L |
1926917 ns |
1892375 ns |
1.02 |
array/reductions/mapreduce/Int64/1d |
1327750 ns |
1287479 ns |
1.03 |
array/reductions/mapreduce/Int64/dims=1 |
1180417 ns |
1167833 ns |
1.01 |
array/reductions/mapreduce/Int64/dims=2 |
1332479.5 ns |
1287792 ns |
1.03 |
array/reductions/mapreduce/Int64/dims=1L |
2197375 ns |
2217750 ns |
0.99 |
array/reductions/mapreduce/Int64/dims=2L |
3629500 ns |
3605771 ns |
1.01 |
array/reductions/mapreduce/Float32/1d |
829708 ns |
804562.5 ns |
1.03 |
array/reductions/mapreduce/Float32/dims=1 |
864667 ns |
839750 ns |
1.03 |
array/reductions/mapreduce/Float32/dims=2 |
766708 ns |
750625 ns |
1.02 |
array/reductions/mapreduce/Float32/dims=1L |
1886833 ns |
1827146 ns |
1.03 |
array/reductions/mapreduce/Float32/dims=2L |
1921958 ns |
1906334 ns |
1.01 |
array/private/copyto!/gpu_to_gpu |
536625 ns |
585500 ns |
0.92 |
array/private/copyto!/cpu_to_gpu |
767396 ns |
762979 ns |
1.01 |
array/private/copyto!/gpu_to_cpu |
707916 ns |
716333 ns |
0.99 |
array/private/iteration/findall/int |
1699417 ns |
1641375 ns |
1.04 |
array/private/iteration/findall/bool |
1548208 ns |
1569250 ns |
0.99 |
array/private/iteration/findfirst/int |
1828354.5 ns |
1846916.5 ns |
0.99 |
array/private/iteration/findfirst/bool |
1766458 ns |
1736417 ns |
1.02 |
array/private/iteration/scalar |
2808458 ns |
3512729 ns |
0.80 |
array/private/iteration/logical |
2831208 ns |
2713125 ns |
1.04 |
array/private/iteration/findmin/1d |
1789667 ns |
1797333 ns |
1.00 |
array/private/iteration/findmin/2d |
1555104.5 ns |
1538604 ns |
1.01 |
array/private/copy |
813416 ns |
852167 ns |
0.95 |
array/shared/copyto!/gpu_to_gpu |
85542 ns |
79583 ns |
1.07 |
array/shared/copyto!/cpu_to_gpu |
84041 ns |
81125 ns |
1.04 |
array/shared/copyto!/gpu_to_cpu |
84541 ns |
80125 ns |
1.06 |
array/shared/iteration/findall/int |
1689458 ns |
1640084 ns |
1.03 |
array/shared/iteration/findall/bool |
1577563 ns |
1570958.5 ns |
1.00 |
array/shared/iteration/findfirst/int |
1488854 ns |
1480750 ns |
1.01 |
array/shared/iteration/findfirst/bool |
1429125 ns |
1411792 ns |
1.01 |
array/shared/iteration/scalar |
169583 ns |
158875 ns |
1.07 |
array/shared/iteration/logical |
2452250 ns |
2506750 ns |
0.98 |
array/shared/iteration/findmin/1d |
1447875 ns |
1439375 ns |
1.01 |
array/shared/iteration/findmin/2d |
1564437 ns |
1557645.5 ns |
1.00 |
array/shared/copy |
212292 ns |
214333 ns |
0.99 |
array/permutedims/4d |
2619791 ns |
2582042 ns |
1.01 |
array/permutedims/2d |
1309042 ns |
1282666.5 ns |
1.02 |
array/permutedims/3d |
1974875 ns |
1945146 ns |
1.02 |
array/sorting/Int64/1d |
8146667 ns |
||
array/sorting/Float32/1d |
8105208 ns |
||
array/sorting/Float32/by=sin |
15878478.5 ns |
||
metal/synchronization/stream |
15917 ns |
14792 ns |
1.08 |
metal/synchronization/context |
16292 ns |
15291 ns |
1.07 |
This comment was automatically generated by workflow using github-action-benchmark.
No description provided.