Skip to content

Sch: Fix races from NG Sch work, and in proc_states#718

Merged
jpsamaroo merged 2 commits into
masterfrom
jps/sch-double-check-proc_status
Jul 13, 2026
Merged

Sch: Fix races from NG Sch work, and in proc_states#718
jpsamaroo merged 2 commits into
masterfrom
jps/sch-double-check-proc_status

Conversation

@jpsamaroo

@jpsamaroo jpsamaroo commented Jul 13, 2026

Copy link
Copy Markdown
Member

Should fix hangs in array/allocation suites.

Written by Claude Sonnet

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Dagger benchmarks: dirty vs master

master dirty master / dirty
array/dagger/N=1024 (block 512)/add (X + X) 10.4 ± 0.74 ms 9.95 ± 1.8 ms 1.04 ± 0.2
array/dagger/N=1024 (block 512)/alloc (rand) 3.82 ± 0.23 ms 4.48 ± 0.68 ms 0.853 ± 0.14
array/dagger/N=1024 (block 512)/broadcast (X .+ 1) 7.07 ± 0.093 ms 7.36 ± 0.7 ms 0.961 ± 0.092
array/dagger/N=1024 (block 512)/map (sin.(X)) 12 ± 0.83 ms 11.4 ± 1.2 ms 1.05 ± 0.13
array/dagger/N=1024 (block 512)/norm 3.87 ± 0.43 ms 3.82 ± 0.57 ms 1.01 ± 0.19
array/dagger/N=1024 (block 512)/reduce (sum) 7.08 ± 0.74 ms 7.85 ± 0.53 ms 0.902 ± 0.11
array/dagger/N=1024 (block 512)/transpose (permutedims) 9.4 ± 2.7 ms 9.35 ± 3.1 ms 1.01 ± 0.44
array/dagger/N=256 (block 256)/add (X + X) 3.51 ± 0.39 ms 3.42 ± 0.056 ms 1.03 ± 0.12
array/dagger/N=256 (block 256)/alloc (rand) 1.41 ± 0.13 ms 1.17 ± 0.27 ms 1.2 ± 0.3
array/dagger/N=256 (block 256)/broadcast (X .+ 1) 2.9 ± 0.088 ms 3.56 ± 0.068 ms 0.814 ± 0.029
array/dagger/N=256 (block 256)/map (sin.(X)) 3.54 ± 0.033 ms 4.13 ± 0.37 ms 0.858 ± 0.078
array/dagger/N=256 (block 256)/norm 1.98 ± 0.098 ms 1.99 ± 0.17 ms 0.995 ± 0.097
array/dagger/N=256 (block 256)/reduce (sum) 3.54 ± 0.68 ms 4.05 ± 0.19 ms 0.872 ± 0.17
array/dagger/N=256 (block 256)/transpose (permutedims) 2.53 ± 0.13 ms 2.59 ± 0.068 ms 0.975 ± 0.056
linalg/dagger/N=1024 (block 512)/cholesky 0.0346 ± 0.0055 s 0.0321 ± 0.0019 s 1.08 ± 0.18
linalg/dagger/N=1024 (block 512)/lu 7.61 s 7.54 s 1.01
linalg/dagger/N=1024 (block 512)/matmul (A*A) 0.0619 ± 0.0058 s 0.0555 ± 0.0037 s 1.12 ± 0.13
linalg/dagger/N=1024 (block 512)/matvec (A*x) 10.9 ± 2.4 ms 9.51 ± 0.57 ms 1.14 ± 0.26
linalg/dagger/N=1024 (block 512)/qr 0.379 ± 0.036 s 0.398 ± 0.0025 s 0.952 ± 0.09
linalg/dagger/N=1024 (block 512)/solve (A\b via lu) 10.6 s 10.9 s 0.973
linalg/dagger/N=1024 (block 512)/syrk (A'*A) 0.0428 ± 0.0056 s 0.044 ± 0.0016 s 0.973 ± 0.13
linalg/dagger/N=256 (block 256)/cholesky 7.49 ± 2.1 ms 7.07 ± 1.2 ms 1.06 ± 0.35
linalg/dagger/N=256 (block 256)/lu 1.32 ± 0.014 s 1.34 ± 0.027 s 0.988 ± 0.023
linalg/dagger/N=256 (block 256)/matmul (A*A) 4.29 ± 0.47 ms 4.24 ± 0.47 ms 1.01 ± 0.16
linalg/dagger/N=256 (block 256)/matvec (A*x) 3.54 ± 0.46 ms 3.63 ± 0.27 ms 0.974 ± 0.15
linalg/dagger/N=256 (block 256)/qr 10.6 ± 0.5 ms 11.9 ± 1.4 ms 0.893 ± 0.11
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 2.17 ± 0.011 s 2.22 ± 0.013 s 0.974 ± 0.0076
linalg/dagger/N=256 (block 256)/syrk (A'*A) 7.15 ± 0.93 ms 6.61 ± 1.4 ms 1.08 ± 0.26
stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) 0.115 ± 0.021 s 0.106 ± 0.01 s 1.09 ± 0.22
stencil/dagger/N=1024 (block 512)/assign (const) 3.96 ± 0.21 ms 4.09 ± 0.24 ms 0.97 ± 0.076
stencil/dagger/N=1024 (block 512)/multi-expr 10.8 ± 0.26 ms 10.1 ± 0.2 ms 1.07 ± 0.033
stencil/dagger/N=1024 (block 512)/neighbors (Clamp) 0.0564 ± 0.0032 s 0.0484 ± 0.0027 s 1.16 ± 0.092
stencil/dagger/N=1024 (block 512)/neighbors (Pad) 0.0912 ± 0.0091 s 0.0554 ± 0.0037 s 1.65 ± 0.2
stencil/dagger/N=1024 (block 512)/neighbors (Reflect) 0.0564 ± 0.0068 s 0.0548 ± 0.0027 s 1.03 ± 0.13
stencil/dagger/N=1024 (block 512)/neighbors (Wrap) 0.0573 ± 0.0032 s 0.0553 ± 0.0023 s 1.04 ± 0.072
stencil/dagger/N=1024 (block 512)/update (+) 6.34 ± 0.041 ms 6.39 ± 0.2 ms 0.991 ± 0.032
stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) 16.5 ± 0.93 ms 16.5 ± 0.41 ms 1 ± 0.062
stencil/dagger/N=256 (block 256)/assign (const) 2.49 ± 0.31 ms 2.58 ± 0.14 ms 0.967 ± 0.13
stencil/dagger/N=256 (block 256)/multi-expr 4.62 ± 0.4 ms 4.62 ± 0.28 ms 0.998 ± 0.11
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 13.9 ± 0.28 ms 14 ± 0.46 ms 0.996 ± 0.038
stencil/dagger/N=256 (block 256)/neighbors (Pad) 15.6 ± 0.51 ms 14.2 ± 0.39 ms 1.09 ± 0.046
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 14.1 ± 1.6 ms 13.8 ± 0.076 ms 1.02 ± 0.11
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 13.4 ± 0.18 ms 13.9 ± 0.9 ms 0.964 ± 0.064
stencil/dagger/N=256 (block 256)/update (+) 3.22 ± 0.72 ms 3.66 ± 0.22 ms 0.881 ± 0.2
time_to_load 0.989 ± 0.017 s 1 ± 0.01 s 0.984 ± 0.02

Plots

No regressions beyond 25.0% 🎉

Improvements (> 25.0% faster)

  • stencil/dagger/N=1024 (block 512)/neighbors (Pad): -39.3%

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

@jpsamaroo jpsamaroo changed the title Sch: Fix race in proc_states Sch: Fix races from NG Sch work, and in proc_states Jul 13, 2026
@jpsamaroo jpsamaroo merged commit 374df70 into master Jul 13, 2026
15 of 25 checks passed
@jpsamaroo jpsamaroo deleted the jps/sch-double-check-proc_status branch July 13, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant