Skip to content

MetalExt: Support Metal 1.10 - #729

Merged
jpsamaroo merged 3 commits into
masterfrom
jps/metal-1
Jul 27, 2026
Merged

MetalExt: Support Metal 1.10#729
jpsamaroo merged 3 commits into
masterfrom
jps/metal-1

Conversation

@jpsamaroo

Copy link
Copy Markdown
Member

Written by Cursor Grok

@jpsamaroo jpsamaroo added gpu dependencies Pull requests that update a dependency file labels Jul 27, 2026
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Dagger benchmarks: dirty vs master

master dirty master / dirty
array/dagger/N=1024 (block 512)/add (X + X) 3.78 ± 0.51 ms 3.73 ± 0.47 ms 1.01 ± 0.19
array/dagger/N=1024 (block 512)/alloc (rand) 2.74 ± 0.066 ms 2.81 ± 0.13 ms 0.973 ± 0.051
array/dagger/N=1024 (block 512)/broadcast (X .+ 1) 2.54 ± 0.34 ms 2.58 ± 0.29 ms 0.983 ± 0.17
array/dagger/N=1024 (block 512)/map (sin.(X)) 5.69 ± 0.28 ms 5.73 ± 0.0049 ms 0.993 ± 0.049
array/dagger/N=1024 (block 512)/norm 1.21 ± 0.26 ms 1.37 ± 0.16 ms 0.885 ± 0.21
array/dagger/N=1024 (block 512)/reduce (sum) 2.24 ± 0.17 ms 2.44 ± 0.43 ms 0.916 ± 0.18
array/dagger/N=1024 (block 512)/transpose (permutedims) 3.96 ± 0.17 ms 4.03 ± 0.048 ms 0.981 ± 0.043
array/dagger/N=256 (block 256)/add (X + X) 1.24 ± 0.11 ms 1.27 ± 0.22 ms 0.977 ± 0.19
array/dagger/N=256 (block 256)/alloc (rand) 1.02 ± 0.0052 ms 1.09 ± 0.029 ms 0.934 ± 0.025
array/dagger/N=256 (block 256)/broadcast (X .+ 1) 0.735 ± 2 ms 0.651 ± 0.21 ms 1.13 ± 3.1
array/dagger/N=256 (block 256)/map (sin.(X)) 0.961 ± 0.053 ms 1.01 ± 0.12 ms 0.951 ± 0.13
array/dagger/N=256 (block 256)/norm 0.526 ± 0.067 ms 0.427 ± 0.17 ms 1.23 ± 0.51
array/dagger/N=256 (block 256)/reduce (sum) 1.09 ± 0.046 ms 0.923 ± 0.13 ms 1.18 ± 0.17
array/dagger/N=256 (block 256)/transpose (permutedims) 1.08 ± 0.29 ms 0.872 ± 0.2 ms 1.24 ± 0.44
linalg/dagger/N=1024 (block 512)/cholesky 19.9 ± 1.8 ms 19.4 ± 2.6 ms 1.02 ± 0.17
linalg/dagger/N=1024 (block 512)/lu 0.0326 ± 0.0018 s 0.0344 ± 0.0032 s 0.948 ± 0.1
linalg/dagger/N=1024 (block 512)/matmul (A*A) 0.0355 ± 0.0065 s 27.9 ± 0.58 ms 1.27 ± 0.23
linalg/dagger/N=1024 (block 512)/matvec (A*x) 3.3 ± 0.71 ms 2.99 ± 0.27 ms 1.1 ± 0.26
linalg/dagger/N=1024 (block 512)/qr 0.092 ± 0.0034 s 0.0942 ± 0.011 s 0.976 ± 0.12
linalg/dagger/N=1024 (block 512)/solve (A\b via lu) 0.0411 ± 0.0017 s 0.0426 ± 0.0053 s 0.965 ± 0.13
linalg/dagger/N=1024 (block 512)/syrk (A'*A) 23.2 ± 1.5 ms 22.8 ± 1.4 ms 1.02 ± 0.093
linalg/dagger/N=256 (block 256)/cholesky 2.75 ± 0.21 ms 2.96 ± 0.8 ms 0.931 ± 0.26
linalg/dagger/N=256 (block 256)/lu 4.42 ± 0.51 ms 4.76 ± 0.5 ms 0.929 ± 0.15
linalg/dagger/N=256 (block 256)/matmul (A*A) 2.15 ± 0.25 ms 2.15 ± 0.14 ms 1 ± 0.13
linalg/dagger/N=256 (block 256)/matvec (A*x) 1.41 ± 0.05 ms 1.49 ± 0.29 ms 0.945 ± 0.19
linalg/dagger/N=256 (block 256)/qr 5.07 ± 1.3 ms 5 ± 0.15 ms 1.01 ± 0.27
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 7.53 ± 0.13 ms 7.72 ± 0.32 ms 0.976 ± 0.045
linalg/dagger/N=256 (block 256)/syrk (A'*A) 3.67 ± 0.64 ms 3.41 ± 0.31 ms 1.07 ± 0.21
stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) 21.3 ± 0.57 ms 21.3 ± 1.1 ms 1 ± 0.059
stencil/dagger/N=1024 (block 512)/assign (const) 1.63 ± 0.018 ms 1.59 ± 0.035 ms 1.03 ± 0.025
stencil/dagger/N=1024 (block 512)/multi-expr 3.86 ± 0.18 ms 4.01 ± 0.35 ms 0.964 ± 0.095
stencil/dagger/N=1024 (block 512)/neighbors (Clamp) 20.2 ± 0.31 ms 19.5 ± 1 ms 1.04 ± 0.057
stencil/dagger/N=1024 (block 512)/neighbors (Pad) 19.8 ± 0.98 ms 20.6 ± 0.39 ms 0.963 ± 0.051
stencil/dagger/N=1024 (block 512)/neighbors (Reflect) 18.9 ± 0.69 ms 21.2 ± 3.4 ms 0.894 ± 0.15
stencil/dagger/N=1024 (block 512)/neighbors (Wrap) 0.0513 ± 0.0045 s 20.1 ± 0.12 ms 2.55 ± 0.22
stencil/dagger/N=1024 (block 512)/update (+) 2.55 ± 0.58 ms 2.24 ± 0.11 ms 1.14 ± 0.27
stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) 4.3 ± 0.5 ms 4.21 ± 0.26 ms 1.02 ± 0.14
stencil/dagger/N=256 (block 256)/assign (const) 0.822 ± 0.059 ms 0.654 ± 0.037 ms 1.26 ± 0.11
stencil/dagger/N=256 (block 256)/multi-expr 1.53 ± 0.036 ms 1.54 ± 0.066 ms 0.991 ± 0.049
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 4.13 ± 0.17 ms 4.09 ± 0.046 ms 1.01 ± 0.043
stencil/dagger/N=256 (block 256)/neighbors (Pad) 4.03 ± 0.12 ms 3.83 ± 0.12 ms 1.05 ± 0.044
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 4.44 ± 1.8 ms 4 ± 0.12 ms 1.11 ± 0.44
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 5.63 ± 0.41 ms 4.03 ± 0.035 ms 1.4 ± 0.1
stencil/dagger/N=256 (block 256)/update (+) 0.921 ± 0.091 ms 0.837 ± 0.092 ms 1.1 ± 0.16
time_to_load 0.957 ± 0.0052 s 0.959 ± 0.0053 s 0.998 ± 0.0077

Plots

No regressions beyond 25.0% 🎉

Improvements (> 25.0% faster)

  • stencil/dagger/N=1024 (block 512)/neighbors (Wrap): -60.8%
  • stencil/dagger/N=256 (block 256)/neighbors (Wrap): -28.5%

Full results and plots (download the benchmark-results artifact).

@jpsamaroo
jpsamaroo merged commit 504c858 into master Jul 27, 2026
24 of 32 checks passed
@jpsamaroo
jpsamaroo deleted the jps/metal-1 branch July 27, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file gpu

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant