Support CUDA 6 - #755
Merged
Merged
Support CUDA 6#755
Conversation
Contributor
Dagger benchmarks:
|
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 17 ± 4.7 ms | 16.9 ± 4.1 ms | 1.01 ± 0.37 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 6.19 ± 0.22 ms | 6.6 ± 0.31 ms | 0.938 ± 0.054 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 8.36 ± 1.7 ms | 5.56 ± 0.28 ms | 1.5 ± 0.31 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 6.17 ± 1.7 ms | 5.9 ± 0.27 ms | 1.05 ± 0.29 |
| array/dagger/N=1024 (block 128)/norm | 6.67 ± 0.87 ms | 7.04 ± 3.9 ms | 0.947 ± 0.55 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 13.2 ± 2 ms | 14.1 ± 1.3 ms | 0.936 ± 0.16 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 8.04 ± 1.2 ms | 7.18 ± 4.5 ms | 1.12 ± 0.72 |
| array/dagger/N=1024 (block 512)/add (X + X) | 2.73 ± 0.48 ms | 3.71 ± 1.2 ms | 0.736 ± 0.26 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 1.44 ± 0.45 ms | 1.26 ± 1.1 ms | 1.14 ± 1 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 1.45 ± 0.26 ms | 4.21 ± 2.9 ms | 0.344 ± 0.24 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 4.11 ± 0.62 ms | 4.09 ± 0.75 ms | 1.01 ± 0.24 |
| array/dagger/N=1024 (block 512)/norm | 1.52 ± 1.3 ms | 0.902 ± 1.2 ms | 1.69 ± 2.6 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 1.12 ± 0.079 ms | 1.99 ± 1.3 ms | 0.562 ± 0.36 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 3.16 ± 0.65 ms | 3.41 ± 0.84 ms | 0.927 ± 0.3 |
| array/dagger/N=256 (block 128)/add (X + X) | 1.98 ± 0.74 ms | 2.3 ± 1.4 ms | 0.863 ± 0.63 |
| array/dagger/N=256 (block 128)/alloc (rand) | 1.63 ± 0.98 ms | 0.926 ± 0.27 ms | 1.76 ± 1.2 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 0.72 ± 0.26 ms | 0.896 ± 0.17 ms | 0.804 ± 0.33 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 0.566 ± 0.0036 ms | 0.827 ± 0.37 ms | 0.685 ± 0.31 |
| array/dagger/N=256 (block 128)/norm | 0.817 ± 0.26 ms | 0.616 ± 0.11 ms | 1.33 ± 0.48 |
| array/dagger/N=256 (block 128)/reduce (sum) | 1.39 ± 0.99 ms | 2.02 ± 0.56 ms | 0.688 ± 0.53 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 0.946 ± 0.86 ms | 1.52 ± 0.51 ms | 0.623 ± 0.61 |
| array/dagger/N=256 (block 256)/add (X + X) | 0.744 ± 0.092 ms | 0.706 ± 0.057 ms | 1.05 ± 0.16 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.552 ± 0.03 ms | 0.571 ± 0.032 ms | 0.967 ± 0.075 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.291 ± 0.075 ms | 0.39 ± 0.2 ms | 0.745 ± 0.44 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.688 ± 0.024 ms | 0.807 ± 0.089 ms | 0.852 ± 0.099 |
| array/dagger/N=256 (block 256)/norm | 0.283 ± 0.089 ms | 0.439 ± 0.064 ms | 0.643 ± 0.22 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.425 ± 0.035 ms | 0.504 ± 0.18 ms | 0.844 ± 0.32 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 0.625 ± 0.058 ms | 0.625 ± 0.037 ms | 1 ± 0.11 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.0449 ± 0.0018 s | 0.0422 ± 0.02 s | 1.06 ± 0.5 |
| linalg/dagger/N=1024 (block 128)/lu | 0.0862 ± 0.0042 s | 0.0777 ± 0.0099 s | 1.11 ± 0.15 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.097 ± 0.0077 s | 0.111 ± 0.0087 s | 0.878 ± 0.098 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 7.29 ± 1 ms | 7.5 ± 0.88 ms | 0.971 ± 0.18 |
| linalg/dagger/N=1024 (block 128)/qr | 0.0828 ± 0.022 s | 0.103 ± 0.0027 s | 0.806 ± 0.21 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.118 ± 0.0039 s | 0.118 ± 0.021 s | 1 ± 0.19 |
| linalg/dagger/N=1024 (block 128)/svd | 25.8 s | 24.8 s | 1.04 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.0599 ± 0.01 s | 0.0621 ± 0.017 s | 0.964 ± 0.31 |
| linalg/dagger/N=1024 (block 512)/cholesky | 15.5 ± 2.4 ms | 15.1 ± 1.5 ms | 1.03 ± 0.19 |
| linalg/dagger/N=1024 (block 512)/lu | 28.7 ± 0.68 ms | 27.9 ± 0.63 ms | 1.03 ± 0.034 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 27.9 ± 11 ms | 22.9 ± 0.68 ms | 1.22 ± 0.47 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 1.55 ± 0.079 ms | 2.3 ± 0.75 ms | 0.676 ± 0.22 |
| linalg/dagger/N=1024 (block 512)/qr | 0.056 ± 0.0064 s | 0.0534 ± 0.0011 s | 1.05 ± 0.12 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 30 ± 5.1 ms | 0.034 ± 0.0063 s | 0.882 ± 0.22 |
| linalg/dagger/N=1024 (block 512)/svd | 0.02 h | 0.0202 h | 0.993 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 22.4 ± 3.1 ms | 20.2 ± 2.6 ms | 1.11 ± 0.21 |
| linalg/dagger/N=256 (block 128)/cholesky | 5.46 ± 2.3 ms | 5.81 ± 3.4 ms | 0.939 ± 0.67 |
| linalg/dagger/N=256 (block 128)/lu | 8.18 ± 2.8 ms | 8.61 ± 4.4 ms | 0.95 ± 0.58 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 3.74 ± 3.4 ms | 5.01 ± 4.4 ms | 0.748 ± 0.95 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 2.28 ± 0.8 ms | 3.91 ± 0.99 ms | 0.584 ± 0.25 |
| linalg/dagger/N=256 (block 128)/qr | 7.05 ± 2.1 ms | 6.63 ± 0.96 ms | 1.06 ± 0.35 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 20.1 ± 10 ms | 15 ± 1.2 ms | 1.34 ± 0.69 |
| linalg/dagger/N=256 (block 128)/svd | 0.608 ± 0.012 s | 0.584 ± 0.013 s | 1.04 ± 0.031 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 7 ± 1.2 ms | 7.39 ± 3.6 ms | 0.947 ± 0.49 |
| linalg/dagger/N=256 (block 256)/cholesky | 1.66 ± 0.63 ms | 1.44 ± 0.14 ms | 1.15 ± 0.45 |
| linalg/dagger/N=256 (block 256)/lu | 2.65 ± 0.48 ms | 2.73 ± 1.3 ms | 0.971 ± 0.49 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 1.21 ± 0.016 ms | 1.37 ± 0.049 ms | 0.882 ± 0.034 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 0.634 ± 0.98 ms | 0.664 ± 0.051 ms | 0.953 ± 1.5 |
| linalg/dagger/N=256 (block 256)/qr | 3.09 ± 0.21 ms | 2.92 ± 0.14 ms | 1.06 ± 0.088 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 4.63 ± 0.25 ms | 5.98 ± 3.9 ms | 0.774 ± 0.51 |
| linalg/dagger/N=256 (block 256)/svd | 0.517 ± 0.004 s | 0.518 ± 0.012 s | 0.998 ± 0.024 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 2.26 ± 0.24 ms | 1.95 ± 0.04 ms | 1.15 ± 0.13 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 0.244 ± 0.013 s | 0.239 ± 0.012 s | 1.02 ± 0.073 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 0.2 ± 0.013 s | 0.191 ± 0.015 s | 1.05 ± 0.11 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 15.1 ± 2 ms | 14.2 ± 3.4 ms | 1.07 ± 0.29 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 0.226 ± 0.011 s | 0.236 ± 0.03 s | 0.956 ± 0.13 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 0.194 ± 0.029 s | 0.19 ± 0.013 s | 1.02 ± 0.17 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 13.6 ± 0.67 ms | 16.6 ± 1.9 ms | 0.82 ± 0.1 |
| stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) | 19.2 ± 1.2 ms | 18.4 ± 1 ms | 1.04 ± 0.089 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 5.86 ± 1.2 ms | 6.23 ± 0.6 ms | 0.94 ± 0.21 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 13.5 ± 1.5 ms | 14.2 ± 0.85 ms | 0.954 ± 0.12 |
| stencil/dagger/N=1024 (block 128)/neighbors (Clamp) | 12.5 ± 0.51 ms | 13.2 ± 0.89 ms | 0.943 ± 0.074 |
| stencil/dagger/N=1024 (block 128)/neighbors (Pad) | 11.7 ± 0.44 ms | 12.5 ± 0.42 ms | 0.938 ± 0.047 |
| stencil/dagger/N=1024 (block 128)/neighbors (Reflect) | 12.6 ± 0.46 ms | 13.1 ± 0.44 ms | 0.959 ± 0.048 |
| stencil/dagger/N=1024 (block 128)/neighbors (Wrap) | 11.6 ± 0.37 ms | 12.7 ± 0.15 ms | 0.915 ± 0.031 |
| stencil/dagger/N=1024 (block 128)/update (+) | 7.19 ± 0.53 ms | 7.66 ± 0.84 ms | 0.939 ± 0.12 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 5.17 ± 1.1 ms | 4.66 ± 0.51 ms | 1.11 ± 0.26 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 2.03 ± 1.8 ms | 0.959 ± 0.061 ms | 2.12 ± 1.9 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 3.65 ± 0.42 ms | 2.56 ± 0.56 ms | 1.43 ± 0.35 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 5.1 ± 2.4 ms | 4.56 ± 0.95 ms | 1.12 ± 0.57 |
| stencil/dagger/N=1024 (block 512)/neighbors (Pad) | 5.04 ± 0.59 ms | 4.59 ± 0.8 ms | 1.1 ± 0.23 |
| stencil/dagger/N=1024 (block 512)/neighbors (Reflect) | 5.39 ± 2 ms | 6.42 ± 2 ms | 0.84 ± 0.4 |
| stencil/dagger/N=1024 (block 512)/neighbors (Wrap) | 3.48 ± 0.65 ms | 4.39 ± 0.97 ms | 0.794 ± 0.23 |
| stencil/dagger/N=1024 (block 512)/update (+) | 1.84 ± 2 ms | 2.07 ± 0.94 ms | 0.889 ± 1 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 2.18 ± 0.62 ms | 2.05 ± 1.2 ms | 1.07 ± 0.71 |
| stencil/dagger/N=256 (block 128)/assign (const) | 1.07 ± 0.18 ms | 1.6 ± 0.34 ms | 0.672 ± 0.18 |
| stencil/dagger/N=256 (block 128)/multi-expr | 2.16 ± 2.6 ms | 3.4 ± 1.9 ms | 0.636 ± 0.85 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 3.09 ± 1.7 ms | 1.56 ± 1.6 ms | 1.99 ± 2.4 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 4.02 ± 3.8 ms | 1.57 ± 0.64 ms | 2.56 ± 2.6 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 3.31 ± 0.91 ms | 1.85 ± 0.43 ms | 1.79 ± 0.64 |
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 1.51 ± 0.68 ms | 2.07 ± 0.57 ms | 0.73 ± 0.39 |
| stencil/dagger/N=256 (block 128)/update (+) | 0.865 ± 0.18 ms | 0.776 ± 0.034 ms | 1.12 ± 0.24 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 1.25 ± 0.16 ms | 1.27 ± 0.13 ms | 0.988 ± 0.16 |
| stencil/dagger/N=256 (block 256)/assign (const) | 0.542 ± 0.04 ms | 0.586 ± 0.037 ms | 0.926 ± 0.09 |
| stencil/dagger/N=256 (block 256)/multi-expr | 0.885 ± 0.52 ms | 0.9 ± 0.35 ms | 0.984 ± 0.7 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 1.02 ± 0.085 ms | 0.956 ± 0.024 ms | 1.06 ± 0.093 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 0.985 ± 0.15 ms | 0.957 ± 0.07 ms | 1.03 ± 0.17 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 1.03 ± 0.12 ms | 1.04 ± 0.14 ms | 0.984 ± 0.18 |
| stencil/dagger/N=256 (block 256)/neighbors (Wrap) | 1.05 ± 0.099 ms | 1.01 ± 0.15 ms | 1.04 ± 0.18 |
| stencil/dagger/N=256 (block 256)/update (+) | 0.522 ± 0.028 ms | 0.486 ± 0.064 ms | 1.07 ± 0.15 |
| time_to_load | 0.639 ± 0.023 s | 0.664 ± 0.0076 s | 0.963 ± 0.036 |
Allocations / memory
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 0.0769 M allocs: 11.1 MB | 0.0763 M allocs: 11 MB | 1 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 29.7 k allocs: 9.05 MB | 29.8 k allocs: 9.03 MB | 1 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 28.4 k allocs: 9 MB | 28.2 k allocs: 9 MB | 1 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 25.8 k allocs: 8.89 MB | 25.7 k allocs: 8.89 MB | 1 |
| array/dagger/N=1024 (block 128)/norm | 29.7 k allocs: 1.03 MB | 29.6 k allocs: 1.02 MB | 1 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.0591 M allocs: 2.13 MB | 0.0607 M allocs: 2.16 MB | 0.984 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.0349 M allocs: 9.43 MB | 0.0353 M allocs: 9.45 MB | 0.998 |
| array/dagger/N=1024 (block 512)/add (X + X) | 5.41 k allocs: 8.22 MB | 5.43 k allocs: 8.22 MB | 1 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 1.97 k allocs: 8.07 MB | 1.98 k allocs: 8.07 MB | 1 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 1.76 k allocs: 8.06 MB | 1.79 k allocs: 8.06 MB | 1 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 1.69 k allocs: 8.06 MB | 1.68 k allocs: 8.06 MB | 1 |
| array/dagger/N=1024 (block 512)/norm | 1.86 k allocs: 0.0645 MB | 1.9 k allocs: 0.0656 MB | 0.983 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 3.49 k allocs: 0.125 MB | 3.26 k allocs: 0.115 MB | 1.08 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 2.76 k allocs: 8.12 MB | 2.73 k allocs: 8.12 MB | 1 |
| array/dagger/N=256 (block 128)/add (X + X) | 5.47 k allocs: 0.722 MB | 5.45 k allocs: 0.722 MB | 1 |
| array/dagger/N=256 (block 128)/alloc (rand) | 1.95 k allocs: 0.568 MB | 1.93 k allocs: 0.568 MB | 1 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 1.8 k allocs: 0.564 MB | 1.84 k allocs: 0.565 MB | 0.997 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 1.68 k allocs: 0.558 MB | 1.68 k allocs: 0.558 MB | 1 |
| array/dagger/N=256 (block 128)/norm | 1.92 k allocs: 0.0665 MB | 1.89 k allocs: 0.0655 MB | 1.02 |
| array/dagger/N=256 (block 128)/reduce (sum) | 3.46 k allocs: 0.123 MB | 3.35 k allocs: 0.12 MB | 1.02 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 2.79 k allocs: 0.621 MB | 2.79 k allocs: 0.621 MB | 1 |
| array/dagger/N=256 (block 256)/add (X + X) | 1.7 k allocs: 0.576 MB | 1.7 k allocs: 0.576 MB | 1 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.552 k allocs: 0.52 MB | 0.552 k allocs: 0.52 MB | 1 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.492 k allocs: 0.518 MB | 0.492 k allocs: 0.518 MB | 1 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.472 k allocs: 0.517 MB | 0.472 k allocs: 0.517 MB | 1 |
| array/dagger/N=256 (block 256)/norm | 0.508 k allocs: 18.2 kB | 0.519 k allocs: 18.5 kB | 0.981 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.665 k allocs: 25.9 kB | 0.669 k allocs: 26.2 kB | 0.989 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 0.954 k allocs: 0.547 MB | 0.976 k allocs: 0.548 MB | 0.999 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.108 M allocs: 15.5 MB | 0.108 M allocs: 15.5 MB | 1 |
| linalg/dagger/N=1024 (block 128)/lu | 0.298 M allocs: 23.4 MB | 0.294 M allocs: 23.3 MB | 1 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.229 M allocs: 15.7 MB | 0.232 M allocs: 16 MB | 0.987 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.0426 M allocs: 1.73 MB | 0.0428 M allocs: 1.76 MB | 0.98 |
| linalg/dagger/N=1024 (block 128)/qr | 0.231 M allocs: 25.1 MB | 0.227 M allocs: 25 MB | 1.01 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.361 M allocs: 26 MB | 0.366 M allocs: 26.2 MB | 0.993 |
| linalg/dagger/N=1024 (block 128)/svd | 2.36 M allocs: 2.27 GB | 3.03 M allocs: 2.3 GB | 0.985 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.167 M allocs: 17.1 MB | 0.169 M allocs: 17.1 MB | 0.997 |
| linalg/dagger/N=1024 (block 512)/cholesky | 6.87 k allocs: 10.3 MB | 6.91 k allocs: 10.3 MB | 1 |
| linalg/dagger/N=1024 (block 512)/lu | 14.7 k allocs: 14.6 MB | 14.4 k allocs: 14.6 MB | 1 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 7.16 k allocs: 8.28 MB | 7.17 k allocs: 8.28 MB | 1 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 4.03 k allocs: 0.176 MB | 4.4 k allocs: 0.191 MB | 0.917 |
| linalg/dagger/N=1024 (block 512)/qr | 11.5 k allocs: 9.61 MB | 11.7 k allocs: 9.62 MB | 0.999 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 24.2 k allocs: 15.1 MB | 24.2 k allocs: 15.1 MB | 1 |
| linalg/dagger/N=1024 (block 512)/svd | 0.0463 M allocs: 0.197 GB | 0.0465 M allocs: 0.198 GB | 0.999 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 8.44 k allocs: 20.4 MB | 8.54 k allocs: 20.4 MB | 1 |
| linalg/dagger/N=256 (block 128)/cholesky | 6.91 k allocs: 0.912 MB | 6.93 k allocs: 0.913 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/lu | 14.2 k allocs: 1.46 MB | 14.3 k allocs: 1.46 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 7.14 k allocs: 0.777 MB | 7.18 k allocs: 0.779 MB | 0.998 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 4.13 k allocs: 0.174 MB | 4.35 k allocs: 0.183 MB | 0.95 |
| linalg/dagger/N=256 (block 128)/qr | 11.5 k allocs: 1.25 MB | 11.7 k allocs: 1.26 MB | 0.996 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 24.6 k allocs: 1.92 MB | 24.6 k allocs: 1.92 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/svd | 0.0459 M allocs: 14.6 MB | 0.0461 M allocs: 14.6 MB | 1 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 8.43 k allocs: 1.6 MB | 8.51 k allocs: 1.6 MB | 0.998 |
| linalg/dagger/N=256 (block 256)/cholesky | 2.63 k allocs: 0.623 MB | 2.61 k allocs: 0.622 MB | 1 |
| linalg/dagger/N=256 (block 256)/lu | 4.89 k allocs: 1.23 MB | 4.91 k allocs: 1.23 MB | 0.999 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 1.79 k allocs: 0.58 MB | 1.8 k allocs: 0.58 MB | 0.999 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 1.75 k allocs: 0.0818 MB | 1.74 k allocs: 0.0816 MB | 1 |
| linalg/dagger/N=256 (block 256)/qr | 3.51 k allocs: 0.786 MB | 3.47 k allocs: 0.785 MB | 1 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 10.1 k allocs: 1.48 MB | 10 k allocs: 1.47 MB | 1 |
| linalg/dagger/N=256 (block 256)/svd | 14.6 k allocs: 6.7 MB | 14.6 k allocs: 6.7 MB | 1 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 2.8 k allocs: 2.13 MB | 2.79 k allocs: 2.13 MB | 1 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 1.83 M allocs: 0.0723 GB | 1.86 M allocs: 0.0734 GB | 0.984 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 2.46 M allocs: 0.131 GB | 2.44 M allocs: 0.13 GB | 1 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 0.129 M allocs: 5.15 MB | 0.127 M allocs: 5.08 MB | 1.01 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 1.84 M allocs: 0.0724 GB | 1.82 M allocs: 0.0716 GB | 1.01 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 2.39 M allocs: 0.091 GB | 2.47 M allocs: 0.0946 GB | 0.962 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 0.128 M allocs: 5.11 MB | 0.129 M allocs: 5.14 MB | 0.996 |
| stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) | 0.0978 M allocs: 12 MB | 0.097 M allocs: 12 MB | 1 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 0.0327 M allocs: 1.37 MB | 0.0327 M allocs: 1.35 MB | 1.02 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.0748 M allocs: 3.2 MB | 0.074 M allocs: 3.2 MB | 1 |
| stencil/dagger/N=1024 (block 128)/neighbors (Clamp) | 0.0681 M allocs: 3.16 MB | 0.0683 M allocs: 3.17 MB | 0.997 |
| stencil/dagger/N=1024 (block 128)/neighbors (Pad) | 0.0677 M allocs: 3.14 MB | 0.0677 M allocs: 3.17 MB | 0.991 |
| stencil/dagger/N=1024 (block 128)/neighbors (Reflect) | 0.0683 M allocs: 3.22 MB | 0.0687 M allocs: 3.35 MB | 0.961 |
| stencil/dagger/N=1024 (block 128)/neighbors (Wrap) | 0.0677 M allocs: 3.08 MB | 0.0674 M allocs: 2.94 MB | 1.05 |
| stencil/dagger/N=1024 (block 128)/update (+) | 0.0419 M allocs: 1.81 MB | 0.0414 M allocs: 1.79 MB | 1.01 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 6.86 k allocs: 8.29 MB | 6.86 k allocs: 8.29 MB | 1 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 2.67 k allocs: 0.116 MB | 2.65 k allocs: 0.115 MB | 1 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 5.91 k allocs: 0.259 MB | 5.87 k allocs: 0.258 MB | 1 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 5.05 k allocs: 0.281 MB | 5.12 k allocs: 0.284 MB | 0.991 |
| stencil/dagger/N=1024 (block 512)/neighbors (Pad) | 4.93 k allocs: 0.278 MB | 4.92 k allocs: 0.277 MB | 1 |
| stencil/dagger/N=1024 (block 512)/neighbors (Reflect) | 5.04 k allocs: 0.312 MB | 5.07 k allocs: 0.315 MB | 0.992 |
| stencil/dagger/N=1024 (block 512)/neighbors (Wrap) | 4.87 k allocs: 0.217 MB | 4.92 k allocs: 0.219 MB | 0.991 |
| stencil/dagger/N=1024 (block 512)/update (+) | 3.22 k allocs: 0.142 MB | 3.21 k allocs: 0.141 MB | 1.01 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 6.89 k allocs: 0.788 MB | 6.87 k allocs: 0.787 MB | 1 |
| stencil/dagger/N=256 (block 128)/assign (const) | 2.65 k allocs: 0.116 MB | 2.65 k allocs: 0.115 MB | 1 |
| stencil/dagger/N=256 (block 128)/multi-expr | 5.88 k allocs: 0.259 MB | 5.88 k allocs: 0.258 MB | 1 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 5.04 k allocs: 0.235 MB | 5.01 k allocs: 0.234 MB | 1 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 4.94 k allocs: 0.232 MB | 4.92 k allocs: 0.231 MB | 1 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 5.06 k allocs: 0.243 MB | 5.01 k allocs: 0.243 MB | 1 |
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 4.92 k allocs: 0.219 MB | 4.95 k allocs: 0.22 MB | 0.995 |
| stencil/dagger/N=256 (block 128)/update (+) | 3.2 k allocs: 0.141 MB | 3.24 k allocs: 0.267 MB | 0.529 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 2.09 k allocs: 0.596 MB | 2.1 k allocs: 0.597 MB | 0.999 |
| stencil/dagger/N=256 (block 256)/assign (const) | 0.932 k allocs: 0.0465 MB | 0.943 k allocs: 0.0468 MB | 0.993 |
| stencil/dagger/N=256 (block 256)/multi-expr | 2 k allocs: 0.0994 MB | 2.02 k allocs: 0.1 MB | 0.99 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 1.57 k allocs: 0.0847 MB | 1.58 k allocs: 0.0849 MB | 0.998 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 1.53 k allocs: 0.0835 MB | 1.53 k allocs: 0.0833 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 1.59 k allocs: 0.093 MB | 1.58 k allocs: 0.0926 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Wrap) | 1.52 k allocs: 0.076 MB | 1.54 k allocs: 0.0771 MB | 0.985 |
| stencil/dagger/N=256 (block 256)/update (+) | 1.07 k allocs: 0.053 MB | 1.07 k allocs: 0.0528 MB | 1.01 |
| time_to_load | 0.199 k allocs: 11.5 kB | 0.199 k allocs: 11.5 kB | 1 |
Plots
⚠️ Regressions (time > 25.0% and outside the reported ±spread; allocs/memory > 25.0%)
stencil/dagger/N=256 (block 128)/update (+)(memory): +89.0%array/dagger/N=256 (block 256)/norm(time): +55.4%stencil/dagger/N=256 (block 128)/assign (const)(time): +48.9%linalg/dagger/N=1024 (block 128)/svd(allocs): +28.2%
Improvements
stencil/dagger/N=256 (block 128)/neighbors (Reflect)(time): -44.1%array/dagger/N=1024 (block 128)/broadcast (X .+ 1)(time): -33.5%stencil/dagger/N=1024 (block 512)/multi-expr(time): -29.9%
Within noise (20 metric(s) past threshold but inside the ±spread; not counted)
array/dagger/N=1024 (block 512)/broadcast (X .+ 1)(time): 190.6%array/dagger/N=1024 (block 512)/reduce (sum)(time): 77.9%linalg/dagger/N=256 (block 128)/matvec (A*x)(time): 71.2%array/dagger/N=256 (block 128)/transpose (permutedims)(time): 60.5%stencil/dagger/N=256 (block 128)/multi-expr(time): 57.1%linalg/dagger/N=1024 (block 512)/matvec (A*x)(time): 48.0%array/dagger/N=256 (block 128)/map (sin.(X))(time): 46.0%array/dagger/N=256 (block 128)/reduce (sum)(time): 45.3%stencil/dagger/N=256 (block 128)/neighbors (Wrap)(time): 37.0%array/dagger/N=1024 (block 512)/add (X + X)(time): 35.9%array/dagger/N=256 (block 256)/broadcast (X .+ 1)(time): 34.2%linalg/dagger/N=256 (block 128)/matmul (A*A)(time): 33.7%linalg/dagger/N=256 (block 256)/solve (A\b via lu)(time): 29.2%stencil/dagger/N=1024 (block 512)/neighbors (Wrap)(time): 25.9%linalg/dagger/N=256 (block 128)/solve (A\b via lu)(time): -25.4%array/dagger/N=1024 (block 512)/norm(time): -40.9%array/dagger/N=256 (block 128)/alloc (rand)(time): -43.2%stencil/dagger/N=256 (block 128)/neighbors (Clamp)(time): -49.7%stencil/dagger/N=1024 (block 512)/assign (const)(time): -52.9%stencil/dagger/N=256 (block 128)/neighbors (Pad)(time): -60.9%
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.0913 ± 0.005 s | 0.0998 ± 0.035 s | 0.914 ± 0.32 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 30 ± 0.8 ms | 29.4 ± 2.5 ms | 1.02 ± 0.091 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 0.0356 ± 0.0035 s | 0.0395 ± 0.0013 s | 0.903 ± 0.093 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 0.0367 ± 0.001 s | 0.036 ± 0.0013 s | 1.02 ± 0.046 |
| array/dagger/N=1024 (block 128)/norm | 0.0344 ± 0.0018 s | 0.0328 ± 0.0026 s | 1.05 ± 0.099 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.0469 ± 0.0022 s | 0.0543 ± 0.0013 s | 0.864 ± 0.045 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.0376 ± 0.009 s | 0.0376 ± 0.0041 s | 1 ± 0.26 |
| array/dagger/N=1024 (block 512)/add (X + X) | 12.6 ± 3.7 ms | 3.43 ± 0.071 ms | 3.68 ± 1.1 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 3.45 ± 0.094 ms | 2.25 ± 0.037 ms | 1.53 ± 0.049 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 3.57 ± 0.48 ms | 2.73 ± 0.57 ms | 1.31 ± 0.33 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 10.2 ± 2 ms | 6.98 ± 0.71 ms | 1.46 ± 0.33 |
| array/dagger/N=1024 (block 512)/norm | 0.048 ± 0.046 s | 2.73 ± 0.15 ms | 17.6 ± 17 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 2.74 ± 0.91 ms | 3.56 ± 18 ms | 0.768 ± 4 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 7.95 ± 0.55 ms | 0.043 ± 0.073 s | 0.185 ± 0.32 |
| array/dagger/N=256 (block 128)/add (X + X) | 1.8 ± 0.019 ms | 1.8 ± 0.028 ms | 1 ± 0.019 |
| array/dagger/N=256 (block 128)/alloc (rand) | 1.33 ± 0.019 ms | 1.35 ± 0.032 ms | 0.986 ± 0.027 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 0.754 ± 0.0014 ms | 0.765 ± 0.038 ms | 0.985 ± 0.049 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 1.23 ± 0.019 ms | 1.22 ± 0.021 ms | 1 ± 0.023 |
| array/dagger/N=256 (block 128)/norm | 0.744 ± 0.016 ms | 0.736 ± 0.0074 ms | 1.01 ± 0.023 |
| array/dagger/N=256 (block 128)/reduce (sum) | 3.25 ± 60 ms | 0.0332 ± 0.086 s | 0.0978 ± 1.8 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 1.01 ± 0.008 ms | 1.02 ± 0.011 ms | 0.991 ± 0.013 |
| array/dagger/N=256 (block 256)/add (X + X) | 1.52 ± 0.078 ms | 1.18 ± 0.0098 ms | 1.28 ± 0.067 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.777 ± 0.039 ms | 0.746 ± 0.047 ms | 1.04 ± 0.085 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.305 ± 0.0091 ms | 0.317 ± 0.0024 ms | 0.964 ± 0.03 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.815 ± 0.024 ms | 1.09 ± 0.0092 ms | 0.745 ± 0.023 |
| array/dagger/N=256 (block 256)/norm | 0.284 ± 0.0017 ms | 0.294 ± 0.0048 ms | 0.965 ± 0.017 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.458 ± 0.019 ms | 0.452 ± 0.033 ms | 1.01 ± 0.086 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 0.732 ± 0.033 ms | 0.704 ± 0.017 ms | 1.04 ± 0.053 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.507 ± 0.0022 s | 0.514 ± 0.0085 s | 0.987 ± 0.017 |
| linalg/dagger/N=1024 (block 128)/lu | 0.239 ± 0.012 s | 0.876 ± 0.063 s | 0.273 ± 0.024 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.553 ± 0.22 s | 0.27 ± 0.15 s | 2.05 ± 1.4 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.116 ± 0.0079 s | 0.108 ± 0.0051 s | 1.07 ± 0.089 |
| linalg/dagger/N=1024 (block 128)/qr | 2.36 ± 2.1 s | 4.99 s | 0.472 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.74 ± 0.31 s | 2.99 s | 0.247 |
| linalg/dagger/N=1024 (block 128)/svd | 50.7 s | 48.4 s | 1.05 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.69 ± 0.059 s | 0.2 ± 0.077 s | 3.45 ± 1.4 |
| linalg/dagger/N=1024 (block 512)/cholesky | 0.0923 ± 0.062 s | 0.0819 ± 0.19 s | 1.13 ± 2.7 |
| linalg/dagger/N=1024 (block 512)/lu | 0.0369 ± 0.00013 s | 0.0372 ± 0.0018 s | 0.993 ± 0.047 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 30.7 ± 2.5 ms | 29.8 ± 1.9 ms | 1.03 ± 0.11 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 8.3 ± 1.1 ms | 7.39 ± 1.3 ms | 1.12 ± 0.25 |
| linalg/dagger/N=1024 (block 512)/qr | 0.109 ± 0.0014 s | 0.105 ± 0.00069 s | 1.04 ± 0.015 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 0.051 ± 0.018 s | 0.0575 ± 0.019 s | 0.887 ± 0.42 |
| linalg/dagger/N=1024 (block 512)/svd | 0.0342 h | 0.0347 h | 0.988 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 0.0323 ± 0.00075 s | 31.4 ± 0.22 ms | 1.03 ± 0.025 |
| linalg/dagger/N=256 (block 128)/cholesky | 5.42 ± 0.79 ms | 6.08 ± 0.72 ms | 0.892 ± 0.17 |
| linalg/dagger/N=256 (block 128)/lu | 7.22 ± 0.18 ms | 7.56 ± 0.53 ms | 0.955 ± 0.071 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 5.71 ± 0.12 ms | 6.04 ± 0.72 ms | 0.947 ± 0.11 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 2.38 ± 0.06 ms | 2.13 ± 0.034 ms | 1.11 ± 0.034 |
| linalg/dagger/N=256 (block 128)/qr | 7.8 ± 0.35 ms | 7.7 ± 0.12 ms | 1.01 ± 0.048 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 16.4 ± 0.39 ms | 15.5 ± 0.58 ms | 1.06 ± 0.047 |
| linalg/dagger/N=256 (block 128)/svd | 0.61 ± 0.019 s | 0.632 ± 0.082 s | 0.966 ± 0.13 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 5.92 ± 0.2 ms | 5.71 ± 0.49 ms | 1.04 ± 0.096 |
| linalg/dagger/N=256 (block 256)/cholesky | 2.69 ± 0.052 ms | 2.69 ± 0.084 ms | 1 ± 0.037 |
| linalg/dagger/N=256 (block 256)/lu | 4.2 ± 0.036 ms | 4.3 ± 0.35 ms | 0.976 ± 0.08 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 2.28 ± 0.044 ms | 2.45 ± 0.16 ms | 0.932 ± 0.064 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 1.43 ± 0.13 ms | 1.41 ± 0.1 ms | 1.01 ± 0.12 |
| linalg/dagger/N=256 (block 256)/qr | 5.42 ± 0.042 ms | 5.2 ± 0.054 ms | 1.04 ± 0.013 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 0.445 ± 0.38 s | 0.28 ± 0.13 s | 1.59 ± 1.5 |
| linalg/dagger/N=256 (block 256)/svd | 0.519 ± 0.07 s | 0.447 ± 0.039 s | 1.16 ± 0.19 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 3.31 ± 0.12 ms | 3.66 ± 0.17 ms | 0.904 ± 0.054 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 12.8 s | 9.5 s | 1.35 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 6.62 s | 5.59 s | 1.18 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 0.53 ± 0.0038 s | 0.52 ± 0.0081 s | 1.02 ± 0.017 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 11.9 s | 11.4 s | 1.04 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 6.35 s | 5.79 s | 1.1 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 0.529 ± 0.028 s | 0.481 ± 0.0048 s | 1.1 ± 0.059 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 0.0372 ± 0.0041 s | 25.8 ± 5.8 ms | 1.44 ± 0.36 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.214 ± 0.0022 s | 0.218 ± 0.0096 s | 0.983 ± 0.044 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 3.8 ± 0.5 ms | 4.57 ± 0.19 ms | 0.831 ± 0.12 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 2.96 ± 4.3 ms | 0.0545 ± 0.031 s | 0.0543 ± 0.085 |
| stencil/dagger/N=256 (block 128)/assign (const) | 1.08 ± 0.08 ms | 1.16 ± 0.088 ms | 0.932 ± 0.099 |
| stencil/dagger/N=256 (block 128)/multi-expr | 2.2 ± 0.076 ms | 2.13 ± 0.026 ms | 1.04 ± 0.038 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 2.49 ± 0.027 ms | ||
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 2.45 ± 0.016 ms | ||
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 2.39 ± 0.024 ms | ||
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 2.56 ± 0.022 ms | ||
| stencil/dagger/N=256 (block 256)/assign (const) | 0.635 ± 0.016 ms | 0.632 ± 0.01 ms | 1.01 ± 0.031 |
| stencil/dagger/N=256 (block 256)/multi-expr | 1.56 ± 0.14 ms | 1.71 ± 0.28 ms | 0.913 ± 0.17 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 1.42 ± 0.019 ms | ||
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 1.55 ± 0.019 ms | ||
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 1.6 ± 0.044 ms | ||
| stencil/dagger/N=256 (block 256)/update (+) | 1.1 ± 0.047 ms | ||
| stencil/dagger/N=1024 (block 128)/update (+) | 0.164 ± 0.0019 s | ||
| stencil/dagger/N=1024 (block 512)/update (+) | 15.4 ± 1.5 ms | ||
| stencil/dagger/N=256 (block 128)/update (+) | 1.2 ± 0.016 ms | ||
| time_to_load | 1.03 ± 0.0095 s | 1.02 ± 0.012 s | 1.01 ± 0.015 |
Allocations / memory
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 0.161 M allocs: 15.5 MB | 0.152 M allocs: 16.5 MB | 0.945 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 0.0499 M allocs: 5 MB | 0.0457 M allocs: 5.17 MB | 0.968 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 0.0796 M allocs: 6.99 MB | 0.0946 M allocs: 6.93 MB | 1.01 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 0.0748 M allocs: 6.91 MB | 0.0734 M allocs: 6.95 MB | 0.993 |
| array/dagger/N=1024 (block 128)/norm | 0.0581 M allocs: 2.49 MB | 0.0576 M allocs: 2.47 MB | 1.01 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.0857 M allocs: 3.48 MB | 0.0957 M allocs: 3.99 MB | 0.872 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.0621 M allocs: 6.87 MB | 0.0639 M allocs: 6.9 MB | 0.995 |
| array/dagger/N=1024 (block 512)/add (X + X) | 13 k allocs: 12.6 MB | 6.05 k allocs: 8.24 MB | 1.52 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 2.6 k allocs: 4.12 MB | 2 k allocs: 8.07 MB | 0.511 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 4.21 k allocs: 2.21 MB | 2.46 k allocs: 2.2 MB | 1 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 2.79 k allocs: 4.15 MB | 4.36 k allocs: 2.2 MB | 1.89 |
| array/dagger/N=1024 (block 512)/norm | 2.71 k allocs: 0.106 MB | 2.76 k allocs: 0.109 MB | 0.978 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 3.27 k allocs: 0.114 MB | 3 k allocs: 0.103 MB | 1.11 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 5.85 k allocs: 2.33 MB | 4.37 k allocs: 2.33 MB | 1 |
| array/dagger/N=256 (block 128)/add (X + X) | 6.04 k allocs: 0.745 MB | 6.03 k allocs: 0.745 MB | 1 |
| array/dagger/N=256 (block 128)/alloc (rand) | 2 k allocs: 0.569 MB | 2 k allocs: 0.569 MB | 1 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 1.84 k allocs: 0.564 MB | 1.84 k allocs: 0.564 MB | 1 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 1.73 k allocs: 0.558 MB | 1.73 k allocs: 0.558 MB | 1 |
| array/dagger/N=256 (block 128)/norm | 1.92 k allocs: 0.0649 MB | 1.92 k allocs: 0.0649 MB | 1 |
| array/dagger/N=256 (block 128)/reduce (sum) | 4.29 k allocs: 0.168 MB | 4.44 k allocs: 0.174 MB | 0.966 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 2.97 k allocs: 0.63 MB | 2.97 k allocs: 0.63 MB | 1 |
| array/dagger/N=256 (block 256)/add (X + X) | 2.43 k allocs: 0.612 MB | 2.41 k allocs: 0.611 MB | 1 |
| array/dagger/N=256 (block 256)/alloc (rand) | 0.588 k allocs: 0.521 MB | 0.59 k allocs: 0.521 MB | 1 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.501 k allocs: 0.518 MB | 0.501 k allocs: 0.518 MB | 1 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.469 k allocs: 0.516 MB | 0.536 k allocs: 0.519 MB | 0.995 |
| array/dagger/N=256 (block 256)/norm | 0.516 k allocs: 18.1 kB | 0.516 k allocs: 18.1 kB | 1 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.675 k allocs: 26 kB | 0.675 k allocs: 26 kB | 1 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 1.24 k allocs: 0.563 MB | 1.24 k allocs: 0.563 MB | 1 |
| linalg/dagger/N=1024 (block 128)/cholesky | 0.701 M allocs: 0.0416 GB | 0.649 M allocs: 0.0395 GB | 1.05 |
| linalg/dagger/N=1024 (block 128)/lu | 0.467 M allocs: 0.0332 GB | 1.31 M allocs: 0.0892 GB | 0.372 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 0.519 M allocs: 31.1 MB | 0.507 M allocs: 30.1 MB | 1.03 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.19 M allocs: 11.5 MB | 0.175 M allocs: 10.5 MB | 1.1 |
| linalg/dagger/N=1024 (block 128)/qr | 0.379 M allocs: 0.0336 GB | 0.796 M allocs: 0.0593 GB | 0.566 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.806 M allocs: 0.0575 GB | 2.13 M allocs: 0.128 GB | 0.449 |
| linalg/dagger/N=1024 (block 128)/svd | 15.8 M allocs: 2.52 GB | 16.5 M allocs: 2.55 GB | 0.991 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 0.868 M allocs: 0.059 GB | 0.389 M allocs: 29.6 MB | 2.04 |
| linalg/dagger/N=1024 (block 512)/cholesky | 0.0362 M allocs: 9.62 MB | 0.0412 M allocs: 9.84 MB | 0.978 |
| linalg/dagger/N=1024 (block 512)/lu | 16.3 k allocs: 14.7 MB | 17.5 k allocs: 14.7 MB | 0.997 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 9.03 k allocs: 8.35 MB | 9.02 k allocs: 8.35 MB | 1 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 11.7 k allocs: 0.513 MB | 11.4 k allocs: 0.498 MB | 1.03 |
| linalg/dagger/N=1024 (block 512)/qr | 12.9 k allocs: 9.67 MB | 12.8 k allocs: 9.67 MB | 1 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 0.0374 M allocs: 15.6 MB | 0.0396 M allocs: 15.7 MB | 0.995 |
| linalg/dagger/N=1024 (block 512)/svd | 0.161 M allocs: 0.312 GB | 1.63 M allocs: 0.391 GB | 0.797 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 10.2 k allocs: 20.4 MB | 10.2 k allocs: 20.4 MB | 1 |
| linalg/dagger/N=256 (block 128)/cholesky | 9.32 k allocs: 1.02 MB | 9.76 k allocs: 1.04 MB | 0.983 |
| linalg/dagger/N=256 (block 128)/lu | 17 k allocs: 1.58 MB | 18.3 k allocs: 1.63 MB | 0.969 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 9.85 k allocs: 0.887 MB | 9.93 k allocs: 0.89 MB | 0.997 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 5.48 k allocs: 0.231 MB | 5.44 k allocs: 0.229 MB | 1.01 |
| linalg/dagger/N=256 (block 128)/qr | 13.4 k allocs: 1.33 MB | 13.7 k allocs: 1.34 MB | 0.991 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 0.035 M allocs: 2.39 MB | 0.0346 M allocs: 2.36 MB | 1.01 |
| linalg/dagger/N=256 (block 128)/svd | 0.169 M allocs: 27.2 MB | 0.177 M allocs: 27.5 MB | 0.988 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 10.6 k allocs: 1.69 MB | 10.6 k allocs: 1.69 MB | 1 |
| linalg/dagger/N=256 (block 256)/cholesky | 3.95 k allocs: 0.689 MB | 3.94 k allocs: 0.688 MB | 1 |
| linalg/dagger/N=256 (block 256)/lu | 7.24 k allocs: 1.34 MB | 7.27 k allocs: 1.34 MB | 1 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 2.66 k allocs: 0.623 MB | 2.65 k allocs: 0.621 MB | 1 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 2.61 k allocs: 0.124 MB | 2.55 k allocs: 0.121 MB | 1.03 |
| linalg/dagger/N=256 (block 256)/qr | 5.12 k allocs: 0.867 MB | 5.16 k allocs: 0.867 MB | 1 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 0.0548 M allocs: 5.52 MB | 0.0563 M allocs: 6.57 MB | 0.839 |
| linalg/dagger/N=256 (block 256)/svd | 21.9 k allocs: 7.06 MB | 21.8 k allocs: 7.05 MB | 1 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 4.15 k allocs: 2.2 MB | 4.08 k allocs: 2.19 MB | 1 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 18.1 M allocs: 0.812 GB | 14.3 M allocs: 0.646 GB | 1.26 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 11.2 M allocs: 0.513 GB | 8.94 M allocs: 0.428 GB | 1.2 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 0.84 M allocs: 0.0355 GB | 0.833 M allocs: 0.0351 GB | 1.01 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 17.1 M allocs: 0.765 GB | 16.6 M allocs: 0.749 GB | 1.02 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 10.6 M allocs: 0.466 GB | 9.15 M allocs: 0.415 GB | 1.12 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 0.817 M allocs: 0.0343 GB | 0.786 M allocs: 0.0331 GB | 1.04 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 0.0628 M allocs: 2.88 MB | 0.0515 M allocs: 2.36 MB | 1.22 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.317 M allocs: 14.5 MB | 0.322 M allocs: 14.7 MB | 0.984 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 4.81 k allocs: 0.219 MB | 7.03 k allocs: 0.33 MB | 0.664 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 6.81 k allocs: 0.299 MB | 6.99 k allocs: 0.309 MB | 0.97 |
| stencil/dagger/N=256 (block 128)/assign (const) | 2.97 k allocs: 0.132 MB | 2.9 k allocs: 0.129 MB | 1.03 |
| stencil/dagger/N=256 (block 128)/multi-expr | 6.83 k allocs: 0.303 MB | 6.81 k allocs: 0.302 MB | 1 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 6.33 k allocs: 0.29 MB | ||
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 6.2 k allocs: 0.285 MB | ||
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 6.3 k allocs: 0.296 MB | ||
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 6.2 k allocs: 0.274 MB | ||
| stencil/dagger/N=256 (block 256)/assign (const) | 1.21 k allocs: 0.0629 MB | 1.23 k allocs: 0.0631 MB | 0.997 |
| stencil/dagger/N=256 (block 256)/multi-expr | 3.07 k allocs: 0.655 MB | 3.11 k allocs: 0.656 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 2.14 k allocs: 0.611 MB | ||
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 2.13 k allocs: 0.612 MB | ||
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 2.14 k allocs: 0.619 MB | ||
| stencil/dagger/N=256 (block 256)/update (+) | 1.81 k allocs: 0.589 MB | ||
| stencil/dagger/N=1024 (block 128)/update (+) | 0.233 M allocs: 10.6 MB | ||
| stencil/dagger/N=1024 (block 512)/update (+) | 15.2 k allocs: 0.682 MB | ||
| stencil/dagger/N=256 (block 128)/update (+) | 3.85 k allocs: 0.17 MB | ||
| time_to_load | 0.199 k allocs: 11.5 kB | 0.199 k allocs: 11.5 kB | 1 |
⚠️ Regressions (time > 35.0% and outside the reported ±spread; allocs/memory > 25.0%)
stencil/dagger/N=1024 (block 512)/multi-expr(time): +1740.3%linalg/dagger/N=1024 (block 512)/svd(allocs): +911.4%linalg/dagger/N=1024 (block 128)/solve (A\b via lu)(time): +304.3%linalg/dagger/N=1024 (block 128)/lu(time): +266.5%linalg/dagger/N=1024 (block 128)/lu(allocs): +181.4%linalg/dagger/N=1024 (block 128)/lu(memory): +168.5%linalg/dagger/N=1024 (block 128)/solve (A\b via lu)(allocs): +163.8%linalg/dagger/N=1024 (block 128)/solve (A\b via lu)(memory): +122.8%linalg/dagger/N=1024 (block 128)/qr(time): +111.8%linalg/dagger/N=1024 (block 128)/qr(allocs): +110.0%array/dagger/N=1024 (block 512)/alloc (rand)(memory): +95.8%linalg/dagger/N=1024 (block 128)/qr(memory): +76.5%array/dagger/N=1024 (block 512)/map (sin.(X))(allocs): +56.0%stencil/dagger/N=1024 (block 512)/assign (const)(memory): +50.5%stencil/dagger/N=1024 (block 512)/assign (const)(allocs): +46.3%linalg/dagger/N=1024 (block 512)/svd(memory): +25.5%
Improvements
array/dagger/N=1024 (block 512)/add (X + X)(time): -72.8%linalg/dagger/N=1024 (block 128)/syrk (A'*A)(time): -71.0%linalg/dagger/N=1024 (block 128)/syrk (A'*A)(allocs): -55.1%array/dagger/N=1024 (block 512)/add (X + X)(allocs): -53.5%linalg/dagger/N=1024 (block 128)/syrk (A'*A)(memory): -51.0%array/dagger/N=1024 (block 512)/map (sin.(X))(memory): -47.1%array/dagger/N=1024 (block 512)/broadcast (X .+ 1)(allocs): -41.5%array/dagger/N=1024 (block 512)/add (X + X)(memory): -34.3%array/dagger/N=1024 (block 512)/transpose (permutedims)(allocs): -25.2%
Within noise (5 metric(s) past threshold but inside the ±spread; not counted)
array/dagger/N=256 (block 128)/reduce (sum)(time): 922.4%array/dagger/N=1024 (block 512)/transpose (permutedims)(time): 440.5%linalg/dagger/N=256 (block 256)/solve (A\b via lu)(time): -37.0%linalg/dagger/N=1024 (block 128)/matmul (A*A)(time): -51.3%array/dagger/N=1024 (block 512)/norm(time): -94.3%
MPI benchmarks (4 ranks)
Dagger benchmarks: dirty vs master
Median time
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 0.133 ± 0.002 s | 0.134 ± 0.0002 s | 0.999 ± 0.015 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 30.2 ± 1.3 ms | 29.7 ± 0.91 ms | 1.02 ± 0.055 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 15.5 ± 0.21 ms | 15.3 ± 0.045 ms | 1.01 ± 0.014 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 17.2 ± 0.4 ms | 17.1 ± 0.46 ms | 1.01 ± 0.036 |
| array/dagger/N=1024 (block 128)/norm | 17.4 ± 0.23 ms | 17 ± 0.084 ms | 1.02 ± 0.014 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 30.1 ± 1 ms | 30 ± 16 ms | 1 ± 0.52 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.0666 ± 0.00019 s | 0.0665 ± 0.0012 s | 1 ± 0.018 |
| array/dagger/N=1024 (block 512)/add (X + X) | 13.5 ± 0.54 ms | 13.5 ± 0.5 ms | 1 ± 0.055 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 3.65 ± 1.5 ms | 3.44 ± 1.5 ms | 1.06 ± 0.63 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 2.39 ± 0.049 ms | 2.41 ± 0.034 ms | 0.991 ± 0.025 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 4.81 ± 0.42 ms | 4.87 ± 0.42 ms | 0.988 ± 0.12 |
| array/dagger/N=1024 (block 512)/norm | 4.87 ± 0.091 ms | 4.88 ± 0.077 ms | 0.998 ± 0.024 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 2.31 ± 0.01 ms | 2.31 ± 0.036 ms | 1 ± 0.016 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 11.8 ± 0.65 ms | 12.1 ± 1 ms | 0.977 ± 0.1 |
| array/dagger/N=256 (block 128)/add (X + X) | 9.48 ± 0.14 ms | 9.55 ± 0.92 ms | 0.993 ± 0.097 |
| array/dagger/N=256 (block 128)/alloc (rand) | 3.09 ± 0.12 ms | 3.09 ± 0.028 ms | 0.999 ± 0.04 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 1.14 ± 0.037 ms | 1.16 ± 0.011 ms | 0.987 ± 0.033 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 1.25 ± 0.0041 ms | 1.26 ± 0.012 ms | 0.992 ± 0.01 |
| array/dagger/N=256 (block 128)/norm | 1.49 ± 0.024 ms | 1.44 ± 0.02 ms | 1.03 ± 0.022 |
| array/dagger/N=256 (block 128)/reduce (sum) | 2.3 ± 0.059 ms | 2.25 ± 0.039 ms | 1.02 ± 0.032 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 4.89 ± 0.034 ms | 4.8 ± 0.019 ms | 1.02 ± 0.008 |
| array/dagger/N=256 (block 256)/add (X + X) | 3.24 ± 0.014 ms | 3.21 ± 0.015 ms | 1.01 ± 0.0064 |
| array/dagger/N=256 (block 256)/alloc (rand) | 4.55 ± 7.6 ms | 1.51 ± 0.032 ms | 3.01 ± 5 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.483 ± 0.016 ms | 0.472 ± 0.0091 ms | 1.02 ± 0.04 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 1.15 ± 0.055 ms | 1.06 ± 0.019 ms | 1.09 ± 0.056 |
| array/dagger/N=256 (block 256)/norm | 0.988 ± 0.0029 ms | 0.956 ± 0.0041 ms | 1.03 ± 0.0054 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.71 ± 0.019 ms | 0.694 ± 0.011 ms | 1.02 ± 0.032 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 1.81 ± 0.011 ms | 1.81 ± 0.008 ms | 1 ± 0.0075 |
| linalg/dagger/N=1024 (block 128)/cholesky | 3.65 s | 3.57 s | 1.02 |
| linalg/dagger/N=1024 (block 128)/lu | 23.2 s | 23.6 s | 0.983 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 6.79 s | 7.76 s | 0.875 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.134 ± 0.0032 s | 0.25 ± 0.11 s | 0.536 ± 0.25 |
| linalg/dagger/N=1024 (block 128)/qr | 3.48 s | 3.96 s | 0.88 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 24.3 s | 25.1 s | 0.971 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 3.46 s | 3.27 s | 1.06 |
| linalg/dagger/N=1024 (block 512)/cholesky | 0.163 ± 0.057 s | 0.309 ± 0.18 s | 0.527 ± 0.36 |
| linalg/dagger/N=1024 (block 512)/lu | 7.45 s | 7.61 s | 0.979 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 0.238 ± 0.047 s | 0.197 ± 0.031 s | 1.21 ± 0.3 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 15.7 ± 0.03 ms | 15.9 ± 0.15 ms | 0.991 ± 0.0096 |
| linalg/dagger/N=1024 (block 512)/qr | 0.419 ± 0.071 s | 0.423 ± 0.041 s | 0.99 ± 0.19 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 7.34 s | 7.57 s | 0.97 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 0.174 ± 0.025 s | 0.287 ± 0.012 s | 0.606 ± 0.09 |
| linalg/dagger/N=256 (block 128)/cholesky | 0.217 ± 0.079 s | 0.0996 ± 0.012 s | 2.18 ± 0.83 |
| linalg/dagger/N=256 (block 128)/lu | 1.34 ± 0.0014 s | 1.34 ± 0.018 s | 0.996 ± 0.013 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 0.17 ± 0.007 s | 0.16 ± 0.0044 s | 1.06 ± 0.053 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 14.1 ± 0.043 ms | 14 ± 0.016 ms | 1.01 ± 0.0033 |
| linalg/dagger/N=256 (block 128)/qr | 0.264 ± 0.032 s | 0.215 ± 0.0077 s | 1.23 ± 0.15 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 1.36 ± 0.0063 s | 1.37 ± 0.018 s | 0.992 ± 0.014 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 0.149 ± 0.0031 s | 0.145 ± 0.0074 s | 1.03 ± 0.057 |
| linalg/dagger/N=256 (block 256)/cholesky | 0.0452 ± 0.032 s | 13.8 ± 0.0055 ms | 3.28 ± 2.4 |
| linalg/dagger/N=256 (block 256)/lu | 0.495 ± 0.00078 s | 0.506 ± 0.0055 s | 0.98 ± 0.011 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 5.5 ± 0.65 ms | 4.01 ± 0.027 ms | 1.37 ± 0.16 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 3.77 ± 0.076 ms | 3.77 ± 0.11 ms | 1 ± 0.034 |
| linalg/dagger/N=256 (block 256)/qr | 10.7 ± 0.31 ms | 8.26 ± 0.027 ms | 1.3 ± 0.037 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 0.563 ± 0.053 s | 0.505 ± 0.00032 s | 1.11 ± 0.1 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 8.13 ± 0.031 ms | 9.31 ± 1.3 ms | 0.873 ± 0.12 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 9.98 s | 16.6 s | 0.601 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 5.01 s | 4.99 s | 1.01 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 0.462 ± 0.00029 s | 0.471 ± 0.0012 s | 0.98 ± 0.0026 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 11 s | 12.4 s | 0.891 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 4.91 s | 4.9 s | 1 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 0.466 ± 0.0016 s | 0.472 ± 0.00066 s | 0.986 ± 0.0037 |
| stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) | 1.03 ± 0.012 s | 1.08 ± 0.0048 s | 0.95 ± 0.012 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 0.0628 ± 0.00067 s | 0.0619 ± 5.4e-07 s | 1.02 ± 0.011 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.166 ± 0.00079 s | 0.167 ± 0.0027 s | 0.999 ± 0.017 |
| stencil/dagger/N=1024 (block 128)/neighbors (Clamp) | 0.921 ± 0.00046 s | 0.909 ± 0.021 s | 1.01 ± 0.024 |
| stencil/dagger/N=1024 (block 128)/neighbors (Pad) | 0.865 ± 0.012 s | 0.851 ± 0.0023 s | 1.02 ± 0.015 |
| stencil/dagger/N=1024 (block 128)/neighbors (Reflect) | 0.914 ± 0.0055 s | 0.924 ± 0.0039 s | 0.99 ± 0.0073 |
| stencil/dagger/N=1024 (block 128)/neighbors (Wrap) | 1.03 ± 0.00022 s | 1.02 ± 0.014 s | 1.01 ± 0.013 |
| stencil/dagger/N=1024 (block 128)/update (+) | 0.103 ± 0.0018 s | 0.102 ± 2.8e-06 s | 1.01 ± 0.017 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 0.0886 ± 1.3e-05 s | 0.0898 ± 6.3e-05 s | 0.986 ± 0.00071 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 5.04 ± 0.19 ms | 4.98 ± 0.0073 ms | 1.01 ± 0.038 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 12.3 ± 0.13 ms | 12.8 ± 0.075 ms | 0.967 ± 0.012 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 0.0627 ± 1.9e-05 s | 0.0633 ± 7.9e-05 s | 0.992 ± 0.0013 |
| stencil/dagger/N=1024 (block 512)/neighbors (Pad) | 0.0469 ± 7.8e-05 s | 0.0469 ± 9.4e-05 s | 1 ± 0.0026 |
| stencil/dagger/N=1024 (block 512)/neighbors (Reflect) | 0.0631 ± 0.00048 s | 0.0631 ± 0.00013 s | 1 ± 0.0079 |
| stencil/dagger/N=1024 (block 512)/neighbors (Wrap) | 0.0875 ± 1.3e-05 s | 0.0887 ± 0.0013 s | 0.986 ± 0.015 |
| stencil/dagger/N=1024 (block 512)/update (+) | 7.95 ± 0.003 ms | 7.88 ± 0.038 ms | 1.01 ± 0.0049 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 0.0767 ± 0.00016 s | 0.078 ± 0.00068 s | 0.983 ± 0.0088 |
| stencil/dagger/N=256 (block 128)/assign (const) | 4.6 ± 0.0042 ms | 4.63 ± 0.027 ms | 0.994 ± 0.0059 |
| stencil/dagger/N=256 (block 128)/multi-expr | 11.6 ± 0.037 ms | 11.5 ± 0.04 ms | 1.01 ± 0.0048 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 0.0506 ± 5.1e-07 s | 0.0515 ± 0.00091 s | 0.983 ± 0.017 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 0.0342 ± 6.3e-05 s | 0.0346 ± 0.00012 s | 0.988 ± 0.0038 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 0.0508 ± 0.00016 s | 0.0508 ± 5.3e-05 s | 0.999 ± 0.0033 |
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 0.075 ± 0.00057 s | 0.076 ± 0.00052 s | 0.986 ± 0.01 |
| stencil/dagger/N=256 (block 128)/update (+) | 7.06 ± 0.0087 ms | 7.11 ± 0.015 ms | 0.994 ± 0.0024 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 4.76 ± 0.025 ms | 4.8 ± 0.02 ms | 0.991 ± 0.0066 |
| stencil/dagger/N=256 (block 256)/assign (const) | 1.71 ± 0.013 ms | 1.76 ± 0.033 ms | 0.975 ± 0.02 |
| stencil/dagger/N=256 (block 256)/multi-expr | 3.58 ± 0.02 ms | 3.65 ± 0.08 ms | 0.979 ± 0.022 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 3.66 ± 0.015 ms | 3.71 ± 0.014 ms | 0.988 ± 0.0056 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 3.88 ± 0.19 ms | 3.57 ± 0.0058 ms | 1.08 ± 0.054 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 3.74 ± 0.011 ms | 3.7 ± 0.063 ms | 1.01 ± 0.017 |
| stencil/dagger/N=256 (block 256)/neighbors (Wrap) | 3.61 ± 0.023 ms | 3.64 ± 0.01 ms | 0.991 ± 0.0069 |
| stencil/dagger/N=256 (block 256)/update (+) | 2.22 ± 0.018 ms | 2.22 ± 0.009 ms | 1 ± 0.0092 |
| time_to_load | 0.777 ± 0.0096 s | 0.778 ± 0.0049 s | 0.999 ± 0.014 |
Allocations / memory
| master | dirty | master / dirty | |
|---|---|---|---|
| array/dagger/N=1024 (block 128)/add (X + X) | 0.654 M allocs: 0.0349 GB | 0.655 M allocs: 0.035 GB | 0.999 |
| array/dagger/N=1024 (block 128)/alloc (rand) | 0.101 M allocs: 6.88 MB | 0.101 M allocs: 6.88 MB | 1 |
| array/dagger/N=1024 (block 128)/broadcast (X .+ 1) | 0.0412 M allocs: 3.54 MB | 0.0411 M allocs: 3.54 MB | 1 |
| array/dagger/N=1024 (block 128)/map (sin.(X)) | 0.0388 M allocs: 3.44 MB | 0.0384 M allocs: 3.43 MB | 1 |
| array/dagger/N=1024 (block 128)/norm | 0.0513 M allocs: 2.01 MB | 0.0512 M allocs: 2.01 MB | 1 |
| array/dagger/N=1024 (block 128)/reduce (sum) | 0.0811 M allocs: 3.03 MB | 0.0812 M allocs: 3.03 MB | 0.999 |
| array/dagger/N=1024 (block 128)/transpose (permutedims) | 0.303 M allocs: 17.7 MB | 0.303 M allocs: 17.7 MB | 1 |
| array/dagger/N=1024 (block 512)/add (X + X) | 0.0448 M allocs: 4.31 MB | 0.0449 M allocs: 4.32 MB | 0.999 |
| array/dagger/N=1024 (block 512)/alloc (rand) | 8.23 k allocs: 2.4 MB | 8.23 k allocs: 2.4 MB | 1 |
| array/dagger/N=1024 (block 512)/broadcast (X .+ 1) | 2.55 k allocs: 2.09 MB | 2.61 k allocs: 2.1 MB | 0.999 |
| array/dagger/N=1024 (block 512)/map (sin.(X)) | 2.37 k allocs: 2.09 MB | 2.4 k allocs: 2.09 MB | 1 |
| array/dagger/N=1024 (block 512)/norm | 3.34 k allocs: 0.131 MB | 3.35 k allocs: 0.131 MB | 1 |
| array/dagger/N=1024 (block 512)/reduce (sum) | 4.79 k allocs: 0.176 MB | 4.77 k allocs: 0.175 MB | 1.01 |
| array/dagger/N=1024 (block 512)/transpose (permutedims) | 21 k allocs: 3.09 MB | 21.1 k allocs: 3.09 MB | 1 |
| array/dagger/N=256 (block 128)/add (X + X) | 0.0448 M allocs: 2.44 MB | 0.0449 M allocs: 2.44 MB | 0.999 |
| array/dagger/N=256 (block 128)/alloc (rand) | 8.23 k allocs: 0.527 MB | 8.23 k allocs: 0.527 MB | 1 |
| array/dagger/N=256 (block 128)/broadcast (X .+ 1) | 2.55 k allocs: 0.219 MB | 2.57 k allocs: 0.22 MB | 0.996 |
| array/dagger/N=256 (block 128)/map (sin.(X)) | 2.42 k allocs: 0.213 MB | 2.44 k allocs: 0.214 MB | 0.996 |
| array/dagger/N=256 (block 128)/norm | 3.36 k allocs: 0.131 MB | 3.33 k allocs: 0.13 MB | 1.01 |
| array/dagger/N=256 (block 128)/reduce (sum) | 4.79 k allocs: 0.176 MB | 4.79 k allocs: 0.176 MB | 1 |
| array/dagger/N=256 (block 128)/transpose (permutedims) | 21 k allocs: 1.22 MB | 21 k allocs: 1.22 MB | 0.999 |
| array/dagger/N=256 (block 256)/add (X + X) | 14.1 k allocs: 1.24 MB | 14.1 k allocs: 1.24 MB | 0.999 |
| array/dagger/N=256 (block 256)/alloc (rand) | 3.53 k allocs: 0.677 MB | 3.53 k allocs: 0.677 MB | 1 |
| array/dagger/N=256 (block 256)/broadcast (X .+ 1) | 0.677 k allocs: 0.525 MB | 0.704 k allocs: 0.526 MB | 0.998 |
| array/dagger/N=256 (block 256)/map (sin.(X)) | 0.634 k allocs: 0.523 MB | 0.636 k allocs: 0.523 MB | 1 |
| array/dagger/N=256 (block 256)/norm | 0.969 k allocs: 0.0392 MB | 0.992 k allocs: 0.0401 MB | 0.978 |
| array/dagger/N=256 (block 256)/reduce (sum) | 0.976 k allocs: 0.0387 MB | 0.978 k allocs: 0.0387 MB | 0.999 |
| array/dagger/N=256 (block 256)/transpose (permutedims) | 6.67 k allocs: 0.852 MB | 6.67 k allocs: 0.852 MB | 1 |
| linalg/dagger/N=1024 (block 128)/cholesky | 1.52 M allocs: 0.0793 GB | 1.53 M allocs: 0.0793 GB | 0.999 |
| linalg/dagger/N=1024 (block 128)/lu | 0.0492 G allocs: 2.35 GB | 0.0492 G allocs: 2.35 GB | 1 |
| linalg/dagger/N=1024 (block 128)/matmul (A*A) | 3.35 M allocs: 0.165 GB | 3.35 M allocs: 0.165 GB | 1 |
| linalg/dagger/N=1024 (block 128)/matvec (A*x) | 0.607 M allocs: 31.1 MB | 0.607 M allocs: 31.1 MB | 1 |
| linalg/dagger/N=1024 (block 128)/qr | 2.32 M allocs: 0.118 GB | 2.32 M allocs: 0.118 GB | 1 |
| linalg/dagger/N=1024 (block 128)/solve (A\b via lu) | 0.0502 G allocs: 2.39 GB | 0.0502 G allocs: 2.39 GB | 1 |
| linalg/dagger/N=1024 (block 128)/syrk (A'*A) | 2.53 M allocs: 0.127 GB | 2.53 M allocs: 0.127 GB | 1 |
| linalg/dagger/N=1024 (block 512)/cholesky | 0.0862 M allocs: 6.43 MB | 0.0862 M allocs: 6.44 MB | 1 |
| linalg/dagger/N=1024 (block 512)/lu | 18 M allocs: 0.858 GB | 18 M allocs: 0.858 GB | 1 |
| linalg/dagger/N=1024 (block 512)/matmul (A*A) | 0.0998 M allocs: 7.06 MB | 0.0999 M allocs: 7.06 MB | 0.999 |
| linalg/dagger/N=1024 (block 512)/matvec (A*x) | 0.0609 M allocs: 3.13 MB | 0.0609 M allocs: 3.13 MB | 1 |
| linalg/dagger/N=1024 (block 512)/qr | 0.122 M allocs: 8.48 MB | 0.122 M allocs: 8.49 MB | 1 |
| linalg/dagger/N=1024 (block 512)/solve (A\b via lu) | 18.1 M allocs: 0.868 GB | 18.1 M allocs: 0.868 GB | 1 |
| linalg/dagger/N=1024 (block 512)/syrk (A'*A) | 0.0981 M allocs: 13 MB | 0.0983 M allocs: 13 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/cholesky | 0.0862 M allocs: 4.56 MB | 0.0862 M allocs: 4.56 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/lu | 4.59 M allocs: 0.218 GB | 4.59 M allocs: 0.218 GB | 1 |
| linalg/dagger/N=256 (block 128)/matmul (A*A) | 0.0998 M allocs: 5.18 MB | 0.0999 M allocs: 5.19 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/matvec (A*x) | 0.0609 M allocs: 3.13 MB | 0.0609 M allocs: 3.13 MB | 1 |
| linalg/dagger/N=256 (block 128)/qr | 0.122 M allocs: 6.41 MB | 0.122 M allocs: 6.42 MB | 0.999 |
| linalg/dagger/N=256 (block 128)/solve (A\b via lu) | 4.72 M allocs: 0.225 GB | 4.72 M allocs: 0.225 GB | 1 |
| linalg/dagger/N=256 (block 128)/syrk (A'*A) | 0.0984 M allocs: 5.52 MB | 0.0983 M allocs: 5.52 MB | 1 |
| linalg/dagger/N=256 (block 256)/cholesky | 23.6 k allocs: 1.75 MB | 23.6 k allocs: 1.75 MB | 1 |
| linalg/dagger/N=256 (block 256)/lu | 2.03 M allocs: 0.0985 GB | 2.03 M allocs: 0.0985 GB | 1 |
| linalg/dagger/N=256 (block 256)/matmul (A*A) | 14.5 k allocs: 1.26 MB | 14.6 k allocs: 1.26 MB | 0.999 |
| linalg/dagger/N=256 (block 256)/matvec (A*x) | 17.3 k allocs: 0.911 MB | 17.3 k allocs: 0.911 MB | 1 |
| linalg/dagger/N=256 (block 256)/qr | 27.5 k allocs: 2.07 MB | 27.6 k allocs: 2.07 MB | 0.999 |
| linalg/dagger/N=256 (block 256)/solve (A\b via lu) | 2.08 M allocs: 0.101 GB | 2.08 M allocs: 0.101 GB | 1 |
| linalg/dagger/N=256 (block 256)/syrk (A'*A) | 21.2 k allocs: 3.11 MB | 21.3 k allocs: 3.11 MB | 1 |
| sparse/dagger/N=1024 (block 64)/cg solve (laplacian) | 28.2 M allocs: 1.41 GB | 28.1 M allocs: 1.41 GB | 1 |
| sparse/dagger/N=1024 (block 64)/spgemm (S*S) | 18.1 M allocs: 0.89 GB | 18.1 M allocs: 0.891 GB | 0.999 |
| sparse/dagger/N=1024 (block 64)/spmv (S*x) | 2.12 M allocs: 0.106 GB | 2.12 M allocs: 0.106 GB | 1 |
| sparse/dagger/N=256 (block 16)/cg solve (laplacian) | 28.2 M allocs: 1.41 GB | 28.1 M allocs: 1.41 GB | 1 |
| sparse/dagger/N=256 (block 16)/spgemm (S*S) | 18 M allocs: 0.869 GB | 18.1 M allocs: 0.869 GB | 1 |
| sparse/dagger/N=256 (block 16)/spmv (S*x) | 2.12 M allocs: 0.106 GB | 2.12 M allocs: 0.106 GB | 1 |
| stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) | 3.97 M allocs: 0.199 GB | 3.98 M allocs: 0.199 GB | 0.998 |
| stencil/dagger/N=1024 (block 128)/assign (const) | 0.293 M allocs: 15.3 MB | 0.293 M allocs: 15.3 MB | 1 |
| stencil/dagger/N=1024 (block 128)/multi-expr | 0.812 M allocs: 0.0415 GB | 0.812 M allocs: 0.0415 GB | 1 |
| stencil/dagger/N=1024 (block 128)/neighbors (Clamp) | 3.49 M allocs: 0.173 GB | 3.49 M allocs: 0.173 GB | 1 |
| stencil/dagger/N=1024 (block 128)/neighbors (Pad) | 3.26 M allocs: 0.162 GB | 3.26 M allocs: 0.162 GB | 1 |
| stencil/dagger/N=1024 (block 128)/neighbors (Reflect) | 3.49 M allocs: 0.173 GB | 3.49 M allocs: 0.173 GB | 0.998 |
| stencil/dagger/N=1024 (block 128)/neighbors (Wrap) | 3.87 M allocs: 0.192 GB | 3.88 M allocs: 0.192 GB | 0.998 |
| stencil/dagger/N=1024 (block 128)/update (+) | 0.518 M allocs: 27.2 MB | 0.518 M allocs: 27.2 MB | 1 |
| stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) | 0.316 M allocs: 18 MB | 0.317 M allocs: 18 MB | 0.998 |
| stencil/dagger/N=1024 (block 512)/assign (const) | 20.4 k allocs: 1.06 MB | 20.5 k allocs: 1.07 MB | 0.999 |
| stencil/dagger/N=1024 (block 512)/multi-expr | 0.0549 M allocs: 2.87 MB | 0.0549 M allocs: 2.87 MB | 0.999 |
| stencil/dagger/N=1024 (block 512)/neighbors (Clamp) | 0.211 M allocs: 10.7 MB | 0.211 M allocs: 10.7 MB | 1 |
| stencil/dagger/N=1024 (block 512)/neighbors (Pad) | 0.145 M allocs: 7.41 MB | 0.145 M allocs: 7.41 MB | 1 |
| stencil/dagger/N=1024 (block 512)/neighbors (Reflect) | 0.211 M allocs: 10.7 MB | 0.211 M allocs: 10.7 MB | 1 |
| stencil/dagger/N=1024 (block 512)/neighbors (Wrap) | 0.308 M allocs: 15.6 MB | 0.309 M allocs: 15.6 MB | 0.998 |
| stencil/dagger/N=1024 (block 512)/update (+) | 0.0344 M allocs: 1.8 MB | 0.0345 M allocs: 1.8 MB | 1 |
| stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) | 0.316 M allocs: 16.1 MB | 0.317 M allocs: 16.1 MB | 0.998 |
| stencil/dagger/N=256 (block 128)/assign (const) | 20.4 k allocs: 1.06 MB | 20.4 k allocs: 1.07 MB | 0.999 |
| stencil/dagger/N=256 (block 128)/multi-expr | 0.0549 M allocs: 2.87 MB | 0.0549 M allocs: 2.87 MB | 0.999 |
| stencil/dagger/N=256 (block 128)/neighbors (Clamp) | 0.211 M allocs: 10.7 MB | 0.211 M allocs: 10.7 MB | 0.999 |
| stencil/dagger/N=256 (block 128)/neighbors (Pad) | 0.145 M allocs: 7.4 MB | 0.145 M allocs: 7.4 MB | 1 |
| stencil/dagger/N=256 (block 128)/neighbors (Reflect) | 0.211 M allocs: 10.7 MB | 0.211 M allocs: 10.7 MB | 1 |
| stencil/dagger/N=256 (block 128)/neighbors (Wrap) | 0.308 M allocs: 15.5 MB | 0.309 M allocs: 15.6 MB | 0.998 |
| stencil/dagger/N=256 (block 128)/update (+) | 0.0344 M allocs: 1.8 MB | 0.0344 M allocs: 1.8 MB | 1 |
| stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) | 17.2 k allocs: 1.4 MB | 17.2 k allocs: 1.4 MB | 0.999 |
| stencil/dagger/N=256 (block 256)/assign (const) | 6.51 k allocs: 0.345 MB | 6.51 k allocs: 0.345 MB | 1 |
| stencil/dagger/N=256 (block 256)/multi-expr | 16.6 k allocs: 0.878 MB | 16.6 k allocs: 0.878 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Clamp) | 13.8 k allocs: 0.733 MB | 13.8 k allocs: 0.733 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Pad) | 13.7 k allocs: 0.732 MB | 13.7 k allocs: 0.732 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Reflect) | 13.8 k allocs: 0.741 MB | 13.8 k allocs: 0.741 MB | 1 |
| stencil/dagger/N=256 (block 256)/neighbors (Wrap) | 13.7 k allocs: 0.726 MB | 13.7 k allocs: 0.726 MB | 1 |
| stencil/dagger/N=256 (block 256)/update (+) | 10.1 k allocs: 0.533 MB | 10.1 k allocs: 0.533 MB | 1 |
| time_to_load | 0.199 k allocs: 11.5 kB | 0.199 k allocs: 11.5 kB | 1 |
Plots
⚠️ Regressions (time > 35.0% and outside the reported ±spread; allocs/memory > 25.0%)
sparse/dagger/N=1024 (block 64)/cg solve (laplacian)(time): +66.5%linalg/dagger/N=1024 (block 512)/syrk (A'*A)(time): +64.9%
Improvements
linalg/dagger/N=256 (block 128)/cholesky(time): -54.2%
Within noise (4 metric(s) past threshold but inside the ±spread; not counted)
linalg/dagger/N=1024 (block 512)/cholesky(time): 89.9%linalg/dagger/N=1024 (block 128)/matvec (A*x)(time): 86.5%array/dagger/N=256 (block 256)/alloc (rand)(time): -66.8%linalg/dagger/N=256 (block 256)/cholesky(time): -69.5%
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.
No description provided.