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).

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