Skip to content

Conversation

@christiangnrd
Copy link
Member

No description provided.

@github-actions
Copy link
Contributor

github-actions bot commented Aug 3, 2025

Your PR requires formatting changes to meet the project's style guidelines.
Please consider running Runic (git runic main) to apply these changes.

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

@christiangnrd christiangnrd force-pushed the sort branch 2 times, most recently from 886f712 to 3d564bc Compare August 3, 2025 20:46
Copy link
Contributor

@github-actions github-actions bot left a 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.

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.

2 participants