Skip to content

build(deps): bump actions/download-artifact from 7 to 8 - #753

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/github_actions/actions/download-artifact-8
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/github_actions/actions/download-artifact-8

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026

Copy link
Copy Markdown
Contributor

Bumps actions/download-artifact from 7 to 8.

Release notes

Sourced from actions/download-artifact's releases.

v8.0.0

v8 - What's new

[!IMPORTANT] actions/download-artifact@v8 has been migrated to an ESM module. This should be transparent to the caller but forks might need to make significant changes.

[!IMPORTANT] Hash mismatches will now error by default. Users can override this behavior with a setting change (see below).

Direct downloads

To support direct uploads in actions/upload-artifact, the action will no longer attempt to unzip all downloaded files. Instead, the action checks the Content-Type header ahead of unzipping and skips non-zipped files. Callers wishing to download a zipped file as-is can also set the new skip-decompress parameter to true.

Enforced checks (breaking)

A previous release introduced digest checks on the download. If a download hash didn't match the expected hash from the server, the action would log a warning. Callers can now configure the behavior on mismatch with the digest-mismatch parameter. To be secure by default, we are now defaulting the behavior to error which will fail the workflow run.

ESM

To support new versions of the @actions/* packages, we've upgraded the package to ESM.

What's Changed

Full Changelog: actions/download-artifact@v7...v8.0.0

Commits
  • 3e5f45b Add regression tests for CJK characters (#471)
  • e6d03f6 Add a regression test for artifact name + content-type mismatches (#472)
  • 70fc10c Merge pull request #461 from actions/danwkennedy/digest-mismatch-behavior
  • f258da9 Add change docs
  • ccc058e Fix linting issues
  • bd7976b Add a setting to specify what to do on hash mismatch and default it to error
  • ac21fcf Merge pull request #460 from actions/danwkennedy/download-no-unzip
  • 15999bf Add note about package bumps
  • 974686e Bump the version to v8 and add release notes
  • fbe48b1 Update test names to make it clearer what they do
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Sep 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dagger benchmarks: dirty vs master

Multi-threaded benchmarks (4 threads)

Dagger benchmarks: dirty vs master

Median time

master dirty master / dirty
array/dagger/N=1024 (block 128)/add (X + X) 27.6 ± 1.6 ms 26.2 ± 1.6 ms 1.05 ± 0.088
array/dagger/N=1024 (block 128)/alloc (rand) 12.4 ± 0.65 ms 12.5 ± 0.83 ms 0.99 ± 0.083
array/dagger/N=1024 (block 128)/broadcast (X .+ 1) 11 ± 0.67 ms 11.4 ± 1.2 ms 0.965 ± 0.12
array/dagger/N=1024 (block 128)/map (sin.(X)) 10.6 ± 0.61 ms 11.2 ± 0.95 ms 0.948 ± 0.097
array/dagger/N=1024 (block 128)/norm 11.8 ± 0.37 ms 11.5 ± 0.11 ms 1.02 ± 0.034
array/dagger/N=1024 (block 128)/reduce (sum) 24.9 ± 2.4 ms 25.1 ± 3.1 ms 0.995 ± 0.16
array/dagger/N=1024 (block 128)/transpose (permutedims) 13 ± 0.79 ms 12.8 ± 0.63 ms 1.02 ± 0.079
array/dagger/N=1024 (block 512)/add (X + X) 4.06 ± 0.35 ms 4.07 ± 1.4 ms 0.997 ± 0.36
array/dagger/N=1024 (block 512)/alloc (rand) 2.34 ± 3.3 ms 1.62 ± 0.14 ms 1.45 ± 2.1
array/dagger/N=1024 (block 512)/broadcast (X .+ 1) 2.6 ± 1 ms 1.53 ± 0.76 ms 1.69 ± 1.1
array/dagger/N=1024 (block 512)/map (sin.(X)) 5.84 ± 1.3 ms 6.78 ± 2.1 ms 0.862 ± 0.32
array/dagger/N=1024 (block 512)/norm 2.62 ± 1.8 ms 1.13 ± 0.62 ms 2.32 ± 2
array/dagger/N=1024 (block 512)/reduce (sum) 1.96 ± 0.53 ms 2.14 ± 0.7 ms 0.915 ± 0.39
array/dagger/N=1024 (block 512)/transpose (permutedims) 5.13 ± 0.19 ms 5.71 ± 1.3 ms 0.898 ± 0.2
array/dagger/N=256 (block 128)/add (X + X) 3.81 ± 1 ms 2.72 ± 0.94 ms 1.4 ± 0.6
array/dagger/N=256 (block 128)/alloc (rand) 1.27 ± 0.59 ms 1.35 ± 0.42 ms 0.94 ± 0.52
array/dagger/N=256 (block 128)/broadcast (X .+ 1) 1.14 ± 0.12 ms 0.936 ± 0.12 ms 1.22 ± 0.2
array/dagger/N=256 (block 128)/map (sin.(X)) 1.05 ± 1.5 ms 0.958 ± 2.2 ms 1.09 ± 2.9
array/dagger/N=256 (block 128)/norm 1.47 ± 2.3 ms 0.934 ± 0.26 ms 1.58 ± 2.5
array/dagger/N=256 (block 128)/reduce (sum) 1.57 ± 0.14 ms 1.82 ± 2.6 ms 0.864 ± 1.2
array/dagger/N=256 (block 128)/transpose (permutedims) 1.65 ± 0.52 ms 1.25 ± 0.8 ms 1.32 ± 0.95
array/dagger/N=256 (block 256)/add (X + X) 0.811 ± 0.092 ms 0.769 ± 0.036 ms 1.05 ± 0.13
array/dagger/N=256 (block 256)/alloc (rand) 0.641 ± 0.01 ms 0.677 ± 0.053 ms 0.948 ± 0.076
array/dagger/N=256 (block 256)/broadcast (X .+ 1) 0.409 ± 0.026 ms 0.392 ± 0.098 ms 1.04 ± 0.27
array/dagger/N=256 (block 256)/map (sin.(X)) 1.02 ± 0.041 ms 1 ± 0.021 ms 1.01 ± 0.046
array/dagger/N=256 (block 256)/norm 0.38 ± 0.013 ms 0.388 ± 0.029 ms 0.977 ± 0.081
array/dagger/N=256 (block 256)/reduce (sum) 0.515 ± 0.034 ms 0.52 ± 0.03 ms 0.991 ± 0.087
array/dagger/N=256 (block 256)/transpose (permutedims) 0.723 ± 0.016 ms 0.716 ± 0.01 ms 1.01 ± 0.026
linalg/dagger/N=1024 (block 128)/cholesky 0.0585 ± 0.0043 s 0.0632 ± 0.016 s 0.926 ± 0.24
linalg/dagger/N=1024 (block 128)/lu 0.123 ± 0.031 s 0.12 ± 0.0034 s 1.02 ± 0.26
linalg/dagger/N=1024 (block 128)/matmul (A*A) 0.178 ± 0.0082 s 0.164 ± 0.051 s 1.09 ± 0.34
linalg/dagger/N=1024 (block 128)/matvec (A*x) 9.27 ± 2.8 ms 11.7 ± 2.2 ms 0.79 ± 0.28
linalg/dagger/N=1024 (block 128)/qr 0.153 ± 0.011 s 0.146 ± 0.03 s 1.05 ± 0.23
linalg/dagger/N=1024 (block 128)/solve (A\b via lu) 0.181 ± 0.019 s 0.181 ± 0.012 s 1 ± 0.12
linalg/dagger/N=1024 (block 128)/svd 23.3 s 23.5 s 0.992
linalg/dagger/N=1024 (block 128)/syrk (A'*A) 0.0992 ± 0.018 s 0.0932 ± 0.015 s 1.06 ± 0.26
linalg/dagger/N=1024 (block 512)/cholesky 20.2 ± 1.9 ms 19.9 ± 3.9 ms 1.01 ± 0.22
linalg/dagger/N=1024 (block 512)/lu 0.0438 ± 0.0013 s 0.0465 ± 0.0032 s 0.942 ± 0.071
linalg/dagger/N=1024 (block 512)/matmul (A*A) 0.0462 ± 0.008 s 0.0456 ± 0.0015 s 1.01 ± 0.18
linalg/dagger/N=1024 (block 512)/matvec (A*x) 1.7 ± 0.35 ms 2.06 ± 0.64 ms 0.824 ± 0.31
linalg/dagger/N=1024 (block 512)/qr 0.114 ± 0.0058 s 0.115 ± 0.0074 s 0.988 ± 0.081
linalg/dagger/N=1024 (block 512)/solve (A\b via lu) 0.0539 ± 0.0011 s 0.0538 ± 0.001 s 1 ± 0.027
linalg/dagger/N=1024 (block 512)/svd 0.0382 h 0.0394 h 0.97
linalg/dagger/N=1024 (block 512)/syrk (A'*A) 0.0396 ± 0.0027 s 0.0402 ± 0.0065 s 0.985 ± 0.17
linalg/dagger/N=256 (block 128)/cholesky 5.62 ± 4 ms 6.64 ± 1.1 ms 0.845 ± 0.62
linalg/dagger/N=256 (block 128)/lu 9.67 ± 0.32 ms 11 ± 3.7 ms 0.876 ± 0.3
linalg/dagger/N=256 (block 128)/matmul (A*A) 7.36 ± 1.6 ms 6.46 ± 5.3 ms 1.14 ± 0.96
linalg/dagger/N=256 (block 128)/matvec (A*x) 1.98 ± 0.54 ms 2.67 ± 0.52 ms 0.743 ± 0.25
linalg/dagger/N=256 (block 128)/qr 9.87 ± 0.28 ms 7.79 ± 0.82 ms 1.27 ± 0.14
linalg/dagger/N=256 (block 128)/solve (A\b via lu) 14.2 ± 5 ms 22.9 ± 5.1 ms 0.618 ± 0.26
linalg/dagger/N=256 (block 128)/svd 0.67 ± 0.036 s 0.447 ± 0.051 s 1.5 ± 0.19
linalg/dagger/N=256 (block 128)/syrk (A'*A) 5.21 ± 0.73 ms 7.86 ± 2 ms 0.663 ± 0.2
linalg/dagger/N=256 (block 256)/cholesky 2.37 ± 0.33 ms 2.19 ± 0.063 ms 1.08 ± 0.15
linalg/dagger/N=256 (block 256)/lu 3.26 ± 0.045 ms 3.4 ± 0.26 ms 0.961 ± 0.074
linalg/dagger/N=256 (block 256)/matmul (A*A) 1.53 ± 0.43 ms 1.63 ± 0.56 ms 0.939 ± 0.42
linalg/dagger/N=256 (block 256)/matvec (A*x) 1.52 ± 0.57 ms 1.33 ± 0.89 ms 1.14 ± 0.88
linalg/dagger/N=256 (block 256)/qr 6.56 ± 2.2 ms 4.19 ± 0.43 ms 1.56 ± 0.55
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 6.56 ± 0.9 ms 6.74 ± 0.7 ms 0.973 ± 0.17
linalg/dagger/N=256 (block 256)/svd 0.592 ± 0.02 s 0.479 ± 0.036 s 1.24 ± 0.1
linalg/dagger/N=256 (block 256)/syrk (A'*A) 2.63 ± 0.13 ms 2.77 ± 0.081 ms 0.949 ± 0.055
sparse/dagger/N=1024 (block 64)/cg solve (laplacian) 0.373 ± 0.017 s 0.37 ± 0.017 s 1.01 ± 0.065
sparse/dagger/N=1024 (block 64)/spgemm (S*S) 0.382 ± 0.011 s 0.375 ± 0.0087 s 1.02 ± 0.038
sparse/dagger/N=1024 (block 64)/spmv (S*x) 24.8 ± 2.4 ms 24.6 ± 0.48 ms 1.01 ± 0.098
sparse/dagger/N=256 (block 16)/cg solve (laplacian) 0.361 ± 0.016 s 0.366 ± 0.0067 s 0.987 ± 0.048
sparse/dagger/N=256 (block 16)/spgemm (S*S) 0.341 ± 0.0049 s 0.348 ± 0.0022 s 0.979 ± 0.015
sparse/dagger/N=256 (block 16)/spmv (S*x) 22.9 ± 3.4 ms 22.8 ± 3.3 ms 1.01 ± 0.21
stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) 31.3 ± 1.3 ms 0.0326 ± 0.0022 s 0.962 ± 0.078
stencil/dagger/N=1024 (block 128)/assign (const) 11.6 ± 1.3 ms 11.7 ± 0.24 ms 0.99 ± 0.12
stencil/dagger/N=1024 (block 128)/multi-expr 24.8 ± 0.51 ms 25.7 ± 1.3 ms 0.966 ± 0.054
stencil/dagger/N=1024 (block 128)/neighbors (Clamp) 21.2 ± 0.051 ms 21.7 ± 1.3 ms 0.977 ± 0.06
stencil/dagger/N=1024 (block 128)/neighbors (Pad) 21 ± 3.1 ms 18.9 ± 1.1 ms 1.11 ± 0.17
stencil/dagger/N=1024 (block 128)/neighbors (Reflect) 19.9 ± 1.2 ms 21.2 ± 1.5 ms 0.94 ± 0.088
stencil/dagger/N=1024 (block 128)/neighbors (Wrap) 18.9 ± 2.8 ms 20.9 ± 1.7 ms 0.907 ± 0.15
stencil/dagger/N=1024 (block 128)/update (+) 13 ± 0.12 ms 13.6 ± 1.3 ms 0.961 ± 0.096
stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) 7.17 ± 1.9 ms 8 ± 1.2 ms 0.895 ± 0.27
stencil/dagger/N=1024 (block 512)/assign (const) 1.1 ± 1.2 ms 1.64 ± 0.95 ms 0.67 ± 0.81
stencil/dagger/N=1024 (block 512)/multi-expr 3.99 ± 1.7 ms 3.6 ± 1.9 ms 1.11 ± 0.74
stencil/dagger/N=1024 (block 512)/neighbors (Clamp) 6.82 ± 2.1 ms 7 ± 0.62 ms 0.974 ± 0.31
stencil/dagger/N=1024 (block 512)/neighbors (Pad) 6.45 ± 0.24 ms 6.19 ± 0.49 ms 1.04 ± 0.092
stencil/dagger/N=1024 (block 512)/neighbors (Reflect) 6.24 ± 0.47 ms 6.25 ± 0.38 ms 0.999 ± 0.096
stencil/dagger/N=1024 (block 512)/neighbors (Wrap) 6.78 ± 0.2 ms 6.85 ± 0.08 ms 0.99 ± 0.031
stencil/dagger/N=1024 (block 512)/update (+) 2.11 ± 0.81 ms 1.69 ± 0.63 ms 1.25 ± 0.67
stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) 3.74 ± 1.1 ms 3.11 ± 1.8 ms 1.2 ± 0.77
stencil/dagger/N=256 (block 128)/assign (const) 1.54 ± 0.27 ms 1.83 ± 3.1 ms 0.843 ± 1.4
stencil/dagger/N=256 (block 128)/multi-expr 2.55 ± 0.69 ms 3.26 ± 0.97 ms 0.783 ± 0.32
stencil/dagger/N=256 (block 128)/neighbors (Clamp) 1.75 ± 0.5 ms 1.76 ± 0.28 ms 0.993 ± 0.33
stencil/dagger/N=256 (block 128)/neighbors (Pad) 1.97 ± 0.27 ms 1.98 ± 0.22 ms 0.998 ± 0.18
stencil/dagger/N=256 (block 128)/neighbors (Reflect) 2.08 ± 0.25 ms 1.82 ± 0.0046 ms 1.15 ± 0.14
stencil/dagger/N=256 (block 128)/neighbors (Wrap) 1.87 ± 2.2 ms 2.07 ± 0.23 ms 0.902 ± 1.1
stencil/dagger/N=256 (block 128)/update (+) 1.3 ± 0.85 ms 1.52 ± 0.18 ms 0.855 ± 0.57
stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) 1.63 ± 0.086 ms 1.65 ± 0.0032 ms 0.987 ± 0.052
stencil/dagger/N=256 (block 256)/assign (const) 0.53 ± 0.023 ms 0.543 ± 0.026 ms 0.976 ± 0.063
stencil/dagger/N=256 (block 256)/multi-expr 0.97 ± 0.022 ms 0.97 ± 0.024 ms 1 ± 0.033
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 1.33 ± 1.5 ms 1.33 ± 0.66 ms 0.997 ± 1.2
stencil/dagger/N=256 (block 256)/neighbors (Pad) 1.76 ± 0.76 ms 1.32 ± 0.033 ms 1.33 ± 0.58
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 1.48 ± 1.9 ms 1.36 ± 0.86 ms 1.09 ± 1.6
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 1.45 ± 0.12 ms 1.46 ± 0.7 ms 0.989 ± 0.48
stencil/dagger/N=256 (block 256)/update (+) 0.599 ± 0.028 ms 0.625 ± 0.61 ms 0.958 ± 0.93
time_to_load 0.949 ± 0.013 s 0.962 ± 0.0098 s 0.987 ± 0.017

Allocations / memory

master dirty master / dirty
array/dagger/N=1024 (block 128)/add (X + X) 0.0773 M allocs: 11.1 MB 0.0772 M allocs: 11.1 MB 1
array/dagger/N=1024 (block 128)/alloc (rand) 30.2 k allocs: 9.05 MB 30.2 k allocs: 9.05 MB 1
array/dagger/N=1024 (block 128)/broadcast (X .+ 1) 28.6 k allocs: 9.01 MB 28.4 k allocs: 9 MB 1
array/dagger/N=1024 (block 128)/map (sin.(X)) 26.1 k allocs: 8.9 MB 26.1 k allocs: 8.9 MB 1
array/dagger/N=1024 (block 128)/norm 29.5 k allocs: 1.02 MB 29.7 k allocs: 1.03 MB 0.993
array/dagger/N=1024 (block 128)/reduce (sum) 0.0616 M allocs: 2.19 MB 0.0598 M allocs: 2.12 MB 1.03
array/dagger/N=1024 (block 128)/transpose (permutedims) 0.0357 M allocs: 9.46 MB 0.0356 M allocs: 9.46 MB 1
array/dagger/N=1024 (block 512)/add (X + X) 5.46 k allocs: 8.22 MB 5.43 k allocs: 8.22 MB 1
array/dagger/N=1024 (block 512)/alloc (rand) 1.92 k allocs: 8.07 MB 1.94 k allocs: 8.07 MB 1
array/dagger/N=1024 (block 512)/broadcast (X .+ 1) 1.84 k allocs: 8.06 MB 1.82 k allocs: 8.06 MB 1
array/dagger/N=1024 (block 512)/map (sin.(X)) 1.68 k allocs: 8.06 MB 1.68 k allocs: 8.06 MB 1
array/dagger/N=1024 (block 512)/norm 1.87 k allocs: 0.0649 MB 1.88 k allocs: 0.0654 MB 0.993
array/dagger/N=1024 (block 512)/reduce (sum) 3.01 k allocs: 0.105 MB 3.01 k allocs: 0.106 MB 0.998
array/dagger/N=1024 (block 512)/transpose (permutedims) 2.77 k allocs: 8.12 MB 2.78 k allocs: 8.12 MB 1
array/dagger/N=256 (block 128)/add (X + X) 5.48 k allocs: 0.723 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.97 k allocs: 0.569 MB 0.999
array/dagger/N=256 (block 128)/broadcast (X .+ 1) 1.85 k allocs: 0.565 MB 1.86 k allocs: 0.566 MB 0.999
array/dagger/N=256 (block 128)/map (sin.(X)) 1.7 k allocs: 0.559 MB 1.71 k allocs: 0.559 MB 1
array/dagger/N=256 (block 128)/norm 1.9 k allocs: 0.0659 MB 1.9 k allocs: 0.0657 MB 1
array/dagger/N=256 (block 128)/reduce (sum) 3.37 k allocs: 0.12 MB 3.29 k allocs: 0.116 MB 1.03
array/dagger/N=256 (block 128)/transpose (permutedims) 2.8 k allocs: 0.621 MB 2.8 k allocs: 0.621 MB 0.999
array/dagger/N=256 (block 256)/add (X + X) 1.7 k allocs: 0.576 MB 1.69 k allocs: 0.576 MB 1
array/dagger/N=256 (block 256)/alloc (rand) 0.56 k allocs: 0.52 MB 0.56 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.508 k allocs: 18.2 kB 1
array/dagger/N=256 (block 256)/reduce (sum) 0.677 k allocs: 26.2 kB 0.679 k allocs: 26.4 kB 0.995
array/dagger/N=256 (block 256)/transpose (permutedims) 0.976 k allocs: 0.548 MB 0.976 k allocs: 0.548 MB 1
linalg/dagger/N=1024 (block 128)/cholesky 0.104 M allocs: 15.4 MB 0.105 M allocs: 15.4 MB 0.996
linalg/dagger/N=1024 (block 128)/lu 0.29 M allocs: 23.1 MB 0.292 M allocs: 23.1 MB 0.997
linalg/dagger/N=1024 (block 128)/matmul (A*A) 0.234 M allocs: 16 MB 0.225 M allocs: 15.6 MB 1.02
linalg/dagger/N=1024 (block 128)/matvec (A*x) 0.0445 M allocs: 1.78 MB 0.0434 M allocs: 1.74 MB 1.03
linalg/dagger/N=1024 (block 128)/qr 0.228 M allocs: 25 MB 0.225 M allocs: 24.9 MB 1
linalg/dagger/N=1024 (block 128)/solve (A\b via lu) 0.355 M allocs: 25.7 MB 0.367 M allocs: 26.3 MB 0.979
linalg/dagger/N=1024 (block 128)/svd 2.4 M allocs: 2.27 GB 2.37 M allocs: 2.27 GB 1
linalg/dagger/N=1024 (block 128)/syrk (A'*A) 0.173 M allocs: 17.3 MB 0.167 M allocs: 17 MB 1.02
linalg/dagger/N=1024 (block 512)/cholesky 6.94 k allocs: 10.3 MB 6.82 k allocs: 10.3 MB 1
linalg/dagger/N=1024 (block 512)/lu 14.7 k allocs: 14.6 MB 14.5 k allocs: 14.6 MB 1
linalg/dagger/N=1024 (block 512)/matmul (A*A) 7.27 k allocs: 8.28 MB 7.13 k allocs: 8.28 MB 1
linalg/dagger/N=1024 (block 512)/matvec (A*x) 4.26 k allocs: 0.185 MB 4.2 k allocs: 0.183 MB 1.01
linalg/dagger/N=1024 (block 512)/qr 11.8 k allocs: 9.62 MB 11.7 k allocs: 9.62 MB 1
linalg/dagger/N=1024 (block 512)/solve (A\b via lu) 24.4 k allocs: 15.1 MB 24.9 k allocs: 15.1 MB 0.999
linalg/dagger/N=1024 (block 512)/svd 0.0469 M allocs: 0.197 GB 0.047 M allocs: 0.197 GB 1
linalg/dagger/N=1024 (block 512)/syrk (A'*A) 8.67 k allocs: 20.4 MB 8.47 k allocs: 20.4 MB 1
linalg/dagger/N=256 (block 128)/cholesky 6.93 k allocs: 0.912 MB 7.02 k allocs: 0.916 MB 0.996
linalg/dagger/N=256 (block 128)/lu 14.4 k allocs: 1.47 MB 14.3 k allocs: 1.47 MB 1
linalg/dagger/N=256 (block 128)/matmul (A*A) 7.28 k allocs: 0.782 MB 7.14 k allocs: 0.777 MB 1.01
linalg/dagger/N=256 (block 128)/matvec (A*x) 4.3 k allocs: 0.181 MB 4.38 k allocs: 0.184 MB 0.981
linalg/dagger/N=256 (block 128)/qr 11.7 k allocs: 1.26 MB 11.6 k allocs: 1.25 MB 1.01
linalg/dagger/N=256 (block 128)/solve (A\b via lu) 24.2 k allocs: 1.9 MB 24.7 k allocs: 1.92 MB 0.992
linalg/dagger/N=256 (block 128)/svd 0.0464 M allocs: 14.6 MB 0.0459 M allocs: 14.6 MB 1
linalg/dagger/N=256 (block 128)/syrk (A'*A) 8.49 k allocs: 1.6 MB 8.45 k allocs: 1.6 MB 1
linalg/dagger/N=256 (block 256)/cholesky 2.61 k allocs: 0.622 MB 2.62 k allocs: 0.622 MB 1
linalg/dagger/N=256 (block 256)/lu 4.89 k allocs: 1.23 MB 4.89 k allocs: 1.23 MB 1
linalg/dagger/N=256 (block 256)/matmul (A*A) 1.79 k allocs: 0.58 MB 1.79 k allocs: 0.58 MB 1
linalg/dagger/N=256 (block 256)/matvec (A*x) 1.65 k allocs: 0.0766 MB 1.66 k allocs: 0.0769 MB 0.995
linalg/dagger/N=256 (block 256)/qr 3.49 k allocs: 0.786 MB 3.5 k allocs: 0.786 MB 1
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 10 k allocs: 1.47 MB 10.1 k allocs: 1.48 MB 0.998
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.79 k allocs: 2.13 MB 2.77 k allocs: 2.13 MB 1
sparse/dagger/N=1024 (block 64)/cg solve (laplacian) 1.79 M allocs: 0.0707 GB 1.89 M allocs: 0.0749 GB 0.944
sparse/dagger/N=1024 (block 64)/spgemm (S*S) 2.41 M allocs: 0.129 GB 2.42 M allocs: 0.129 GB 0.999
sparse/dagger/N=1024 (block 64)/spmv (S*x) 0.125 M allocs: 5.02 MB 0.128 M allocs: 5.13 MB 0.978
sparse/dagger/N=256 (block 16)/cg solve (laplacian) 1.78 M allocs: 0.0703 GB 1.87 M allocs: 0.0739 GB 0.951
sparse/dagger/N=256 (block 16)/spgemm (S*S) 2.37 M allocs: 0.0904 GB 2.42 M allocs: 0.0929 GB 0.973
sparse/dagger/N=256 (block 16)/spmv (S*x) 0.122 M allocs: 4.91 MB 0.131 M allocs: 5.24 MB 0.937
stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) 0.0987 M allocs: 12 MB 0.0988 M allocs: 12 MB 1
stencil/dagger/N=1024 (block 128)/assign (const) 0.0336 M allocs: 1.38 MB 0.0337 M allocs: 1.39 MB 0.996
stencil/dagger/N=1024 (block 128)/multi-expr 0.0758 M allocs: 3.37 MB 0.0756 M allocs: 3.33 MB 1.01
stencil/dagger/N=1024 (block 128)/neighbors (Clamp) 0.0692 M allocs: 3.45 MB 0.0693 M allocs: 3.45 MB 1
stencil/dagger/N=1024 (block 128)/neighbors (Pad) 0.0683 M allocs: 3.17 MB 0.0683 M allocs: 3.28 MB 0.964
stencil/dagger/N=1024 (block 128)/neighbors (Reflect) 0.0688 M allocs: 3.21 MB 0.0683 M allocs: 3.22 MB 0.998
stencil/dagger/N=1024 (block 128)/neighbors (Wrap) 0.0678 M allocs: 2.97 MB 0.0679 M allocs: 3.09 MB 0.96
stencil/dagger/N=1024 (block 128)/update (+) 0.0425 M allocs: 1.83 MB 0.0421 M allocs: 1.94 MB 0.943
stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) 6.87 k allocs: 8.29 MB 6.9 k allocs: 8.29 MB 1
stencil/dagger/N=1024 (block 512)/assign (const) 2.69 k allocs: 0.117 MB 2.67 k allocs: 0.116 MB 1
stencil/dagger/N=1024 (block 512)/multi-expr 5.87 k allocs: 0.257 MB 5.97 k allocs: 0.261 MB 0.984
stencil/dagger/N=1024 (block 512)/neighbors (Clamp) 5.09 k allocs: 0.283 MB 5.07 k allocs: 0.282 MB 1
stencil/dagger/N=1024 (block 512)/neighbors (Pad) 4.94 k allocs: 0.278 MB 4.91 k allocs: 0.277 MB 1
stencil/dagger/N=1024 (block 512)/neighbors (Reflect) 5.03 k allocs: 0.311 MB 5.05 k allocs: 0.313 MB 0.996
stencil/dagger/N=1024 (block 512)/neighbors (Wrap) 4.91 k allocs: 0.219 MB 4.91 k allocs: 0.218 MB 1
stencil/dagger/N=1024 (block 512)/update (+) 3.21 k allocs: 0.141 MB 3.2 k allocs: 0.141 MB 1.01
stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) 6.89 k allocs: 0.788 MB 6.94 k allocs: 0.789 MB 0.999
stencil/dagger/N=256 (block 128)/assign (const) 2.68 k allocs: 0.117 MB 2.63 k allocs: 0.115 MB 1.02
stencil/dagger/N=256 (block 128)/multi-expr 5.89 k allocs: 0.258 MB 5.92 k allocs: 0.259 MB 0.995
stencil/dagger/N=256 (block 128)/neighbors (Clamp) 5.05 k allocs: 0.236 MB 5.08 k allocs: 0.237 MB 0.995
stencil/dagger/N=256 (block 128)/neighbors (Pad) 4.93 k allocs: 0.232 MB 4.93 k allocs: 0.232 MB 1
stencil/dagger/N=256 (block 128)/neighbors (Reflect) 5.05 k allocs: 0.244 MB 5.06 k allocs: 0.244 MB 1
stencil/dagger/N=256 (block 128)/neighbors (Wrap) 4.94 k allocs: 0.22 MB 4.96 k allocs: 0.22 MB 1
stencil/dagger/N=256 (block 128)/update (+) 3.21 k allocs: 0.142 MB 3.2 k allocs: 0.141 MB 1
stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) 2.1 k allocs: 0.597 MB 2.08 k allocs: 0.596 MB 1
stencil/dagger/N=256 (block 256)/assign (const) 0.941 k allocs: 0.0468 MB 0.938 k allocs: 0.0468 MB 1
stencil/dagger/N=256 (block 256)/multi-expr 2 k allocs: 0.0993 MB 2.01 k allocs: 0.0999 MB 0.994
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 1.58 k allocs: 0.0849 MB 1.59 k allocs: 0.0853 MB 0.996
stencil/dagger/N=256 (block 256)/neighbors (Pad) 1.54 k allocs: 0.0841 MB 1.54 k allocs: 0.0837 MB 1.01
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 1.57 k allocs: 0.0924 MB 1.58 k allocs: 0.0926 MB 0.998
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 1.53 k allocs: 0.0766 MB 1.53 k allocs: 0.0765 MB 1
stencil/dagger/N=256 (block 256)/update (+) 1.09 k allocs: 0.0534 MB 1.11 k allocs: 0.0542 MB 0.985
time_to_load 0.199 k allocs: 11.5 kB 0.199 k allocs: 11.5 kB 1

Plots

No time regressions beyond 25.0% or allocation regressions beyond 25.0% (timing changes inside the reported ±spread don't count) 🎉

Improvements

  • linalg/dagger/N=256 (block 128)/svd (time): -33.3%
Within noise (12 metric(s) past threshold but inside the ±spread; not counted)
  • linalg/dagger/N=256 (block 128)/solve (A\b via lu) (time): 61.8%
  • linalg/dagger/N=256 (block 128)/syrk (A'*A) (time): 50.9%
  • stencil/dagger/N=1024 (block 512)/assign (const) (time): 49.2%
  • linalg/dagger/N=256 (block 128)/matvec (A*x) (time): 34.6%
  • stencil/dagger/N=256 (block 128)/multi-expr (time): 27.8%
  • linalg/dagger/N=1024 (block 128)/matvec (A*x) (time): 26.6%
  • array/dagger/N=256 (block 128)/add (X + X) (time): -28.6%
  • array/dagger/N=1024 (block 512)/alloc (rand) (time): -30.9%
  • linalg/dagger/N=256 (block 256)/qr (time): -36.1%
  • array/dagger/N=256 (block 128)/norm (time): -36.7%
  • array/dagger/N=1024 (block 512)/broadcast (X .+ 1) (time): -41.0%
  • array/dagger/N=1024 (block 512)/norm (time): -56.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.107 ± 0.025 s 0.105 ± 0.024 s 1.02 ± 0.33
array/dagger/N=1024 (block 128)/alloc (rand) 29.3 ± 0.93 ms 29.6 ± 1.8 ms 0.989 ± 0.068
array/dagger/N=1024 (block 128)/broadcast (X .+ 1) 0.0386 ± 0.0024 s 0.0357 ± 0.0044 s 1.08 ± 0.15
array/dagger/N=1024 (block 128)/map (sin.(X)) 0.0367 ± 0.0015 s 0.0355 ± 0.0013 s 1.03 ± 0.057
array/dagger/N=1024 (block 128)/norm 31 ± 4.7 ms 0.0335 ± 0.0037 s 0.925 ± 0.17
array/dagger/N=1024 (block 128)/reduce (sum) 0.0485 ± 0.0027 s 0.047 ± 0.0016 s 1.03 ± 0.067
array/dagger/N=1024 (block 128)/transpose (permutedims) 0.0318 ± 0.0034 s 0.0373 ± 0.0041 s 0.853 ± 0.13
array/dagger/N=1024 (block 512)/add (X + X) 18.6 ± 1.4 ms 17 ± 2.6 ms 1.1 ± 0.19
array/dagger/N=1024 (block 512)/alloc (rand) 2.3 ± 0.028 ms 4.25 ± 1.7 ms 0.542 ± 0.21
array/dagger/N=1024 (block 512)/broadcast (X .+ 1) 4.48 ± 24 ms 0.0518 ± 0.1 s 0.0864 ± 0.49
array/dagger/N=1024 (block 512)/map (sin.(X)) 8.17 ± 0.81 ms 10.4 ± 23 ms 0.789 ± 1.8
array/dagger/N=1024 (block 512)/norm 2.41 ± 0.71 ms 2.3 ± 13 ms 1.05 ± 5.9
array/dagger/N=1024 (block 512)/reduce (sum) 3.2 ± 18 ms 3.05 ± 19 ms 1.05 ± 8.7
array/dagger/N=1024 (block 512)/transpose (permutedims) 7.86 ± 0.89 ms 7.13 ± 0.96 ms 1.1 ± 0.19
array/dagger/N=256 (block 128)/add (X + X) 1.83 ± 0.025 ms 1.83 ± 0.02 ms 1 ± 0.018
array/dagger/N=256 (block 128)/alloc (rand) 1.36 ± 0.045 ms 1.35 ± 0.061 ms 1.01 ± 0.056
array/dagger/N=256 (block 128)/broadcast (X .+ 1) 0.761 ± 0.023 ms 0.751 ± 0.049 ms 1.01 ± 0.074
array/dagger/N=256 (block 128)/map (sin.(X)) 1.23 ± 0.019 ms 1.22 ± 0.0099 ms 1.01 ± 0.017
array/dagger/N=256 (block 128)/norm 0.769 ± 0.028 ms 0.754 ± 0.02 ms 1.02 ± 0.046
array/dagger/N=256 (block 128)/reduce (sum) 0.0332 ± 0.084 s 3.07 ± 15 ms 10.8 ± 59
array/dagger/N=256 (block 128)/transpose (permutedims) 1.03 ± 0.0043 ms 1.04 ± 0.019 ms 0.984 ± 0.019
array/dagger/N=256 (block 256)/add (X + X) 1.51 ± 0.11 ms 1.59 ± 0.15 ms 0.949 ± 0.11
array/dagger/N=256 (block 256)/alloc (rand) 0.838 ± 0.023 ms 0.794 ± 0.021 ms 1.06 ± 0.04
array/dagger/N=256 (block 256)/broadcast (X .+ 1) 0.327 ± 0.054 ms 0.347 ± 0.025 ms 0.942 ± 0.17
array/dagger/N=256 (block 256)/map (sin.(X)) 0.862 ± 0.058 ms 0.937 ± 0.087 ms 0.92 ± 0.11
array/dagger/N=256 (block 256)/norm 0.357 ± 0.0091 ms 0.301 ± 0.036 ms 1.19 ± 0.14
array/dagger/N=256 (block 256)/reduce (sum) 0.518 ± 0.0081 ms 0.474 ± 0.0078 ms 1.09 ± 0.025
array/dagger/N=256 (block 256)/transpose (permutedims) 0.741 ± 0.057 ms 0.697 ± 0.037 ms 1.06 ± 0.099
linalg/dagger/N=1024 (block 128)/cholesky 0.474 ± 0.022 s 0.493 ± 0.027 s 0.961 ± 0.069
linalg/dagger/N=1024 (block 128)/lu 0.259 ± 0.0033 s 0.242 ± 0.0027 s 1.07 ± 0.018
linalg/dagger/N=1024 (block 128)/matmul (A*A) 0.329 ± 0.018 s 0.251 ± 0.013 s 1.31 ± 0.1
linalg/dagger/N=1024 (block 128)/matvec (A*x) 0.0967 ± 0.01 s 0.0958 ± 0.0096 s 1.01 ± 0.15
linalg/dagger/N=1024 (block 128)/qr 0.309 ± 0.01 s 0.28 ± 0.014 s 1.1 ± 0.065
linalg/dagger/N=1024 (block 128)/solve (A\b via lu) 3.15 s 0.29 ± 0.042 s 10.9
linalg/dagger/N=1024 (block 128)/svd 52.4 s 48.9 s 1.07
linalg/dagger/N=1024 (block 128)/syrk (A'*A) 0.484 ± 0.14 s 0.351 ± 0.095 s 1.38 ± 0.54
linalg/dagger/N=1024 (block 512)/cholesky 0.296 ± 0.19 s 0.261 ± 0.078 s 1.14 ± 0.82
linalg/dagger/N=1024 (block 512)/lu 0.0426 ± 0.0025 s 0.0432 ± 0.0082 s 0.985 ± 0.19
linalg/dagger/N=1024 (block 512)/matmul (A*A) 0.0379 ± 0.0042 s 0.0337 ± 0.0061 s 1.12 ± 0.24
linalg/dagger/N=1024 (block 512)/matvec (A*x) 9.21 ± 3.9 ms 7.74 ± 1.1 ms 1.19 ± 0.53
linalg/dagger/N=1024 (block 512)/qr 0.111 ± 0.0042 s 0.104 ± 0.00047 s 1.07 ± 0.041
linalg/dagger/N=1024 (block 512)/solve (A\b via lu) 0.0574 ± 0.015 s 0.0544 ± 0.0096 s 1.05 ± 0.33
linalg/dagger/N=1024 (block 512)/svd 0.0341 h 0.0347 h 0.984
linalg/dagger/N=1024 (block 512)/syrk (A'*A) 0.0463 ± 0.0046 s 0.0455 ± 0.0043 s 1.02 ± 0.14
linalg/dagger/N=256 (block 128)/cholesky 4.7 ± 0.044 ms 5.92 ± 0.32 ms 0.794 ± 0.044
linalg/dagger/N=256 (block 128)/lu 7.06 ± 0.38 ms 6.79 ± 0.79 ms 1.04 ± 0.13
linalg/dagger/N=256 (block 128)/matmul (A*A) 4.96 ± 0.22 ms 5.08 ± 0.22 ms 0.976 ± 0.06
linalg/dagger/N=256 (block 128)/matvec (A*x) 1.87 ± 0.042 ms 2.11 ± 0.021 ms 0.887 ± 0.022
linalg/dagger/N=256 (block 128)/qr 7.49 ± 0.18 ms 6.29 ± 0.079 ms 1.19 ± 0.032
linalg/dagger/N=256 (block 128)/solve (A\b via lu) 14.7 ± 0.61 ms 14.5 ± 0.58 ms 1.01 ± 0.058
linalg/dagger/N=256 (block 128)/svd 0.554 ± 0.014 s 0.541 ± 0.0076 s 1.03 ± 0.029
linalg/dagger/N=256 (block 128)/syrk (A'*A) 5.28 ± 0.7 ms 4.76 ± 0.41 ms 1.11 ± 0.18
linalg/dagger/N=256 (block 256)/cholesky 2.82 ± 0.14 ms 2.84 ± 0.17 ms 0.994 ± 0.078
linalg/dagger/N=256 (block 256)/lu 4.47 ± 0.22 ms 4.21 ± 0.091 ms 1.06 ± 0.056
linalg/dagger/N=256 (block 256)/matmul (A*A) 2.31 ± 0.068 ms 2.12 ± 0.046 ms 1.09 ± 0.04
linalg/dagger/N=256 (block 256)/matvec (A*x) 1.41 ± 0.089 ms 1.39 ± 0.052 ms 1.02 ± 0.075
linalg/dagger/N=256 (block 256)/qr 4.89 ± 0.17 ms 4.99 ± 0.095 ms 0.981 ± 0.039
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 0.288 ± 0.36 s 0.496 ± 0.23 s 0.581 ± 0.78
linalg/dagger/N=256 (block 256)/svd 0.498 ± 0.033 s 0.44 ± 0.025 s 1.13 ± 0.099
linalg/dagger/N=256 (block 256)/syrk (A'*A) 3.69 ± 0.066 ms 3.42 ± 0.95 ms 1.08 ± 0.3
sparse/dagger/N=1024 (block 64)/cg solve (laplacian) 11.1 s 10 s 1.1
sparse/dagger/N=1024 (block 64)/spgemm (S*S) 5.93 s 5.61 s 1.06
sparse/dagger/N=1024 (block 64)/spmv (S*x) 0.492 ± 0.0042 s 0.469 ± 0.0076 s 1.05 ± 0.019
sparse/dagger/N=256 (block 16)/cg solve (laplacian) 11 s 9.52 s 1.16
sparse/dagger/N=256 (block 16)/spgemm (S*S) 5.76 s 5.98 s 0.965
sparse/dagger/N=256 (block 16)/spmv (S*x) 0.473 ± 0.01 s 0.484 ± 0.0039 s 0.979 ± 0.022
stencil/dagger/N=1024 (block 128)/assign (const) 25.4 ± 6.9 ms 0.0421 ± 0.0078 s 0.603 ± 0.2
stencil/dagger/N=1024 (block 128)/multi-expr 0.234 ± 0.022 s 0.198 ± 0.0052 s 1.18 ± 0.12
stencil/dagger/N=1024 (block 128)/update (+) 0.179 ± 0.022 s 0.164 ± 0.012 s 1.09 ± 0.16
stencil/dagger/N=1024 (block 512)/assign (const) 4.6 ± 0.45 ms 2.01 ± 2.2 ms 2.29 ± 2.5
stencil/dagger/N=1024 (block 512)/multi-expr 0.0515 ± 0.04 s 0.0528 ± 0.02 s 0.974 ± 0.84
stencil/dagger/N=1024 (block 512)/update (+) 15.9 ± 0.5 ms 14.7 ± 0.46 ms 1.08 ± 0.048
stencil/dagger/N=256 (block 128)/assign (const) 1.15 ± 0.04 ms 1.06 ± 0.01 ms 1.08 ± 0.039
stencil/dagger/N=256 (block 128)/multi-expr 2.33 ± 0.049 ms 2.12 ± 0.058 ms 1.1 ± 0.038
stencil/dagger/N=256 (block 128)/neighbors (Clamp) 2.54 ± 0.46 ms 2.39 ± 0.056 ms 1.06 ± 0.19
stencil/dagger/N=256 (block 128)/neighbors (Reflect) 2.4 ± 0.089 ms 2.34 ± 0.016 ms 1.03 ± 0.039
stencil/dagger/N=256 (block 128)/update (+) 1.29 ± 0.0082 ms 1.19 ± 0.0076 ms 1.08 ± 0.0098
stencil/dagger/N=256 (block 256)/assign (const) 0.64 ± 0.023 ms 0.578 ± 0.051 ms 1.11 ± 0.11
stencil/dagger/N=256 (block 256)/multi-expr 1.61 ± 0.1 ms 1.49 ± 0.21 ms 1.08 ± 0.17
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 1.7 ± 0.081 ms 1.62 ± 0.0099 ms 1.05 ± 0.05
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 1.49 ± 0.083 ms 1.65 ± 0.039 ms 0.902 ± 0.054
stencil/dagger/N=256 (block 256)/update (+) 0.951 ± 0.059 ms 0.842 ± 0.065 ms 1.13 ± 0.11
stencil/dagger/N=256 (block 128)/neighbors (Pad) 2.55 ± 0.11 ms
stencil/dagger/N=256 (block 128)/neighbors (Wrap) 2.44 ± 0.053 ms
stencil/dagger/N=256 (block 256)/neighbors (Pad) 1.69 ± 0.16 ms
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 1.71 ± 0.047 ms
time_to_load 0.996 ± 0.012 s 0.984 ± 0.021 s 1.01 ± 0.025

Allocations / memory

master dirty master / dirty
array/dagger/N=1024 (block 128)/add (X + X) 0.168 M allocs: 18 MB 0.163 M allocs: 14.4 MB 1.25
array/dagger/N=1024 (block 128)/alloc (rand) 0.05 M allocs: 4.95 MB 0.0504 M allocs: 4.91 MB 1.01
array/dagger/N=1024 (block 128)/broadcast (X .+ 1) 0.0781 M allocs: 6.97 MB 0.0804 M allocs: 6.99 MB 0.996
array/dagger/N=1024 (block 128)/map (sin.(X)) 0.0747 M allocs: 6.93 MB 0.0735 M allocs: 6.91 MB 1
array/dagger/N=1024 (block 128)/norm 0.0535 M allocs: 2.23 MB 0.0572 M allocs: 2.45 MB 0.909
array/dagger/N=1024 (block 128)/reduce (sum) 0.0854 M allocs: 3.47 MB 0.0858 M allocs: 3.59 MB 0.965
array/dagger/N=1024 (block 128)/transpose (permutedims) 0.0627 M allocs: 7.74 MB 0.0682 M allocs: 6.91 MB 1.12
array/dagger/N=1024 (block 512)/add (X + X) 12.8 k allocs: 12.5 MB 12.8 k allocs: 12.5 MB 1
array/dagger/N=1024 (block 512)/alloc (rand) 2.06 k allocs: 8.07 MB 2.06 k allocs: 2.15 MB 3.75
array/dagger/N=1024 (block 512)/broadcast (X .+ 1) 1.96 k allocs: 2.29 MB 3.17 k allocs: 4.16 MB 0.55
array/dagger/N=1024 (block 512)/map (sin.(X)) 2.79 k allocs: 2.23 MB 3.08 k allocs: 2.31 MB 0.964
array/dagger/N=1024 (block 512)/norm 2.73 k allocs: 0.107 MB 2.07 k allocs: 0.0723 MB 1.48
array/dagger/N=1024 (block 512)/reduce (sum) 4.68 k allocs: 0.185 MB 3.97 k allocs: 0.151 MB 1.23
array/dagger/N=1024 (block 512)/transpose (permutedims) 4.59 k allocs: 2.33 MB 7.1 k allocs: 2.33 MB 0.998
array/dagger/N=256 (block 128)/add (X + X) 6.03 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.065 MB 1.92 k allocs: 0.065 MB 1
array/dagger/N=256 (block 128)/reduce (sum) 4.3 k allocs: 0.168 MB 4.28 k allocs: 0.168 MB 1
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.27 k allocs: 0.604 MB 2.5 k allocs: 0.616 MB 0.982
array/dagger/N=256 (block 256)/alloc (rand) 0.591 k allocs: 0.521 MB 0.591 k allocs: 0.521 MB 1
array/dagger/N=256 (block 256)/broadcast (X .+ 1) 0.5 k allocs: 0.518 MB 0.5 k allocs: 0.518 MB 1
array/dagger/N=256 (block 256)/map (sin.(X)) 0.469 k allocs: 0.516 MB 0.469 k allocs: 0.516 MB 1
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.66 M allocs: 0.0408 GB 0.658 M allocs: 0.0417 GB 0.978
linalg/dagger/N=1024 (block 128)/lu 0.556 M allocs: 0.0364 GB 0.563 M allocs: 0.0369 GB 0.986
linalg/dagger/N=1024 (block 128)/matmul (A*A) 0.52 M allocs: 31.3 MB 0.49 M allocs: 28.9 MB 1.08
linalg/dagger/N=1024 (block 128)/matvec (A*x) 0.159 M allocs: 9.25 MB 0.159 M allocs: 9.28 MB 0.997
linalg/dagger/N=1024 (block 128)/qr 0.401 M allocs: 0.0354 GB 0.364 M allocs: 0.0328 GB 1.08
linalg/dagger/N=1024 (block 128)/solve (A\b via lu) 2.58 M allocs: 0.158 GB 0.673 M allocs: 0.0419 GB 3.76
linalg/dagger/N=1024 (block 128)/svd 16.2 M allocs: 2.54 GB 17.1 M allocs: 2.58 GB 0.984
linalg/dagger/N=1024 (block 128)/syrk (A'*A) 0.65 M allocs: 0.0455 GB 0.361 M allocs: 27.9 MB 1.67
linalg/dagger/N=1024 (block 512)/cholesky 0.0346 M allocs: 9.55 MB 26.5 k allocs: 9.18 MB 1.04
linalg/dagger/N=1024 (block 512)/lu 21 k allocs: 16.9 MB 17.5 k allocs: 14.7 MB 1.15
linalg/dagger/N=1024 (block 512)/matmul (A*A) 12.5 k allocs: 10.5 MB 9.02 k allocs: 8.35 MB 1.26
linalg/dagger/N=1024 (block 512)/matvec (A*x) 11.6 k allocs: 0.503 MB 11.4 k allocs: 0.497 MB 1.01
linalg/dagger/N=1024 (block 512)/qr 12.8 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.0364 M allocs: 15.6 MB 0.0366 M allocs: 15.6 MB 1
linalg/dagger/N=1024 (block 512)/svd 0.174 M allocs: 0.31 GB 0.167 M allocs: 0.312 GB 0.995
linalg/dagger/N=1024 (block 512)/syrk (A'*A) 13.7 k allocs: 22.6 MB 10.2 k allocs: 20.4 MB 1.11
linalg/dagger/N=256 (block 128)/cholesky 8.92 k allocs: 1 MB 9.59 k allocs: 1.03 MB 0.97
linalg/dagger/N=256 (block 128)/lu 17.4 k allocs: 1.59 MB 17.4 k allocs: 1.59 MB 1
linalg/dagger/N=256 (block 128)/matmul (A*A) 9.03 k allocs: 0.85 MB 9.02 k allocs: 0.85 MB 1
linalg/dagger/N=256 (block 128)/matvec (A*x) 5.21 k allocs: 0.218 MB 5.52 k allocs: 0.232 MB 0.939
linalg/dagger/N=256 (block 128)/qr 12.8 k allocs: 1.3 MB 12.7 k allocs: 1.3 MB 1
linalg/dagger/N=256 (block 128)/solve (A\b via lu) 0.0329 M allocs: 2.28 MB 0.0346 M allocs: 2.36 MB 0.966
linalg/dagger/N=256 (block 128)/svd 0.165 M allocs: 26.9 MB 0.176 M allocs: 27.4 MB 0.981
linalg/dagger/N=256 (block 128)/syrk (A'*A) 10.2 k allocs: 1.67 MB 10.2 k allocs: 1.67 MB 1
linalg/dagger/N=256 (block 256)/cholesky 3.93 k allocs: 0.688 MB 3.96 k allocs: 0.689 MB 0.998
linalg/dagger/N=256 (block 256)/lu 7.33 k allocs: 1.35 MB 7.35 k allocs: 1.35 MB 1
linalg/dagger/N=256 (block 256)/matmul (A*A) 2.28 k allocs: 0.604 MB 2.39 k allocs: 0.609 MB 0.992
linalg/dagger/N=256 (block 256)/matvec (A*x) 2.59 k allocs: 0.123 MB 2.59 k allocs: 0.123 MB 0.999
linalg/dagger/N=256 (block 256)/qr 4.83 k allocs: 0.852 MB 5.17 k allocs: 0.868 MB 0.982
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 0.0567 M allocs: 7.12 MB 0.056 M allocs: 5.57 MB 1.28
linalg/dagger/N=256 (block 256)/svd 21.8 k allocs: 7.05 MB 21.8 k allocs: 7.05 MB 1
linalg/dagger/N=256 (block 256)/syrk (A'*A) 4.09 k allocs: 2.2 MB 4.1 k allocs: 2.2 MB 1
sparse/dagger/N=1024 (block 64)/cg solve (laplacian) 16.8 M allocs: 0.761 GB 15.3 M allocs: 0.692 GB 1.1
sparse/dagger/N=1024 (block 64)/spgemm (S*S) 9.81 M allocs: 0.462 GB 9.49 M allocs: 0.445 GB 1.04
sparse/dagger/N=1024 (block 64)/spmv (S*x) 0.834 M allocs: 0.0353 GB 0.818 M allocs: 0.0349 GB 1.01
sparse/dagger/N=256 (block 16)/cg solve (laplacian) 16.7 M allocs: 0.756 GB 14.8 M allocs: 0.671 GB 1.13
sparse/dagger/N=256 (block 16)/spgemm (S*S) 9.39 M allocs: 0.424 GB 9.76 M allocs: 0.439 GB 0.965
sparse/dagger/N=256 (block 16)/spmv (S*x) 0.818 M allocs: 0.0342 GB 0.811 M allocs: 0.0343 GB 0.996
stencil/dagger/N=1024 (block 128)/assign (const) 0.0477 M allocs: 2.15 MB 0.0715 M allocs: 3.31 MB 0.649
stencil/dagger/N=1024 (block 128)/multi-expr 0.318 M allocs: 14.7 MB 0.324 M allocs: 15 MB 0.983
stencil/dagger/N=1024 (block 128)/update (+) 0.251 M allocs: 11.5 MB 0.22 M allocs: 10 MB 1.15
stencil/dagger/N=1024 (block 512)/assign (const) 7.07 k allocs: 0.331 MB 2.97 k allocs: 0.131 MB 2.52
stencil/dagger/N=1024 (block 512)/multi-expr 12.8 k allocs: 0.579 MB 12.7 k allocs: 0.577 MB 1
stencil/dagger/N=1024 (block 512)/update (+) 18.1 k allocs: 0.837 MB 17.9 k allocs: 0.83 MB 1.01
stencil/dagger/N=256 (block 128)/assign (const) 2.91 k allocs: 0.129 MB 2.96 k allocs: 0.131 MB 0.983
stencil/dagger/N=256 (block 128)/multi-expr 6.83 k allocs: 0.302 MB 6.74 k allocs: 0.299 MB 1.01
stencil/dagger/N=256 (block 128)/neighbors (Clamp) 6.31 k allocs: 0.289 MB 6.3 k allocs: 0.288 MB 1
stencil/dagger/N=256 (block 128)/neighbors (Reflect) 6.3 k allocs: 0.297 MB 6.3 k allocs: 0.297 MB 1
stencil/dagger/N=256 (block 128)/update (+) 3.87 k allocs: 0.171 MB 3.85 k allocs: 0.17 MB 1
stencil/dagger/N=256 (block 256)/assign (const) 1.22 k allocs: 0.0626 MB 1.2 k allocs: 0.0618 MB 1.01
stencil/dagger/N=256 (block 256)/multi-expr 3.06 k allocs: 0.654 MB 2.99 k allocs: 0.65 MB 1.01
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 2.14 k allocs: 0.611 MB 2.13 k allocs: 0.611 MB 1
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 2.14 k allocs: 0.619 MB 2.14 k allocs: 0.619 MB 1
stencil/dagger/N=256 (block 256)/update (+) 1.61 k allocs: 0.579 MB 1.53 k allocs: 0.576 MB 1.01
stencil/dagger/N=256 (block 128)/neighbors (Pad) 6.18 k allocs: 0.284 MB
stencil/dagger/N=256 (block 128)/neighbors (Wrap) 6.19 k allocs: 0.272 MB
stencil/dagger/N=256 (block 256)/neighbors (Pad) 2.09 k allocs: 0.609 MB
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 2.18 k allocs: 0.607 MB
time_to_load 0.203 k allocs: 11.6 kB 0.199 k allocs: 11.5 kB 1.02

Plots

⚠️ Regressions (time > 35.0% and outside the reported ±spread; allocs/memory > 25.0%)

  • array/dagger/N=1024 (block 512)/alloc (rand) (time): +84.5%
  • array/dagger/N=1024 (block 512)/broadcast (X .+ 1) (memory): +81.7%
  • stencil/dagger/N=1024 (block 128)/assign (const) (time): +66.0%
  • array/dagger/N=1024 (block 512)/broadcast (X .+ 1) (allocs): +61.4%
  • array/dagger/N=1024 (block 512)/transpose (permutedims) (allocs): +54.8%
  • stencil/dagger/N=1024 (block 128)/assign (const) (memory): +54.1%
  • stencil/dagger/N=1024 (block 128)/assign (const) (allocs): +50.0%

Improvements

  • linalg/dagger/N=1024 (block 128)/solve (A\b via lu) (time): -90.8%
  • linalg/dagger/N=1024 (block 128)/solve (A\b via lu) (allocs): -73.9%
  • linalg/dagger/N=1024 (block 128)/solve (A\b via lu) (memory): -73.4%
  • array/dagger/N=1024 (block 512)/alloc (rand) (memory): -73.3%
  • stencil/dagger/N=1024 (block 512)/assign (const) (memory): -60.3%
  • stencil/dagger/N=1024 (block 512)/assign (const) (allocs): -57.9%
  • linalg/dagger/N=1024 (block 128)/syrk (A'*A) (allocs): -44.5%
  • linalg/dagger/N=1024 (block 128)/syrk (A'*A) (memory): -40.3%
  • array/dagger/N=1024 (block 512)/norm (memory): -32.6%
  • linalg/dagger/N=1024 (block 512)/matmul (A*A) (allocs): -28.0%
  • linalg/dagger/N=1024 (block 512)/syrk (A'*A) (allocs): -25.6%
Within noise (4 metric(s) past threshold but inside the ±spread; not counted)
  • array/dagger/N=1024 (block 512)/broadcast (X .+ 1) (time): 1057.2%
  • linalg/dagger/N=256 (block 256)/solve (A\b via lu) (time): 72.1%
  • stencil/dagger/N=1024 (block 512)/assign (const) (time): -56.3%
  • array/dagger/N=256 (block 128)/reduce (sum) (time): -90.7%
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.193 ± 0.0018 s 0.187 ± 0.0008 s 1.03 ± 0.01
array/dagger/N=1024 (block 128)/alloc (rand) 0.0576 ± 0.0032 s 0.0552 ± 0.0072 s 1.04 ± 0.15
array/dagger/N=1024 (block 128)/broadcast (X .+ 1) 22.3 ± 0.41 ms 21.6 ± 0.28 ms 1.03 ± 0.023
array/dagger/N=1024 (block 128)/map (sin.(X)) 24.4 ± 0.57 ms 23.3 ± 0.1 ms 1.05 ± 0.025
array/dagger/N=1024 (block 128)/norm 24.7 ± 0.19 ms 24.5 ± 0.41 ms 1.01 ± 0.018
array/dagger/N=1024 (block 128)/reduce (sum) 0.0453 ± 0.0067 s 0.0502 ± 0.014 s 0.903 ± 0.29
array/dagger/N=1024 (block 128)/transpose (permutedims) 0.0939 ± 0.00062 s 0.0931 ± 0.0013 s 1.01 ± 0.015
array/dagger/N=1024 (block 512)/add (X + X) 19 ± 0.13 ms 17.6 ± 0.33 ms 1.07 ± 0.021
array/dagger/N=1024 (block 512)/alloc (rand) 4.87 ± 2.3 ms 4.98 ± 1.8 ms 0.977 ± 0.59
array/dagger/N=1024 (block 512)/broadcast (X .+ 1) 2.95 ± 1.5 ms 2.77 ± 0.48 ms 1.07 ± 0.57
array/dagger/N=1024 (block 512)/map (sin.(X)) 5.99 ± 0.46 ms 5.94 ± 0.46 ms 1.01 ± 0.11
array/dagger/N=1024 (block 512)/norm 5.79 ± 0.093 ms 5.49 ± 0.082 ms 1.05 ± 0.023
array/dagger/N=1024 (block 512)/reduce (sum) 3.01 ± 0.027 ms 2.98 ± 0.01 ms 1.01 ± 0.0097
array/dagger/N=1024 (block 512)/transpose (permutedims) 16.7 ± 0.38 ms 15.6 ± 1.1 ms 1.07 ± 0.077
array/dagger/N=256 (block 128)/add (X + X) 13.1 ± 0.1 ms 13.3 ± 0.24 ms 0.986 ± 0.019
array/dagger/N=256 (block 128)/alloc (rand) 3.8 ± 6.5 ms 3.67 ± 0.12 ms 1.03 ± 1.8
array/dagger/N=256 (block 128)/broadcast (X .+ 1) 1.55 ± 0.024 ms 1.56 ± 0.01 ms 0.991 ± 0.017
array/dagger/N=256 (block 128)/map (sin.(X)) 1.66 ± 0.011 ms 1.68 ± 0.037 ms 0.989 ± 0.023
array/dagger/N=256 (block 128)/norm 1.91 ± 0.021 ms 1.9 ± 0.031 ms 1 ± 0.02
array/dagger/N=256 (block 128)/reduce (sum) 2.85 ± 0.0013 ms 2.87 ± 0.04 ms 0.994 ± 0.014
array/dagger/N=256 (block 128)/transpose (permutedims) 6.44 ± 0.049 ms 6.45 ± 0.032 ms 0.998 ± 0.0091
array/dagger/N=256 (block 256)/add (X + X) 4.17 ± 0.08 ms 4.14 ± 0.017 ms 1.01 ± 0.02
array/dagger/N=256 (block 256)/alloc (rand) 4.95 ± 7.3 ms 1.65 ± 0.021 ms 3 ± 4.4
array/dagger/N=256 (block 256)/broadcast (X .+ 1) 0.569 ± 0.045 ms 0.581 ± 0.016 ms 0.98 ± 0.081
array/dagger/N=256 (block 256)/map (sin.(X)) 1.31 ± 0.012 ms 1.32 ± 0.02 ms 0.993 ± 0.018
array/dagger/N=256 (block 256)/norm 1.15 ± 0.00089 ms 1.11 ± 0.0039 ms 1.04 ± 0.0037
array/dagger/N=256 (block 256)/reduce (sum) 0.84 ± 0.026 ms 0.795 ± 0.019 ms 1.06 ± 0.041
array/dagger/N=256 (block 256)/transpose (permutedims) 2.38 ± 0.066 ms 2.24 ± 0.077 ms 1.06 ± 0.047
linalg/dagger/N=1024 (block 128)/cholesky 4.17 s 4.12 s 1.01
linalg/dagger/N=1024 (block 128)/lu 29.3 s 30.4 s 0.965
linalg/dagger/N=1024 (block 128)/matmul (A*A) 5.78 s 6.43 s 0.898
linalg/dagger/N=1024 (block 128)/matvec (A*x) 0.193 ± 0.00062 s 0.195 ± 0.00033 s 0.988 ± 0.0036
linalg/dagger/N=1024 (block 128)/qr 2.54 s 3.28 s 0.772
linalg/dagger/N=1024 (block 128)/solve (A\b via lu) 30.3 s 30.9 s 0.978
linalg/dagger/N=1024 (block 128)/syrk (A'*A) 3.83 s 4 s 0.958
linalg/dagger/N=1024 (block 512)/cholesky 0.296 ± 0.043 s 0.21 ± 0.023 s 1.41 ± 0.26
linalg/dagger/N=1024 (block 512)/lu 10.3 s 9.95 s 1.03
linalg/dagger/N=1024 (block 512)/matmul (A*A) 0.283 ± 0.043 s 0.3 ± 0.021 s 0.943 ± 0.16
linalg/dagger/N=1024 (block 512)/matvec (A*x) 22.3 ± 2.3 ms 21.3 ± 0.35 ms 1.05 ± 0.11
linalg/dagger/N=1024 (block 512)/qr 0.628 ± 0.16 s 0.572 ± 0.17 s 1.1 ± 0.43
linalg/dagger/N=1024 (block 512)/solve (A\b via lu) 10.6 s 10.1 s 1.05
linalg/dagger/N=1024 (block 512)/syrk (A'*A) 0.292 ± 0.048 s 0.242 ± 0.03 s 1.21 ± 0.25
linalg/dagger/N=256 (block 128)/cholesky 0.209 ± 0.11 s 0.198 ± 0.0047 s 1.05 ± 0.57
linalg/dagger/N=256 (block 128)/lu 1.85 ± 0.0018 s 1.85 ± 0.011 s 1 ± 0.0059
linalg/dagger/N=256 (block 128)/matmul (A*A) 0.161 ± 0.047 s 0.174 ± 0.014 s 0.926 ± 0.28
linalg/dagger/N=256 (block 128)/matvec (A*x) 20.3 ± 1.2 ms 20 ± 1.2 ms 1.02 ± 0.086
linalg/dagger/N=256 (block 128)/qr 0.2 ± 0.0081 s 0.248 ± 0.0012 s 0.808 ± 0.033
linalg/dagger/N=256 (block 128)/solve (A\b via lu) 1.89 ± 0.00098 s 1.89 ± 0.0088 s 1 ± 0.0047
linalg/dagger/N=256 (block 128)/syrk (A'*A) 0.141 ± 0.0093 s 0.175 ± 0.0046 s 0.804 ± 0.057
linalg/dagger/N=256 (block 256)/cholesky 0.0838 ± 0.052 s
linalg/dagger/N=256 (block 256)/lu 0.708 ± 0.003 s
linalg/dagger/N=256 (block 256)/matmul (A*A) 5.31 ± 0.15 ms
linalg/dagger/N=256 (block 256)/matvec (A*x) 5.1 ± 0.061 ms
linalg/dagger/N=256 (block 256)/qr 15.3 ± 1.4 ms
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 0.722 ± 0.0047 s
linalg/dagger/N=256 (block 256)/syrk (A'*A) 12.6 ± 29 ms
sparse/dagger/N=1024 (block 64)/cg solve (laplacian) 14.1 s
sparse/dagger/N=1024 (block 64)/spgemm (S*S) 6.99 s
sparse/dagger/N=1024 (block 64)/spmv (S*x) 0.671 ± 0.00092 s
sparse/dagger/N=256 (block 16)/cg solve (laplacian) 13 s
sparse/dagger/N=256 (block 16)/spgemm (S*S) 6.99 s
sparse/dagger/N=256 (block 16)/spmv (S*x) 0.667 ± 0.0032 s
stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) 1.46 ± 0.002 s
stencil/dagger/N=1024 (block 128)/assign (const) 0.0906 ± 0.0014 s
stencil/dagger/N=1024 (block 128)/multi-expr 0.242 ± 0.00088 s
stencil/dagger/N=1024 (block 128)/neighbors (Clamp) 1.31 ± 0.013 s
stencil/dagger/N=1024 (block 128)/neighbors (Pad) 1.22 ± 0.0013 s
stencil/dagger/N=1024 (block 128)/neighbors (Reflect) 1.32 ± 0.0019 s
stencil/dagger/N=1024 (block 128)/neighbors (Wrap) 1.49 ± 0.012 s
stencil/dagger/N=1024 (block 128)/update (+) 0.15 ± 0.00027 s
stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) 0.132 ± 0.00016 s
stencil/dagger/N=1024 (block 512)/assign (const) 6.93 ± 0.074 ms
stencil/dagger/N=1024 (block 512)/multi-expr 17.5 ± 0.037 ms
stencil/dagger/N=1024 (block 512)/neighbors (Clamp) 0.0963 ± 0.0021 s
stencil/dagger/N=1024 (block 512)/neighbors (Pad) 0.0701 ± 0.00025 s
stencil/dagger/N=1024 (block 512)/neighbors (Reflect) 0.0958 ± 0.0023 s
stencil/dagger/N=1024 (block 512)/neighbors (Wrap) 0.13 ± 0.0012 s
stencil/dagger/N=1024 (block 512)/update (+) 10.7 ± 0.031 ms
stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) 0.114 ± 0.0016 s
stencil/dagger/N=256 (block 128)/assign (const) 6.44 ± 0.067 ms
stencil/dagger/N=256 (block 128)/multi-expr 16.4 ± 0.11 ms
stencil/dagger/N=256 (block 128)/neighbors (Clamp) 0.0741 ± 0.00058 s
stencil/dagger/N=256 (block 128)/neighbors (Pad) 0.0501 ± 0.00026 s
stencil/dagger/N=256 (block 128)/neighbors (Reflect) 0.0754 ± 0.00014 s
stencil/dagger/N=256 (block 128)/neighbors (Wrap) 0.112 ± 0.0011 s
stencil/dagger/N=256 (block 128)/update (+) 10.1 ± 0.039 ms
stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) 6.52 ± 0.092 ms
stencil/dagger/N=256 (block 256)/assign (const) 2.14 ± 0.016 ms
stencil/dagger/N=256 (block 256)/multi-expr 5.02 ± 0.17 ms
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 5.55 ± 0.29 ms
stencil/dagger/N=256 (block 256)/neighbors (Pad) 5.23 ± 0.065 ms
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 5.2 ± 0.027 ms
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 5.14 ± 0.013 ms
stencil/dagger/N=256 (block 256)/update (+) 3.01 ± 0.03 ms
time_to_load 0.978 ± 0.0039 s 0.96 ± 0.0095 s 1.02 ± 0.011

Allocations / memory

master dirty master / dirty
array/dagger/N=1024 (block 128)/add (X + X) 0.655 M allocs: 0.035 GB 0.655 M allocs: 0.035 GB 1
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.0413 M allocs: 3.55 MB 0.0411 M allocs: 3.54 MB 1
array/dagger/N=1024 (block 128)/map (sin.(X)) 0.0386 M allocs: 3.43 MB 0.0387 M allocs: 3.44 MB 1
array/dagger/N=1024 (block 128)/norm 0.0513 M allocs: 2.01 MB 0.0514 M allocs: 2.02 MB 0.997
array/dagger/N=1024 (block 128)/reduce (sum) 0.0821 M allocs: 3.08 MB 0.0813 M allocs: 3.04 MB 1.02
array/dagger/N=1024 (block 128)/transpose (permutedims) 0.303 M allocs: 17.7 MB 0.303 M allocs: 17.7 MB 0.999
array/dagger/N=1024 (block 512)/add (X + X) 0.0449 M allocs: 4.32 MB 0.0449 M allocs: 4.32 MB 1
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.58 k allocs: 2.09 MB 1
array/dagger/N=1024 (block 512)/map (sin.(X)) 2.47 k allocs: 2.09 MB 2.38 k allocs: 2.09 MB 1
array/dagger/N=1024 (block 512)/norm 3.34 k allocs: 0.131 MB 3.36 k allocs: 0.131 MB 0.994
array/dagger/N=1024 (block 512)/reduce (sum) 4.81 k allocs: 0.177 MB 4.79 k allocs: 0.176 MB 1
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.0449 M allocs: 2.44 MB 0.0449 M allocs: 2.44 MB 1
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.58 k allocs: 0.22 MB 0.994
array/dagger/N=256 (block 128)/map (sin.(X)) 2.44 k allocs: 0.214 MB 2.4 k allocs: 0.212 MB 1.01
array/dagger/N=256 (block 128)/norm 3.26 k allocs: 0.128 MB 3.34 k allocs: 0.131 MB 0.978
array/dagger/N=256 (block 128)/reduce (sum) 4.78 k allocs: 0.176 MB 4.74 k allocs: 0.174 MB 1.01
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 1
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.679 k allocs: 0.525 MB 0.677 k allocs: 0.525 MB 1
array/dagger/N=256 (block 256)/map (sin.(X)) 0.659 k allocs: 0.524 MB 0.659 k allocs: 0.524 MB 1
array/dagger/N=256 (block 256)/norm 0.968 k allocs: 0.0392 MB 0.967 k allocs: 0.0392 MB 1
array/dagger/N=256 (block 256)/reduce (sum) 0.978 k allocs: 0.0387 MB 1.03 k allocs: 0.0405 MB 0.956
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.53 M allocs: 0.0793 GB 1.53 M allocs: 0.0794 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.36 M allocs: 0.166 GB 0.998
linalg/dagger/N=1024 (block 128)/matvec (A*x) 0.61 M allocs: 31.2 MB 0.607 M allocs: 31.1 MB 1
linalg/dagger/N=1024 (block 128)/qr 2.32 M allocs: 0.119 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.4 GB 0.0502 G allocs: 2.4 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.44 MB 0.0863 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.1 M allocs: 7.07 MB 0.0998 M allocs: 7.06 MB 1
linalg/dagger/N=1024 (block 512)/matvec (A*x) 0.0611 M allocs: 3.14 MB 0.0609 M allocs: 3.13 MB 1
linalg/dagger/N=1024 (block 512)/qr 0.122 M allocs: 8.49 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.0984 M allocs: 13 MB 0.0983 M allocs: 13 MB 1
linalg/dagger/N=256 (block 128)/cholesky 0.0862 M allocs: 4.56 MB 0.0863 M allocs: 4.56 MB 1
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.1 M allocs: 5.2 MB 0.0999 M allocs: 5.19 MB 1
linalg/dagger/N=256 (block 128)/matvec (A*x) 0.0611 M allocs: 3.14 MB 0.0609 M allocs: 3.13 MB 1
linalg/dagger/N=256 (block 128)/qr 0.122 M allocs: 6.42 MB 0.122 M allocs: 6.42 MB 1
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.0983 M allocs: 5.52 MB 0.0986 M allocs: 5.53 MB 0.999
linalg/dagger/N=256 (block 256)/cholesky 23.6 k allocs: 1.75 MB
linalg/dagger/N=256 (block 256)/lu 2.03 M allocs: 0.0985 GB
linalg/dagger/N=256 (block 256)/matmul (A*A) 14.6 k allocs: 1.26 MB
linalg/dagger/N=256 (block 256)/matvec (A*x) 17.3 k allocs: 0.911 MB
linalg/dagger/N=256 (block 256)/qr 27.6 k allocs: 2.07 MB
linalg/dagger/N=256 (block 256)/solve (A\b via lu) 2.08 M allocs: 0.101 GB
linalg/dagger/N=256 (block 256)/syrk (A'*A) 21.3 k allocs: 3.11 MB
sparse/dagger/N=1024 (block 64)/cg solve (laplacian) 28.3 M allocs: 1.42 GB
sparse/dagger/N=1024 (block 64)/spgemm (S*S) 18.1 M allocs: 0.891 GB
sparse/dagger/N=1024 (block 64)/spmv (S*x) 2.13 M allocs: 0.107 GB
sparse/dagger/N=256 (block 16)/cg solve (laplacian) 28.3 M allocs: 1.42 GB
sparse/dagger/N=256 (block 16)/spgemm (S*S) 18.1 M allocs: 0.869 GB
sparse/dagger/N=256 (block 16)/spmv (S*x) 2.13 M allocs: 0.107 GB
stencil/dagger/N=1024 (block 128)/alloc (neighbors Wrap) 3.97 M allocs: 0.198 GB
stencil/dagger/N=1024 (block 128)/assign (const) 0.293 M allocs: 15.3 MB
stencil/dagger/N=1024 (block 128)/multi-expr 0.812 M allocs: 0.0415 GB
stencil/dagger/N=1024 (block 128)/neighbors (Clamp) 3.48 M allocs: 0.173 GB
stencil/dagger/N=1024 (block 128)/neighbors (Pad) 3.25 M allocs: 0.162 GB
stencil/dagger/N=1024 (block 128)/neighbors (Reflect) 3.48 M allocs: 0.173 GB
stencil/dagger/N=1024 (block 128)/neighbors (Wrap) 3.87 M allocs: 0.192 GB
stencil/dagger/N=1024 (block 128)/update (+) 0.518 M allocs: 27.2 MB
stencil/dagger/N=1024 (block 512)/alloc (neighbors Wrap) 0.316 M allocs: 18 MB
stencil/dagger/N=1024 (block 512)/assign (const) 20.4 k allocs: 1.06 MB
stencil/dagger/N=1024 (block 512)/multi-expr 0.0549 M allocs: 2.87 MB
stencil/dagger/N=1024 (block 512)/neighbors (Clamp) 0.21 M allocs: 10.7 MB
stencil/dagger/N=1024 (block 512)/neighbors (Pad) 0.145 M allocs: 7.42 MB
stencil/dagger/N=1024 (block 512)/neighbors (Reflect) 0.211 M allocs: 10.7 MB
stencil/dagger/N=1024 (block 512)/neighbors (Wrap) 0.308 M allocs: 15.6 MB
stencil/dagger/N=1024 (block 512)/update (+) 0.0344 M allocs: 1.8 MB
stencil/dagger/N=256 (block 128)/alloc (neighbors Wrap) 0.316 M allocs: 16.1 MB
stencil/dagger/N=256 (block 128)/assign (const) 20.4 k allocs: 1.06 MB
stencil/dagger/N=256 (block 128)/multi-expr 0.0549 M allocs: 2.87 MB
stencil/dagger/N=256 (block 128)/neighbors (Clamp) 0.21 M allocs: 10.7 MB
stencil/dagger/N=256 (block 128)/neighbors (Pad) 0.145 M allocs: 7.41 MB
stencil/dagger/N=256 (block 128)/neighbors (Reflect) 0.211 M allocs: 10.7 MB
stencil/dagger/N=256 (block 128)/neighbors (Wrap) 0.308 M allocs: 15.5 MB
stencil/dagger/N=256 (block 128)/update (+) 0.0344 M allocs: 1.8 MB
stencil/dagger/N=256 (block 256)/alloc (neighbors Wrap) 17.2 k allocs: 1.4 MB
stencil/dagger/N=256 (block 256)/assign (const) 6.51 k allocs: 0.345 MB
stencil/dagger/N=256 (block 256)/multi-expr 16.6 k allocs: 0.878 MB
stencil/dagger/N=256 (block 256)/neighbors (Clamp) 13.8 k allocs: 0.733 MB
stencil/dagger/N=256 (block 256)/neighbors (Pad) 13.7 k allocs: 0.732 MB
stencil/dagger/N=256 (block 256)/neighbors (Reflect) 13.8 k allocs: 0.741 MB
stencil/dagger/N=256 (block 256)/neighbors (Wrap) 13.7 k allocs: 0.726 MB
stencil/dagger/N=256 (block 256)/update (+) 10.1 k allocs: 0.533 MB
time_to_load 0.199 k allocs: 11.5 kB 0.199 k allocs: 11.5 kB 1

No time regressions beyond 35.0% or allocation regressions beyond 25.0% (timing changes inside the reported ±spread don't count) 🎉

Within noise (1 metric(s) past threshold but inside the ±spread; not counted)
  • array/dagger/N=256 (block 256)/alloc (rand) (time): -66.7%

Full results and plots (download the benchmark-results-* artifacts).

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants