CI/benchmarks: Add Distributed and MPI benchmarks - #747
Open
jpsamaroo wants to merge 1 commit into
Open
Conversation
Contributor
Dagger benchmarks:
|
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 26 ± 7.4 ms | 23.2 ± 1.9 ms | 1.12 ± 0.33 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 15 ± 0.71 ms | 15.5 ± 0.75 ms | 0.966 ± 0.066 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 14.4 ± 0.49 ms | 14.7 ± 1.3 ms | 0.979 ± 0.095 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 14 ± 0.82 ms | 12.7 ± 0.36 ms | 1.1 ± 0.071 |
| array/dagger/N=1024 (block 128)/norm | 17 ± 1.3 ms | 14 ± 1.9 ms | 1.21 ± 0.19 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.035 ± 0.0036 s | 30.2 ± 3.4 ms | 1.16 ± 0.18 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 17 ± 0.99 ms | 15.3 ± 0.68 ms | 1.11 ± 0.082 |
| array/dagger/N=1024 (block 512)/add (X + X) | 3.75 ± 1.7 ms | 4.12 ± 1.4 ms | 0.909 ± 0.52 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 2.41 ± 0.26 ms | 4.8 ± 2.8 ms | 0.502 ± 0.3 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 2.17 ± 2.1 ms | 2.3 ± 0.24 ms | 0.946 ± 0.92 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 5.55 ± 0.26 ms | 6.05 ± 2.5 ms | 0.916 ± 0.37 |
| array/dagger/N=1024 (block 512)/norm | 1.88 ± 1 ms | 1.12 ± 0.02 ms | 1.69 ± 0.92 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 2.19 ± 0.3 ms | 1.9 ± 0.86 ms | 1.15 ± 0.55 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 5.01 ± 0.44 ms | 4.01 ± 0.7 ms | 1.25 ± 0.24 |
| array/dagger/N=256 (block 128)/add (X + X) | 1.79 ± 2 ms | 1.93 ± 2.3 ms | 0.923 ± 1.5 |
| array/dagger/N=256 (block 128)/alloc (rand) | 2.25 ± 2.3 ms | 1.83 ± 1.6 ms | 1.23 ± 1.6 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 1.76 ± 0.8 ms | 3.78 ± 2.3 ms | 0.466 ± 0.36 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 2.24 ± 0.067 ms | 1.23 ± 0.068 ms | 1.82 ± 0.11 |
| array/dagger/N=256 (block 128)/norm | 1.33 ± 2.6 ms | 1.32 ± 0.39 ms | 1.01 ± 2 |
| array/dagger/N=256 (block 128)/reduce (sum) | 3.21 ± 1 ms | 4.2 ± 2.8 ms | 0.764 ± 0.57 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 3.66 ± 1.5 ms | 3.85 ± 1.9 ms | 0.952 ± 0.63 |
| array/dagger/N=256 (block 256)/add (X + X) | 1.14 ± 0.85 ms | 0.775 ± 0.065 ms | 1.47 ± 1.1 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.676 ± 0.029 ms | 0.68 ± 0.024 ms | 0.995 ± 0.055 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.6 ± 0.16 ms | 0.44 ± 0.033 ms | 1.36 ± 0.38 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.973 ± 0.017 ms | 1.2 ± 0.084 ms | 0.814 ± 0.059 |
| array/dagger/N=256 (block 256)/norm | 0.393 ± 0.079 ms | 0.427 ± 0.024 ms | 0.919 ± 0.19 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.572 ± 0.042 ms | 0.561 ± 0.018 ms | 1.02 ± 0.082 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 0.689 ± 0.069 ms | 0.728 ± 0.044 ms | 0.947 ± 0.11 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.0834 ± 0.0071 s | 0.072 ± 0.015 s | 1.16 ± 0.26 |
| linalg/dagger/N=1024 (block 128)/lu | 0.152 ± 0.0063 s | 0.169 ± 0.022 s | 0.899 ± 0.12 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.167 ± 0.021 s | 0.15 ± 0.051 s | 1.11 ± 0.4 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 17.2 ± 1.8 ms | 17 ± 3.3 ms | 1.01 ± 0.22 |
| linalg/dagger/N=1024 (block 128)/qr | 0.141 ± 0.018 s | 0.146 ± 0.014 s | 0.971 ± 0.16 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.219 ± 0.006 s | 0.21 ± 0.017 s | 1.04 ± 0.09 |
| linalg/dagger/N=1024 (block 128)/svd | 28 s | 28.5 s | 0.982 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.097 ± 0.0032 s | 0.105 ± 0.011 s | 0.922 ± 0.1 |
| linalg/dagger/N=1024 (block 512)/cholesky | 25.6 ± 4.6 ms | 20.3 ± 3.1 ms | 1.26 ± 0.3 |
| linalg/dagger/N=1024 (block 512)/lu | 0.0462 ± 0.013 s | 0.0447 ± 0.0074 s | 1.03 ± 0.34 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 0.045 ± 0.0024 s | 0.0436 ± 0.0072 s | 1.03 ± 0.18 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 4.15 ± 0.85 ms | 2.7 ± 1.5 ms | 1.54 ± 0.89 |
| linalg/dagger/N=1024 (block 512)/qr | 0.112 ± 0.0046 s | 0.112 ± 0.0046 s | 1 ± 0.058 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 0.0528 ± 0.0048 s | 0.0531 ± 0.0065 s | 0.996 ± 0.15 |
| linalg/dagger/N=1024 (block 512)/svd | 0.0368 h | 0.0324 h | 1.13 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 0.039 ± 0.0051 s | 0.0395 ± 0.0029 s | 0.987 ± 0.15 |
| linalg/dagger/N=256 (block 128)/cholesky | 10.4 ± 2.5 ms | 10.3 ± 0.4 ms | 1 ± 0.24 |
| linalg/dagger/N=256 (block 128)/lu | 11.5 ± 4.5 ms | 21 ± 12 ms | 0.545 ± 0.37 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 5.43 ± 1.6 ms | 9.2 ± 4 ms | 0.59 ± 0.31 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 4.99 ± 0.8 ms | 3.6 ± 2.5 ms | 1.39 ± 1 |
| linalg/dagger/N=256 (block 128)/qr | 11.9 ± 0.47 ms | 13.2 ± 2 ms | 0.904 ± 0.14 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 26.5 ± 7.5 ms | 26.5 ± 11 ms | 0.998 ± 0.5 |
| linalg/dagger/N=256 (block 128)/svd | 0.633 ± 0.037 s | 0.634 ± 0.0084 s | 0.999 ± 0.06 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 6.99 ± 1.8 ms | 9.98 ± 4.7 ms | 0.701 ± 0.37 |
| linalg/dagger/N=256 (block 256)/cholesky | 6.41 ± 3.4 ms | 2.51 ± 0.2 ms | 2.56 ± 1.4 |
| linalg/dagger/N=256 (block 256)/lu | 6.47 ± 2.5 ms | 6.42 ± 3.7 ms | 1.01 ± 0.71 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 2.27 ± 0.97 ms | 2.16 ± 0.24 ms | 1.05 ± 0.47 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 0.976 ± 0.083 ms | 1.05 ± 0.86 ms | 0.927 ± 0.76 |
| linalg/dagger/N=256 (block 256)/qr | 5.06 ± 1.2 ms | 4.89 ± 0.7 ms | 1.03 ± 0.29 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 8.1 ± 0.92 ms | 14.4 ± 2.1 ms | 0.563 ± 0.1 |
| linalg/dagger/N=256 (block 256)/svd | 0.545 ± 0.0043 s | 0.548 ± 0.011 s | 0.995 ± 0.021 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 3.25 ± 0.87 ms | 3.67 ± 2.3 ms | 0.886 ± 0.6 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 0.881 ± 0.038 s | 0.921 ± 0.014 s | 0.956 ± 0.044 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 0.536 ± 0.0067 s | 0.54 ± 0.0096 s | 0.992 ± 0.022 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 0.0582 ± 0.0015 s | 0.0552 ± 0.0054 s | 1.06 ± 0.11 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 0.939 ± 0.023 s | 0.937 ± 0.042 s | 1 ± 0.052 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 0.548 ± 0.023 s | 0.529 ± 0.013 s | 1.04 ± 0.051 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 0.053 ± 0.0044 s | 0.0494 ± 0.0092 s | 1.07 ± 0.22 |
| stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) | 18.6 ± 0.78 ms | 18 ± 0.56 ms | 1.03 ± 0.054 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 6.94 ± 1 ms | 7.08 ± 0.73 ms | 0.98 ± 0.17 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 17.3 ± 1.2 ms | 18.3 ± 2.6 ms | 0.946 ± 0.15 |
| stencil/dagger/N=1024 (block 128)/neighbors (Clamp) | 13.3 ± 0.11 ms | 13.7 ± 0.36 ms | 0.974 ± 0.027 |
| stencil/dagger/N=1024 (block 128)/neighbors (Pad) | 13.7 ± 1.2 ms | 13.6 ± 0.67 ms | 1.01 ± 0.1 |
| stencil/dagger/N=1024 (block 128)/neighbors (Reflect) | 13.2 ± 0.58 ms | 13.3 ± 0.21 ms | 0.993 ± 0.047 |
| stencil/dagger/N=1024 (block 128)/neighbors (Wrap) | 14.6 ± 4.6 ms | 14.1 ± 0.7 ms | 1.04 ± 0.33 |
| stencil/dagger/N=1024 (block 128)/update (+) | 9.42 ± 0.71 ms | 9.36 ± 0.1 ms | 1.01 ± 0.077 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 7 ± 3.4 ms | 7.21 ± 0.62 ms | 0.97 ± 0.47 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 1.03 ± 0.25 ms | 1.05 ± 0.4 ms | 0.983 ± 0.44 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 2.68 ± 0.71 ms | 4.02 ± 1.5 ms | 0.667 ± 0.31 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 6.13 ± 0.57 ms | 6.74 ± 0.95 ms | 0.909 ± 0.15 |
| stencil/dagger/N=1024 (block 512)/neighbors (Pad) | 5.75 ± 0.6 ms | 6.02 ± 0.13 ms | 0.956 ± 0.1 |
| stencil/dagger/N=1024 (block 512)/neighbors (Reflect) | 5.66 ± 0.074 ms | 6.25 ± 2.2 ms | 0.905 ± 0.32 |
| stencil/dagger/N=1024 (block 512)/neighbors (Wrap) | 6.01 ± 0.48 ms | 6.05 ± 1.9 ms | 0.993 ± 0.32 |
| stencil/dagger/N=1024 (block 512)/update (+) | 1.55 ± 0.64 ms | 3.82 ± 3.5 ms | 0.406 ± 0.4 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 3.45 ± 0.81 ms | 2.27 ± 2.3 ms | 1.52 ± 1.6 |
| stencil/dagger/N=256 (block 128)/assign (const) | 2.08 ± 3.4 ms | 1.51 ± 0.6 ms | 1.37 ± 2.3 |
| stencil/dagger/N=256 (block 128)/multi-expr | 1.71 ± 0.88 ms | 4.05 ± 2.3 ms | 0.422 ± 0.32 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 1.55 ± 0.51 ms | 3.07 ± 1.9 ms | 0.505 ± 0.36 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 2.88 ± 1.3 ms | 3.15 ± 1.1 ms | 0.915 ± 0.53 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 2.17 ± 0.45 ms | 2.4 ± 0.97 ms | 0.905 ± 0.41 |
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 1.94 ± 1.7 ms | 1.87 ± 1.2 ms | 1.04 ± 1.2 |
| stencil/dagger/N=256 (block 128)/update (+) | 2.82 ± 2.1 ms | 1.79 ± 2 ms | 1.57 ± 2.1 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 2.54 ± 0.9 ms | 1.66 ± 0.77 ms | 1.53 ± 0.9 |
| stencil/dagger/N=256 (block 256)/assign (const) | 0.493 ± 0.039 ms | 0.503 ± 0.035 ms | 0.98 ± 0.1 |
| stencil/dagger/N=256 (block 256)/multi-expr | 2.48 ± 2.4 ms | 2.75 ± 2.5 ms | 0.902 ± 1.2 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 1.48 ± 0.044 ms | 1.48 ± 0.14 ms | 1 ± 0.1 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 1.34 ± 0.09 ms | 1.56 ± 1.2 ms | 0.858 ± 0.65 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 1.57 ± 0.35 ms | 1.58 ± 0.3 ms | 0.992 ± 0.29 |
| stencil/dagger/N=256 (block 256)/neighbors (Wrap) | 1.34 ± 0.11 ms | 1.62 ± 0.16 ms | 0.826 ± 0.11 |
| stencil/dagger/N=256 (block 256)/update (+) | 1.09 ± 0.37 ms | 0.714 ± 0.16 ms | 1.52 ± 0.62 |
| time_to_load | 1.1 ± 0.0088 s | 1.1 ± 0.012 s | 1 ± 0.014 |
Allocations / memory
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 0.0794 M allocs: 11 MB | 0.0793 M allocs: 11 MB | 1 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 0.0431 M allocs: 9.44 MB | 0.0431 M allocs: 9.44 MB | 1 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 0.038 M allocs: 9.31 MB | 0.0382 M allocs: 9.3 MB | 1 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 0.033 M allocs: 9.11 MB | 0.0329 M allocs: 9.11 MB | 1 |
| array/dagger/N=1024 (block 128)/norm | 0.0424 M allocs: 1.41 MB | 0.0424 M allocs: 1.41 MB | 1 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.0864 M allocs: 2.94 MB | 0.0829 M allocs: 2.82 MB | 1.04 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.0448 M allocs: 9.73 MB | 0.0447 M allocs: 9.73 MB | 1 |
| array/dagger/N=1024 (block 512)/add (X + X) | 5.56 k allocs: 8.22 MB | 5.59 k allocs: 8.22 MB | 1 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 2.76 k allocs: 8.09 MB | 2.77 k allocs: 8.09 MB | 1 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 2.41 k allocs: 8.08 MB | 2.39 k allocs: 8.08 MB | 1 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 2.09 k allocs: 8.07 MB | 2.1 k allocs: 8.07 MB | 1 |
| array/dagger/N=1024 (block 512)/norm | 2.72 k allocs: 0.0905 MB | 2.7 k allocs: 0.0902 MB | 1 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 4.56 k allocs: 0.157 MB | 3.68 k allocs: 0.126 MB | 1.25 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 3.33 k allocs: 8.14 MB | 3.31 k allocs: 8.14 MB | 1 |
| array/dagger/N=256 (block 128)/add (X + X) | 5.57 k allocs: 0.717 MB | 5.59 k allocs: 0.718 MB | 0.999 |
| array/dagger/N=256 (block 128)/alloc (rand) | 2.75 k allocs: 0.592 MB | 2.77 k allocs: 0.593 MB | 0.999 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 2.41 k allocs: 0.584 MB | 2.43 k allocs: 0.583 MB | 1 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 2.16 k allocs: 0.573 MB | 2.08 k allocs: 0.57 MB | 1 |
| array/dagger/N=256 (block 128)/norm | 2.69 k allocs: 0.0896 MB | 2.69 k allocs: 0.0896 MB | 1 |
| array/dagger/N=256 (block 128)/reduce (sum) | 4.14 k allocs: 0.142 MB | 4.09 k allocs: 0.14 MB | 1.01 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 3.35 k allocs: 0.637 MB | 3.35 k allocs: 0.637 MB | 1 |
| array/dagger/N=256 (block 256)/add (X + X) | 1.72 k allocs: 0.575 MB | 1.73 k allocs: 0.575 MB | 1 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.743 k allocs: 0.525 MB | 0.754 k allocs: 0.526 MB | 0.999 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.651 k allocs: 0.522 MB | 0.651 k allocs: 0.522 MB | 1 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.574 k allocs: 0.52 MB | 0.574 k allocs: 0.52 MB | 1 |
| array/dagger/N=256 (block 256)/norm | 0.704 k allocs: 24.2 kB | 0.713 k allocs: 24.6 kB | 0.986 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.816 k allocs: 30.5 kB | 0.816 k allocs: 30.5 kB | 1 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 1.11 k allocs: 0.551 MB | 1.11 k allocs: 0.551 MB | 1 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.124 M allocs: 15.9 MB | 0.124 M allocs: 15.9 MB | 0.999 |
| linalg/dagger/N=1024 (block 128)/lu | 0.319 M allocs: 23.8 MB | 0.347 M allocs: 24.8 MB | 0.959 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.239 M allocs: 15.9 MB | 0.237 M allocs: 15.8 MB | 1 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.0667 M allocs: 2.48 MB | 0.0694 M allocs: 2.58 MB | 0.964 |
| linalg/dagger/N=1024 (block 128)/qr | 0.241 M allocs: 25.2 MB | 0.242 M allocs: 25 MB | 1.01 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.431 M allocs: 28.1 MB | 0.452 M allocs: 28.8 MB | 0.978 |
| linalg/dagger/N=1024 (block 128)/svd | 3.19 M allocs: 2.29 GB | 3.07 M allocs: 2.29 GB | 1 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.173 M allocs: 17.1 MB | 0.173 M allocs: 17 MB | 1 |
| linalg/dagger/N=1024 (block 512)/cholesky | 7.93 k allocs: 10.3 MB | 7.86 k allocs: 10.3 MB | 1 |
| linalg/dagger/N=1024 (block 512)/lu | 15.6 k allocs: 14.6 MB | 15.7 k allocs: 14.6 MB | 1 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 7.72 k allocs: 8.29 MB | 7.71 k allocs: 8.28 MB | 1 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 6.1 k allocs: 0.243 MB | 6.3 k allocs: 0.25 MB | 0.972 |
| linalg/dagger/N=1024 (block 512)/qr | 11.6 k allocs: 9.6 MB | 11.8 k allocs: 9.6 MB | 0.999 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 30.1 k allocs: 15.2 MB | 29.6 k allocs: 15.2 MB | 1 |
| linalg/dagger/N=1024 (block 512)/svd | 0.0497 M allocs: 0.197 GB | 0.0494 M allocs: 0.197 GB | 1 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 9.1 k allocs: 20.4 MB | 9.08 k allocs: 20.4 MB | 1 |
| linalg/dagger/N=256 (block 128)/cholesky | 7.86 k allocs: 0.937 MB | 7.92 k allocs: 0.939 MB | 0.998 |
| linalg/dagger/N=256 (block 128)/lu | 15.6 k allocs: 1.49 MB | 15.6 k allocs: 1.49 MB | 1 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 7.74 k allocs: 0.787 MB | 7.77 k allocs: 0.788 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 6.42 k allocs: 0.249 MB | 6.4 k allocs: 0.248 MB | 1 |
| linalg/dagger/N=256 (block 128)/qr | 11.6 k allocs: 1.24 MB | 11.6 k allocs: 1.24 MB | 1 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 29.8 k allocs: 2.07 MB | 30.5 k allocs: 2.09 MB | 0.989 |
| linalg/dagger/N=256 (block 128)/svd | 0.0487 M allocs: 14.6 MB | 0.0485 M allocs: 14.6 MB | 1 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 9.11 k allocs: 1.61 MB | 9.12 k allocs: 1.61 MB | 1 |
| linalg/dagger/N=256 (block 256)/cholesky | 3.06 k allocs: 0.635 MB | 3.06 k allocs: 0.635 MB | 1 |
| linalg/dagger/N=256 (block 256)/lu | 5.4 k allocs: 1.24 MB | 5.4 k allocs: 1.24 MB | 1 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 1.94 k allocs: 0.582 MB | 1.94 k allocs: 0.582 MB | 1 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 2.45 k allocs: 0.104 MB | 2.35 k allocs: 0.0995 MB | 1.05 |
| linalg/dagger/N=256 (block 256)/qr | 3.46 k allocs: 0.78 MB | 3.43 k allocs: 0.779 MB | 1 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 12 k allocs: 1.54 MB | 11.9 k allocs: 1.53 MB | 1 |
| linalg/dagger/N=256 (block 256)/svd | 15.5 k allocs: 6.71 MB | 15.5 k allocs: 6.71 MB | 1 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 3.07 k allocs: 2.14 MB | 3.06 k allocs: 2.14 MB | 1 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 3.1 M allocs: 0.114 GB | 3.36 M allocs: 0.123 GB | 0.927 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 3.89 M allocs: 0.175 GB | 4 M allocs: 0.179 GB | 0.975 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 0.212 M allocs: 7.96 MB | 0.234 M allocs: 8.74 MB | 0.911 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 3.12 M allocs: 0.115 GB | 3.32 M allocs: 0.122 GB | 0.946 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 4 M allocs: 0.142 GB | 4.01 M allocs: 0.142 GB | 0.996 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 0.195 M allocs: 7.43 MB | 0.218 M allocs: 8.18 MB | 0.908 |
| stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) | 0.0653 M allocs: 10.7 MB | 0.0651 M allocs: 10.7 MB | 1 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 25.3 k allocs: 1.05 MB | 25.3 k allocs: 1.05 MB | 1 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.0586 M allocs: 2.62 MB | 0.058 M allocs: 2.59 MB | 1.01 |
| stencil/dagger/N=1024 (block 128)/neighbors (Clamp) | 0.0487 M allocs: 2.51 MB | 0.0488 M allocs: 2.64 MB | 0.949 |
| stencil/dagger/N=1024 (block 128)/neighbors (Pad) | 0.0483 M allocs: 2.6 MB | 0.048 M allocs: 2.49 MB | 1.04 |
| stencil/dagger/N=1024 (block 128)/neighbors (Reflect) | 0.0489 M allocs: 2.55 MB | 0.0488 M allocs: 2.67 MB | 0.956 |
| stencil/dagger/N=1024 (block 128)/neighbors (Wrap) | 0.0475 M allocs: 2.26 MB | 0.0473 M allocs: 2.25 MB | 1 |
| stencil/dagger/N=1024 (block 128)/update (+) | 0.0328 M allocs: 1.55 MB | 0.0332 M allocs: 1.56 MB | 0.995 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 4.82 k allocs: 8.2 MB | 4.82 k allocs: 8.2 MB | 1 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 2.19 k allocs: 0.0955 MB | 2.19 k allocs: 0.0956 MB | 0.999 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 4.98 k allocs: 2.22 MB | 4.8 k allocs: 0.212 MB | 10.5 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 3.84 k allocs: 0.233 MB | 3.84 k allocs: 0.233 MB | 0.998 |
| stencil/dagger/N=1024 (block 512)/neighbors (Pad) | 3.71 k allocs: 0.229 MB | 3.71 k allocs: 0.23 MB | 0.998 |
| stencil/dagger/N=1024 (block 512)/neighbors (Reflect) | 3.84 k allocs: 0.264 MB | 3.88 k allocs: 0.266 MB | 0.994 |
| stencil/dagger/N=1024 (block 512)/neighbors (Wrap) | 3.64 k allocs: 0.167 MB | 3.61 k allocs: 0.166 MB | 1.01 |
| stencil/dagger/N=1024 (block 512)/update (+) | 2.6 k allocs: 0.115 MB | 2.61 k allocs: 0.116 MB | 0.994 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 4.83 k allocs: 0.706 MB | 4.81 k allocs: 0.705 MB | 1 |
| stencil/dagger/N=256 (block 128)/assign (const) | 2.14 k allocs: 0.0937 MB | 2.19 k allocs: 0.096 MB | 0.975 |
| stencil/dagger/N=256 (block 128)/multi-expr | 4.81 k allocs: 0.213 MB | 4.8 k allocs: 0.212 MB | 1.01 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 3.81 k allocs: 0.186 MB | 3.88 k allocs: 0.313 MB | 0.594 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 3.7 k allocs: 0.183 MB | 3.71 k allocs: 0.183 MB | 0.999 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 3.78 k allocs: 0.193 MB | 3.82 k allocs: 0.194 MB | 0.994 |
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 3.68 k allocs: 0.169 MB | 3.61 k allocs: 0.167 MB | 1.01 |
| stencil/dagger/N=256 (block 128)/update (+) | 2.62 k allocs: 0.116 MB | 2.65 k allocs: 0.118 MB | 0.986 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 1.56 k allocs: 0.574 MB | 1.55 k allocs: 0.574 MB | 1 |
| stencil/dagger/N=256 (block 256)/assign (const) | 0.811 k allocs: 0.041 MB | 0.811 k allocs: 0.041 MB | 1 |
| stencil/dagger/N=256 (block 256)/multi-expr | 1.74 k allocs: 0.0874 MB | 1.72 k allocs: 0.087 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 1.26 k allocs: 0.0715 MB | 1.26 k allocs: 0.0715 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 1.21 k allocs: 0.0703 MB | 1.21 k allocs: 0.0703 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 1.27 k allocs: 0.0796 MB | 1.26 k allocs: 0.0792 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Wrap) | 1.2 k allocs: 0.0625 MB | 1.2 k allocs: 0.0625 MB | 1 |
| stencil/dagger/N=256 (block 256)/update (+) | 0.902 k allocs: 0.0456 MB | 0.924 k allocs: 0.0463 MB | 0.985 |
| time_to_load | 0.147 k allocs: 10.8 kB | 0.147 k allocs: 10.8 kB | 1 |
Plots
⚠️ Regressions (time > 25.0% and outside the reported ±spread; allocs/memory > 25.0%)
linalg/dagger/N=256 (block 256)/solve (A\b via lu)(time): +77.7%stencil/dagger/N=256 (block 128)/neighbors (Clamp)(memory): +68.4%
Improvements
stencil/dagger/N=1024 (block 512)/multi-expr(memory): -90.4%linalg/dagger/N=256 (block 256)/cholesky(time): -60.9%array/dagger/N=256 (block 128)/map (sin.(X))(time): -44.9%
Within noise (20 metric(s) past threshold but inside the ±spread; not counted)
stencil/dagger/N=1024 (block 512)/update (+)(time): 146.6%stencil/dagger/N=256 (block 128)/multi-expr(time): 136.7%array/dagger/N=256 (block 128)/broadcast (X .+ 1)(time): 114.7%array/dagger/N=1024 (block 512)/alloc (rand)(time): 99.0%stencil/dagger/N=256 (block 128)/neighbors (Clamp)(time): 98.1%linalg/dagger/N=256 (block 128)/lu(time): 83.7%linalg/dagger/N=256 (block 128)/matmul (A*A)(time): 69.6%stencil/dagger/N=1024 (block 512)/multi-expr(time): 50.0%linalg/dagger/N=256 (block 128)/syrk (A'*A)(time): 42.7%array/dagger/N=256 (block 128)/reduce (sum)(time): 30.9%array/dagger/N=256 (block 256)/broadcast (X .+ 1)(time): -26.6%stencil/dagger/N=256 (block 128)/assign (const)(time): -27.2%linalg/dagger/N=256 (block 128)/matvec (A*x)(time): -28.0%array/dagger/N=256 (block 256)/add (X + X)(time): -32.0%stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap)(time): -34.1%stencil/dagger/N=256 (block 256)/update (+)(time): -34.2%stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap)(time): -34.8%linalg/dagger/N=1024 (block 512)/matvec (A*x)(time): -35.0%stencil/dagger/N=256 (block 128)/update (+)(time): -36.3%array/dagger/N=1024 (block 512)/norm(time): -40.7%
Distributed benchmarks (4 processes)
Dagger benchmarks: dirty vs master
Median time
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 0.206 ± 0.057 s | 0.313 ± 0.047 s | 0.657 ± 0.21 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 20.8 ± 1.3 ms | 23 ± 1.8 ms | 0.907 ± 0.09 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 0.0327 ± 0.0013 s | 0.0337 ± 0.0017 s | 0.97 ± 0.061 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 0.0384 ± 0.002 s | 0.0389 ± 0.00071 s | 0.988 ± 0.055 |
| array/dagger/N=1024 (block 128)/norm | 20 ± 1.4 ms | 25.1 ± 1.5 ms | 0.796 ± 0.073 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.0507 ± 0.0027 s | 0.0476 ± 0.0022 s | 1.07 ± 0.075 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.0447 ± 0.0031 s | 0.0719 ± 0.0072 s | 0.622 ± 0.075 |
| array/dagger/N=1024 (block 512)/add (X + X) | 27.8 ± 9.5 ms | 23.7 ± 11 ms | 1.17 ± 0.66 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 2.78 ± 0.16 ms | 3.46 ± 1.3 ms | 0.804 ± 0.3 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 4.12 ± 0.54 ms | 4.51 ± 0.3 ms | 0.915 ± 0.13 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 7.27 ± 1.5 ms | 7.12 ± 1.7 ms | 1.02 ± 0.31 |
| array/dagger/N=1024 (block 512)/norm | 1.84 ± 0.26 ms | 2.37 ± 0.05 ms | 0.774 ± 0.11 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 3.32 ± 0.16 ms | 3.34 ± 0.38 ms | 0.992 ± 0.12 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 12.2 ± 52 ms | 10.7 ± 51 ms | 1.14 ± 7.3 |
| array/dagger/N=256 (block 128)/add (X + X) | 1.53 ± 0.12 ms | 1.58 ± 0.1 ms | 0.971 ± 0.096 |
| array/dagger/N=256 (block 128)/alloc (rand) | 1.44 ± 0.029 ms | 1.47 ± 0.033 ms | 0.978 ± 0.03 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 2.61 ± 0.2 ms | 2.47 ± 0.35 ms | 1.06 ± 0.17 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 1.85 ± 0.37 ms | 1.95 ± 0.67 ms | 0.947 ± 0.38 |
| array/dagger/N=256 (block 128)/norm | 0.787 ± 0.67 ms | 0.807 ± 0.65 ms | 0.975 ± 1.1 |
| array/dagger/N=256 (block 128)/reduce (sum) | 2.93 ± 6 ms | 15.2 ± 35 ms | 0.193 ± 0.59 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 1.11 ± 0.033 ms | 1.15 ± 0.052 ms | 0.963 ± 0.052 |
| array/dagger/N=256 (block 256)/add (X + X) | 0.906 ± 0.12 ms | 0.877 ± 0.076 ms | 1.03 ± 0.16 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.899 ± 0.023 ms | 0.972 ± 0.055 ms | 0.924 ± 0.057 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.515 ± 0.13 ms | 0.48 ± 0.039 ms | 1.07 ± 0.29 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 1 ± 0.034 ms | 1.05 ± 0.076 ms | 0.957 ± 0.077 |
| array/dagger/N=256 (block 256)/norm | 0.397 ± 0.059 ms | 0.382 ± 0.015 ms | 1.04 ± 0.16 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.546 ± 0.032 ms | 0.607 ± 0.022 ms | 0.899 ± 0.062 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 0.779 ± 0.04 ms | 0.835 ± 0.026 ms | 0.932 ± 0.056 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.49 ± 0.051 s | 0.476 ± 0.013 s | 1.03 ± 0.11 |
| linalg/dagger/N=1024 (block 128)/lu | 0.223 ± 0.0045 s | 0.243 ± 0.0017 s | 0.918 ± 0.019 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.43 ± 0.055 s | 0.488 ± 0.036 s | 0.881 ± 0.13 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.117 ± 0.0081 s | 0.124 ± 0.0027 s | 0.946 ± 0.069 |
| linalg/dagger/N=1024 (block 128)/qr | 8.58 s | 0.31 ± 0.0058 s | 27.7 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.304 ± 0.02 s | 0.308 ± 0.02 s | 0.986 ± 0.09 |
| linalg/dagger/N=1024 (block 128)/svd | 0.0174 h | 54.1 s | 1.16 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.369 ± 0.029 s | 0.335 ± 0.068 s | 1.1 ± 0.24 |
| linalg/dagger/N=1024 (block 512)/cholesky | 0.0983 ± 0.026 s | 0.0656 ± 0.046 s | 1.5 ± 1.1 |
| linalg/dagger/N=1024 (block 512)/lu | 0.0404 ± 0.00069 s | 0.043 ± 0.00056 s | 0.939 ± 0.02 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 0.0628 ± 0.0092 s | 0.059 ± 0.015 s | 1.06 ± 0.31 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 9.83 ± 0.57 ms | 9.89 ± 0.13 ms | 0.993 ± 0.059 |
| linalg/dagger/N=1024 (block 512)/qr | 0.104 ± 0.0037 s | 0.102 ± 0.0013 s | 1.02 ± 0.039 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 0.0546 ± 0.0011 s | 0.0554 ± 0.00061 s | 0.986 ± 0.022 |
| linalg/dagger/N=1024 (block 512)/svd | 0.04 h | 0.0397 h | 1.01 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 0.0328 ± 0.00026 s | 0.0616 ± 0.0092 s | 0.532 ± 0.079 |
| linalg/dagger/N=256 (block 128)/cholesky | 3.43 ± 2.4e+02 ms | 3.88 ± 2.1e+02 ms | 0.885 ± 78 |
| linalg/dagger/N=256 (block 128)/lu | 14.4 ± 3.1e+02 ms | 0.349 ± 0.33 s | 0.0413 ± 0.89 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 4.82 ± 0.08 ms | 5.2 ± 0.045 ms | 0.927 ± 0.017 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 5.51 ± 2.6 ms | 1.88 ± 2 ms | 2.93 ± 3.4 |
| linalg/dagger/N=256 (block 128)/qr | 7.47 ± 0.23 ms | 7.67 ± 0.36 ms | 0.974 ± 0.055 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 0.143 ± 0.12 s | 0.512 ± 0.38 s | 0.279 ± 0.31 |
| linalg/dagger/N=256 (block 128)/svd | 0.478 ± 0.0084 s | 0.626 ± 0.2 s | 0.762 ± 0.24 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 4.95 ± 0.65 ms | 5.15 ± 0.44 ms | 0.961 ± 0.15 |
| linalg/dagger/N=256 (block 256)/cholesky | 1.87 ± 0.23 ms | 1.89 ± 0.25 ms | 0.985 ± 0.18 |
| linalg/dagger/N=256 (block 256)/lu | 2.92 ± 0.13 ms | 3.01 ± 0.12 ms | 0.971 ± 0.058 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 1.51 ± 0.22 ms | 1.95 ± 0.095 ms | 0.772 ± 0.12 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 0.969 ± 0.044 ms | 0.989 ± 0.013 ms | 0.98 ± 0.047 |
| linalg/dagger/N=256 (block 256)/qr | 3.76 ± 0.0095 ms | 3.96 ± 0.32 ms | 0.95 ± 0.077 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 4.91 ± 0.022 ms | 5.22 ± 0.35 ms | 0.939 ± 0.062 |
| linalg/dagger/N=256 (block 256)/svd | 0.277 ± 0.0029 s | 0.384 ± 0.014 s | 0.721 ± 0.028 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 2.31 ± 0.018 ms | 2.78 ± 0.1 ms | 0.831 ± 0.031 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 11 s | 11.6 s | 0.952 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 6.53 s | 6.26 s | 1.04 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 0.686 ± 0.028 s | 0.736 ± 0.025 s | 0.933 ± 0.049 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 11.5 s | 11.2 s | 1.03 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 6.37 s | 6.27 s | 1.02 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 0.677 ± 0.0077 s | 0.698 ± 0.014 s | 0.969 ± 0.023 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 10.3 ± 8.7 ms | 9.23 ± 11 ms | 1.12 ± 1.7 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.262 ± 0.0077 s | 0.302 ± 0.019 s | 0.867 ± 0.061 |
| stencil/dagger/N=1024 (block 128)/update (+) | 0.266 ± 0.024 s | 0.286 ± 0.014 s | 0.93 ± 0.096 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 27.4 ± 6.7 ms | ||
| stencil/dagger/N=1024 (block 512)/assign (const) | 1.15 ± 3.6 ms | 5.71 ± 3.9 ms | 0.201 ± 0.64 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 0.0462 ± 0.022 s | 2.91 ± 4.8 ms | 15.8 ± 27 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 28 ± 11 ms | 15.8 ± 4.7 ms | 1.77 ± 0.87 |
| stencil/dagger/N=1024 (block 512)/update (+) | 1.92 ± 0.049 ms | 22.9 ± 13 ms | 0.084 ± 0.046 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 2.88 ± 0.079 ms | 2.86 ± 0.09 ms | 1.01 ± 0.042 |
| stencil/dagger/N=256 (block 128)/assign (const) | 0.847 ± 0.016 ms | 0.962 ± 0.058 ms | 0.88 ± 0.055 |
| stencil/dagger/N=256 (block 128)/multi-expr | 1.79 ± 0.082 ms | 1.79 ± 0.078 ms | 1 ± 0.064 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 2.86 ± 0.42 ms | 2.53 ± 0.033 ms | 1.13 ± 0.17 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 2.14 ± 0.065 ms | 1.94 ± 0.014 ms | 1.1 ± 0.034 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 1.91 ± 0.025 ms | 2.07 ± 0.12 ms | 0.921 ± 0.054 |
| stencil/dagger/N=256 (block 128)/update (+) | 1.58 ± 0.045 ms | 1.58 ± 0.042 ms | 0.999 ± 0.039 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 1.64 ± 0.014 ms | 1.82 ± 0.045 ms | 0.902 ± 0.024 |
| stencil/dagger/N=256 (block 256)/assign (const) | 0.574 ± 0.057 ms | 0.582 ± 0.023 ms | 0.988 ± 0.11 |
| stencil/dagger/N=256 (block 256)/multi-expr | 1.18 ± 0.045 ms | 1.26 ± 0.19 ms | 0.935 ± 0.14 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 1.5 ± 0.071 ms | 1.81 ± 0.045 ms | 0.83 ± 0.045 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 1.39 ± 0.033 ms | 1.45 ± 0.14 ms | 0.96 ± 0.097 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 1.34 ± 0.0074 ms | 1.54 ± 0.013 ms | 0.87 ± 0.0086 |
| stencil/dagger/N=256 (block 256)/update (+) | 0.883 ± 0.13 ms | 1.05 ± 0.00082 ms | 0.838 ± 0.13 |
| time_to_load | 1.19 ± 0.0033 s | 1.21 ± 0.0073 s | 0.989 ± 0.0066 |
Allocations / memory
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 0.34 M allocs: 26.4 MB | 0.489 M allocs: 0.033 GB | 0.783 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 0.0523 M allocs: 6.72 MB | 0.0563 M allocs: 5.46 MB | 1.23 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 0.0866 M allocs: 7.95 MB | 0.0916 M allocs: 7.42 MB | 1.07 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 0.0816 M allocs: 7.1 MB | 0.0848 M allocs: 7.27 MB | 0.975 |
| array/dagger/N=1024 (block 128)/norm | 0.0549 M allocs: 2.08 MB | 0.0635 M allocs: 2.51 MB | 0.828 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.108 M allocs: 4.29 MB | 0.104 M allocs: 4.13 MB | 1.04 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.0974 M allocs: 9.96 MB | 0.127 M allocs: 10.5 MB | 0.952 |
| array/dagger/N=1024 (block 512)/add (X + X) | 13.6 k allocs: 10.6 MB | 13.6 k allocs: 10.6 MB | 1 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 3.42 k allocs: 2.17 MB | 3.4 k allocs: 4.15 MB | 0.524 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 4.26 k allocs: 2.22 MB | 4.06 k allocs: 2.31 MB | 0.962 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 4.71 k allocs: 2.2 MB | 4.6 k allocs: 2.2 MB | 0.999 |
| array/dagger/N=1024 (block 512)/norm | 3.65 k allocs: 0.136 MB | 3.77 k allocs: 0.141 MB | 0.961 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 5.44 k allocs: 0.21 MB | 4.86 k allocs: 0.178 MB | 1.18 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 9.55 k allocs: 2.55 MB | 9.26 k allocs: 4.41 MB | 0.579 |
| array/dagger/N=256 (block 128)/add (X + X) | 6.2 k allocs: 0.741 MB | 6.21 k allocs: 0.741 MB | 1 |
| array/dagger/N=256 (block 128)/alloc (rand) | 2.83 k allocs: 0.595 MB | 2.83 k allocs: 0.595 MB | 1 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 4.93 k allocs: 0.345 MB | 4.65 k allocs: 0.345 MB | 0.999 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 2.33 k allocs: 0.536 MB | 2.71 k allocs: 0.554 MB | 0.967 |
| array/dagger/N=256 (block 128)/norm | 2.7 k allocs: 0.0886 MB | 2.7 k allocs: 0.0886 MB | 1 |
| array/dagger/N=256 (block 128)/reduce (sum) | 5.12 k allocs: 0.194 MB | 5.18 k allocs: 0.196 MB | 0.989 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 3.58 k allocs: 0.647 MB | 3.58 k allocs: 0.647 MB | 1 |
| array/dagger/N=256 (block 256)/add (X + X) | 2.04 k allocs: 0.591 MB | 2.04 k allocs: 0.591 MB | 1 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.853 k allocs: 0.53 MB | 0.854 k allocs: 0.53 MB | 1 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.649 k allocs: 0.522 MB | 0.649 k allocs: 0.522 MB | 1 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.571 k allocs: 0.519 MB | 0.571 k allocs: 0.519 MB | 1 |
| array/dagger/N=256 (block 256)/norm | 0.712 k allocs: 24.2 kB | 0.712 k allocs: 24.2 kB | 1 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.814 k allocs: 30.2 kB | 0.814 k allocs: 30.2 kB | 1 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 1.32 k allocs: 0.563 MB | 1.32 k allocs: 0.563 MB | 1 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.744 M allocs: 0.0502 GB | 0.729 M allocs: 0.0493 GB | 1.02 |
| linalg/dagger/N=1024 (block 128)/lu | 0.691 M allocs: 0.0437 GB | 0.671 M allocs: 0.0442 GB | 0.989 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.871 M allocs: 0.0587 GB | 0.871 M allocs: 0.0598 GB | 0.982 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.232 M allocs: 13 MB | 0.239 M allocs: 13.8 MB | 0.939 |
| linalg/dagger/N=1024 (block 128)/qr | 0.581 M allocs: 0.0473 GB | 0.451 M allocs: 0.0397 GB | 1.19 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.853 M allocs: 0.0482 GB | 0.823 M allocs: 0.0475 GB | 1.01 |
| linalg/dagger/N=1024 (block 128)/svd | 21 M allocs: 2.73 GB | 21.7 M allocs: 2.74 GB | 0.996 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.728 M allocs: 0.0579 GB | 0.594 M allocs: 0.0445 GB | 1.3 |
| linalg/dagger/N=1024 (block 512)/cholesky | 0.0378 M allocs: 13.6 MB | 9.95 k allocs: 10.4 MB | 1.31 |
| linalg/dagger/N=1024 (block 512)/lu | 20.3 k allocs: 14.8 MB | 19.9 k allocs: 14.8 MB | 1 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 20.6 k allocs: 16.8 MB | 11.1 k allocs: 8.41 MB | 2 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 17.3 k allocs: 0.725 MB | 17.2 k allocs: 0.722 MB | 1 |
| linalg/dagger/N=1024 (block 512)/qr | 14.2 k allocs: 9.7 MB | 14.2 k allocs: 9.7 MB | 1 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 0.0469 M allocs: 15.9 MB | 0.0465 M allocs: 15.9 MB | 1 |
| linalg/dagger/N=1024 (block 512)/svd | 0.22 M allocs: 0.334 GB | 0.22 M allocs: 0.334 GB | 1 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 12.1 k allocs: 20.5 MB | 12 k allocs: 20.5 MB | 1 |
| linalg/dagger/N=256 (block 128)/cholesky | 9.99 k allocs: 1.01 MB | 9.95 k allocs: 1.01 MB | 1 |
| linalg/dagger/N=256 (block 128)/lu | 29.5 k allocs: 2.07 MB | 29.4 k allocs: 2.07 MB | 1 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 11.7 k allocs: 0.928 MB | 11.5 k allocs: 0.92 MB | 1.01 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 7.13 k allocs: 0.276 MB | 7.13 k allocs: 0.276 MB | 1 |
| linalg/dagger/N=256 (block 128)/qr | 14.1 k allocs: 1.34 MB | 14 k allocs: 1.33 MB | 1 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 0.0761 M allocs: 4.08 MB | 0.0762 M allocs: 4.08 MB | 1 |
| linalg/dagger/N=256 (block 128)/svd | 0.212 M allocs: 30 MB | 0.213 M allocs: 30 MB | 1 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 12.1 k allocs: 1.71 MB | 11.9 k allocs: 1.71 MB | 1 |
| linalg/dagger/N=256 (block 256)/cholesky | 3.55 k allocs: 0.662 MB | 3.55 k allocs: 0.662 MB | 1 |
| linalg/dagger/N=256 (block 256)/lu | 6.45 k allocs: 1.29 MB | 6.45 k allocs: 1.29 MB | 1 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 2.26 k allocs: 0.598 MB | 2.26 k allocs: 0.598 MB | 1 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 2.81 k allocs: 0.123 MB | 2.81 k allocs: 0.123 MB | 1 |
| linalg/dagger/N=256 (block 256)/qr | 4.04 k allocs: 0.811 MB | 4.04 k allocs: 0.811 MB | 1 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 14.2 k allocs: 1.65 MB | 14.2 k allocs: 1.65 MB | 1 |
| linalg/dagger/N=256 (block 256)/svd | 18.3 k allocs: 6.86 MB | 18.3 k allocs: 6.86 MB | 1 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 3.6 k allocs: 2.16 MB | 3.6 k allocs: 2.16 MB | 1 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 19 M allocs: 0.812 GB | 19.9 M allocs: 0.845 GB | 0.96 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 13.2 M allocs: 0.592 GB | 13 M allocs: 0.58 GB | 1.02 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 1.22 M allocs: 0.0511 GB | 1.28 M allocs: 0.0536 GB | 0.954 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 20 M allocs: 0.848 GB | 18.6 M allocs: 0.793 GB | 1.07 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 12.8 M allocs: 0.541 GB | 12.9 M allocs: 0.541 GB | 1 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 1.26 M allocs: 0.0521 GB | 1.26 M allocs: 0.0524 GB | 0.995 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 0.0326 M allocs: 1.46 MB | 0.0326 M allocs: 1.46 MB | 1 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.437 M allocs: 0.0325 GB | 0.465 M allocs: 28.6 MB | 1.16 |
| stencil/dagger/N=1024 (block 128)/update (+) | 0.382 M allocs: 24.3 MB | 0.415 M allocs: 21.6 MB | 1.12 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 6.32 k allocs: 8.26 MB | ||
| stencil/dagger/N=1024 (block 512)/assign (const) | 2.58 k allocs: 0.113 MB | 2.52 k allocs: 0.111 MB | 1.02 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 21.5 k allocs: 7.83 MB | 6.64 k allocs: 0.285 MB | 27.4 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 13.9 k allocs: 6.65 MB | 5.23 k allocs: 0.288 MB | 23.1 |
| stencil/dagger/N=1024 (block 512)/update (+) | 3.44 k allocs: 0.15 MB | 3.44 k allocs: 0.15 MB | 1 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 6.31 k allocs: 0.764 MB | 6.3 k allocs: 0.764 MB | 1 |
| stencil/dagger/N=256 (block 128)/assign (const) | 2.45 k allocs: 0.108 MB | 2.51 k allocs: 0.11 MB | 0.975 |
| stencil/dagger/N=256 (block 128)/multi-expr | 6.43 k allocs: 0.278 MB | 6.46 k allocs: 0.279 MB | 0.995 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 5.64 k allocs: 0.263 MB | 5.59 k allocs: 0.261 MB | 1.01 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 5.04 k allocs: 0.237 MB | 5.05 k allocs: 0.237 MB | 0.999 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 5.15 k allocs: 0.249 MB | 5.16 k allocs: 0.249 MB | 0.998 |
| stencil/dagger/N=256 (block 128)/update (+) | 3.85 k allocs: 0.17 MB | 3.93 k allocs: 0.175 MB | 0.973 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 2.13 k allocs: 0.601 MB | 2.14 k allocs: 0.602 MB | 1 |
| stencil/dagger/N=256 (block 256)/assign (const) | 1.09 k allocs: 0.0561 MB | 1.09 k allocs: 0.0561 MB | 0.999 |
| stencil/dagger/N=256 (block 256)/multi-expr | 2.59 k allocs: 0.628 MB | 2.59 k allocs: 0.628 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 1.84 k allocs: 0.598 MB | 1.9 k allocs: 0.601 MB | 0.995 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 1.79 k allocs: 0.596 MB | 1.79 k allocs: 0.596 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 1.84 k allocs: 0.606 MB | 1.94 k allocs: 0.61 MB | 0.993 |
| stencil/dagger/N=256 (block 256)/update (+) | 1.42 k allocs: 0.57 MB | 1.36 k allocs: 0.567 MB | 1 |
| time_to_load | 0.147 k allocs: 10.8 kB | 0.147 k allocs: 10.8 kB | 1 |
⚠️ Regressions (time > 35.0% and outside the reported ±spread; allocs/memory > 25.0%)
stencil/dagger/N=1024 (block 512)/update (+)(time): +1090.3%array/dagger/N=1024 (block 512)/alloc (rand)(memory): +90.8%linalg/dagger/N=1024 (block 512)/syrk (A'*A)(time): +88.1%array/dagger/N=1024 (block 512)/transpose (permutedims)(memory): +72.8%array/dagger/N=1024 (block 128)/transpose (permutedims)(time): +60.9%array/dagger/N=1024 (block 128)/add (X + X)(time): +52.2%array/dagger/N=1024 (block 128)/add (X + X)(allocs): +43.8%linalg/dagger/N=256 (block 256)/svd(time): +38.6%array/dagger/N=1024 (block 128)/transpose (permutedims)(allocs): +30.3%array/dagger/N=1024 (block 128)/add (X + X)(memory): +27.8%
Improvements
linalg/dagger/N=1024 (block 128)/qr(time): -96.4%stencil/dagger/N=1024 (block 512)/multi-expr(memory): -96.4%stencil/dagger/N=1024 (block 512)/neighbors (Clamp)(memory): -95.7%stencil/dagger/N=1024 (block 512)/multi-expr(time): -93.7%linalg/dagger/N=1024 (block 512)/cholesky(allocs): -73.7%stencil/dagger/N=1024 (block 512)/multi-expr(allocs): -69.2%stencil/dagger/N=1024 (block 512)/neighbors (Clamp)(allocs): -62.5%linalg/dagger/N=1024 (block 512)/matmul (A*A)(memory): -50.0%linalg/dagger/N=1024 (block 512)/matmul (A*A)(allocs): -45.9%
Within noise (6 metric(s) past threshold but inside the ±spread; not counted)
linalg/dagger/N=256 (block 128)/lu(time): 2319.8%array/dagger/N=256 (block 128)/reduce (sum)(time): 418.8%stencil/dagger/N=1024 (block 512)/assign (const)(time): 396.4%linalg/dagger/N=256 (block 128)/solve (A\b via lu)(time): 258.7%stencil/dagger/N=1024 (block 512)/neighbors (Clamp)(time): -43.5%linalg/dagger/N=256 (block 128)/matvec (A*x)(time): -65.8%
MPI benchmarks (4 ranks)
Results unavailable (job did not produce a report).
Full results and plots (download the benchmark-results-* artifacts).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Written by Claude