Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

improve caching #153

Merged
merged 14 commits into from
Oct 14, 2024
Merged

improve caching #153

merged 14 commits into from
Oct 14, 2024

Conversation

hexaeder
Copy link
Member

@hexaeder hexaeder commented Oct 10, 2024

  • use static DiffCaches instead of LazyBufferCache (probably will help with Enzyme)
  • remove duplicate code paths for "buffered" and "unbuffered" execution (i.e., whether to look up the input values for edges in state vector lazily via views or whether to copy them all in dedicated buffers first)

closes #152

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Copy link
Contributor

Benchmark Results

┌────────────────────────────────────────────┬────────┬────────────┬────────────┬────────────┬─────────┬──────────┬────────────┐
│ Key                                        │        │ Time       │            │            │ Allocs  │          │            │
│                                            │        │ target     │ baseline   │            │ target  │ baseline │            │
├────────────────────────────────────────────┼────────┼────────────┼────────────┼────────────┼─────────┼──────────┼────────────┤
│ diffusion → static_edge → assemble         │    100 │   1.107 ms │   1.010 ms │  +9.6 % ❌ │    5551 │     5509 │  +0.8 % ➖ │
│                                            │    300 │   8.982 ms │   8.705 ms │  +3.2 % ➖ │   46161 │    46118 │  +0.1 % ➖ │
│                                            │   1000 │ 111.880 ms │  96.199 ms │ +16.3 % ❌ │  503270 │   503224 │  +0.0 % ➖ │
│                                            │   3000 │    1.284 s │    1.060 s │ +21.1 % ❌ │ 4509276 │  4509230 │  +0.0 % ➖ │
│ diffusion → static_edge → seq → seq        │    100 │  11.151 μs │  11.191 μs │  -0.4 % ➖ │         │          │  +0.0 % ➖ │
│                                            │    300 │ 115.885 μs │ 115.806 μs │  +0.1 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   1000 │   1.369 ms │   1.366 ms │  +0.2 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   3000 │  13.085 ms │  13.173 ms │  -0.7 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion → static_edge → ka → seq         │    100 │  19.967 μs │  20.699 μs │  -3.5 % ➖ │      71 │       67 │  +6.0 % ❌ │
│                                            │    300 │ 154.477 μs │ 155.119 μs │  -0.4 % ➖ │     156 │      133 │ +17.3 % ❌ │
│                                            │   1000 │   1.435 ms │   1.443 ms │  -0.5 % ➖ │    1049 │      803 │ +30.6 % ❌ │
│                                            │   3000 │  12.830 ms │  12.913 ms │  -0.6 % ➖ │    8900 │     6701 │ +32.8 % ❌ │
│ diffusion → static_edge → poly → seq       │    100 │  14.192 μs │  14.938 μs │  -5.0 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 127.958 μs │ 133.669 μs │  -4.3 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   1.443 ms │   1.505 ms │  -4.1 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  14.157 ms │  14.180 ms │  -0.2 % ➖ │       2 │        2 │  +0.0 % ➖ │
│ diffusion → static_edge → thrd → seq       │    100 │  18.294 μs │  18.314 μs │  -0.1 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 145.330 μs │ 146.222 μs │  -0.6 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   1.329 ms │   1.324 ms │  +0.4 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  12.692 ms │  12.712 ms │  -0.2 % ➖ │      44 │       44 │  +0.0 % ➖ │
│ diffusion → static_edge → seq_buf → seq    │    100 │  12.604 μs │  13.766 μs │  -8.4 % ✅ │         │          │  +0.0 % ➖ │
│                                            │    300 │ 130.883 μs │ 142.084 μs │  -7.9 % ✅ │         │          │  +0.0 % ➖ │
│                                            │   1000 │   1.547 ms │   1.681 ms │  -8.0 % ✅ │         │          │  +0.0 % ➖ │
│                                            │   3000 │  14.502 ms │  15.668 ms │  -7.4 % ✅ │         │          │  +0.0 % ➖ │
│ diffusion → static_edge → ka_buf → seq     │    100 │  25.998 μs │  26.269 μs │  -1.0 % ➖ │      67 │       67 │  +0.0 % ➖ │
│                                            │    300 │ 174.645 μs │ 185.795 μs │  -6.0 % ✅ │     133 │      133 │  +0.0 % ➖ │
│                                            │   1000 │   1.642 ms │   1.779 ms │  -7.7 % ✅ │     803 │      803 │  +0.0 % ➖ │
│                                            │   3000 │  14.686 ms │  15.887 ms │  -7.6 % ✅ │    6701 │     6701 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → seq   │    100 │  19.516 μs │  21.029 μs │  -7.2 % ✅ │       2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 173.443 μs │ 187.018 μs │  -7.3 % ✅ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   1.948 ms │   2.132 ms │  -8.7 % ✅ │       2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  18.004 ms │  19.301 ms │  -6.7 % ✅ │       2 │        2 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → ka    │    100 │  43.761 μs │  45.224 μs │  -3.2 % ➖ │      88 │       88 │  +0.0 % ➖ │
│                                            │    300 │ 283.117 μs │ 292.725 μs │  -3.3 % ➖ │     106 │      106 │  +0.0 % ➖ │
│                                            │   1000 │   3.013 ms │   3.121 ms │  -3.5 % ➖ │     106 │      106 │  +0.0 % ➖ │
│                                            │   3000 │  27.073 ms │  27.942 ms │  -3.1 % ➖ │     108 │      108 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → poly  │    100 │  10.946 μs │  12.684 μs │ -13.7 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                            │    300 │  87.413 μs │ 101.549 μs │ -13.9 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                            │   1000 │ 961.579 μs │   1.127 ms │ -14.7 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                            │   3000 │   9.262 ms │  10.672 ms │ -13.2 % ✅ │       5 │        5 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → thrd  │    100 │  22.241 μs │  24.456 μs │  -9.1 % ✅ │      24 │       24 │  +0.0 % ➖ │
│                                            │    300 │ 150.961 μs │ 170.998 μs │ -11.7 % ✅ │      24 │       24 │  +0.0 % ➖ │
│                                            │   1000 │   1.607 ms │   1.812 ms │ -11.3 % ✅ │      24 │       24 │  +0.0 % ➖ │
│                                            │   3000 │  16.335 ms │  18.247 ms │ -10.5 % ✅ │      24 │       24 │  +0.0 % ➖ │
│ diffusion → static_edge → poly_buf → sprs  │    100 │  18.044 μs │  18.435 μs │  -2.1 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 155.660 μs │ 158.335 μs │  -1.7 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   1.754 ms │   1.780 ms │  -1.5 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  15.953 ms │  16.146 ms │  -1.2 % ➖ │       2 │        2 │  +0.0 % ➖ │
│ diffusion → static_edge → thrd_buf → seq   │    100 │  24.005 μs │  26.038 μs │  -7.8 % ✅ │      44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 191.717 μs │ 202.727 μs │  -5.4 % ✅ │      44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   1.682 ms │   1.849 ms │  -9.0 % ✅ │      44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  14.413 ms │  15.955 ms │  -9.7 % ✅ │      44 │       44 │  +0.0 % ➖ │
│ diffusion → ode_edge → assemble            │    100 │   2.134 ms │   2.110 ms │  +1.1 % ➖ │    8055 │     8011 │  +0.5 % ➖ │
│                                            │    300 │  17.802 ms │  17.576 ms │  +1.3 % ➖ │   68665 │    68620 │  +0.1 % ➖ │
│                                            │   1000 │ 214.017 ms │ 199.724 ms │  +7.2 % ❌ │  753272 │   753226 │  +0.0 % ➖ │
│                                            │   3000 │    2.329 s │    2.310 s │  +0.8 % ➖ │ 6759278 │  6759232 │  +0.0 % ➖ │
│ diffusion → ode_edge → seq → seq           │    100 │  41.707 μs │  41.698 μs │  +0.0 % ➖ │         │          │  +0.0 % ➖ │
│                                            │    300 │ 407.709 μs │ 393.963 μs │  +3.5 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   1000 │   4.571 ms │   4.526 ms │  +1.0 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   3000 │  41.680 ms │  42.046 ms │  -0.9 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion → ode_edge → ka → seq            │    100 │  53.128 μs │  51.315 μs │  +3.5 % ➖ │      71 │       67 │  +6.0 % ❌ │
│                                            │    300 │ 344.992 μs │ 327.269 μs │  +5.4 % ❌ │     156 │      133 │ +17.3 % ❌ │
│                                            │   1000 │   3.248 ms │   3.141 ms │  +3.4 % ➖ │    1049 │      803 │ +30.6 % ❌ │
│                                            │   3000 │  30.945 ms │  29.815 ms │  +3.8 % ➖ │    8900 │     6701 │ +32.8 % ❌ │
│ diffusion → ode_edge → poly → seq          │    100 │  34.074 μs │  35.065 μs │  -2.8 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 310.960 μs │ 318.843 μs │  -2.5 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   3.461 ms │   3.526 ms │  -1.9 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  32.412 ms │  33.163 ms │  -2.3 % ➖ │       2 │        2 │  +0.0 % ➖ │
│ diffusion → ode_edge → thrd → seq          │    100 │  39.503 μs │  38.972 μs │  +1.4 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 328.652 μs │ 320.126 μs │  +2.7 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   3.114 ms │   3.081 ms │  +1.1 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  29.264 ms │  29.126 ms │  +0.5 % ➖ │      44 │       44 │  +0.0 % ➖ │
│ diffusion → ode_edge → seq_buf → seq       │    100 │  40.826 μs │  41.798 μs │  -2.3 % ➖ │         │          │  +0.0 % ➖ │
│                                            │    300 │ 385.748 μs │ 397.399 μs │  -2.9 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   1000 │   4.385 ms │   4.523 ms │  -3.0 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   3000 │  41.031 ms │  42.310 ms │  -3.0 % ➖ │         │          │  +0.0 % ➖ │
│ diffusion → ode_edge → ka_buf → seq        │    100 │  55.824 μs │  56.766 μs │  -1.7 % ➖ │      67 │       67 │  +0.0 % ➖ │
│                                            │    300 │ 353.388 μs │ 358.406 μs │  -1.4 % ➖ │     133 │      133 │  +0.0 % ➖ │
│                                            │   1000 │   3.335 ms │   3.518 ms │  -5.2 % ✅ │     803 │      803 │  +0.0 % ➖ │
│                                            │   3000 │  31.343 ms │  32.982 ms │  -5.0 % ➖ │    6701 │     6701 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → seq      │    100 │  38.552 μs │  39.053 μs │  -1.3 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 349.802 μs │ 357.014 μs │  -2.0 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   3.895 ms │   3.931 ms │  -0.9 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  36.431 ms │  36.761 ms │  -0.9 % ➖ │       2 │        2 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → ka       │    100 │  64.911 μs │  66.213 μs │  -2.0 % ➖ │     106 │      106 │  +0.0 % ➖ │
│                                            │    300 │ 473.011 μs │ 480.875 μs │  -1.6 % ➖ │     106 │      106 │  +0.0 % ➖ │
│                                            │   1000 │   5.035 ms │   5.144 ms │  -2.1 % ➖ │     106 │      106 │  +0.0 % ➖ │
│                                            │   3000 │  45.708 ms │  47.609 ms │  -4.0 % ➖ │     108 │      108 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → poly     │    100 │  25.637 μs │  25.758 μs │  -0.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                            │    300 │ 223.216 μs │ 227.804 μs │  -2.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                            │   1000 │   2.397 ms │   2.435 ms │  -1.6 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                            │   3000 │  24.375 ms │  24.815 ms │  -1.8 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → thrd     │    100 │  36.889 μs │  37.570 μs │  -1.8 % ➖ │      24 │       24 │  +0.0 % ➖ │
│                                            │    300 │ 287.696 μs │ 294.598 μs │  -2.3 % ➖ │      24 │       24 │  +0.0 % ➖ │
│                                            │   1000 │   3.057 ms │   3.155 ms │  -3.1 % ➖ │      24 │       24 │  +0.0 % ➖ │
│                                            │   3000 │  32.424 ms │  33.318 ms │  -2.7 % ➖ │      24 │       24 │  +0.0 % ➖ │
│ diffusion → ode_edge → poly_buf → sprs     │    100 │  37.159 μs │  34.765 μs │  +6.9 % ❌ │       2 │        2 │  +0.0 % ➖ │
│                                            │    300 │ 307.443 μs │ 311.670 μs │  -1.4 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │   3.412 ms │   3.466 ms │  -1.6 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   3000 │  32.089 ms │  32.508 ms │  -1.3 % ➖ │       2 │        2 │  +0.0 % ➖ │
│ diffusion → ode_edge → thrd_buf → seq      │    100 │  44.814 μs │  45.706 μs │  -2.0 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │    300 │ 381.341 μs │ 376.381 μs │  +1.3 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │   3.252 ms │   3.396 ms │  -4.2 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │   3000 │  30.746 ms │  32.065 ms │  -4.1 % ➖ │      44 │       44 │  +0.0 % ➖ │
│ kuramoto → homogeneous → assemble          │    100 │ 127.036 μs │ 101.449 μs │ +25.2 % ❌ │     741 │      700 │  +5.9 % ❌ │
│                                            │   1000 │   1.395 ms │   1.240 ms │ +12.5 % ❌ │    5270 │     5223 │  +0.9 % ➖ │
│                                            │  10000 │   8.513 ms │   8.092 ms │  +5.2 % ❌ │   50280 │    50233 │  +0.1 % ➖ │
│                                            │ 100000 │  88.245 ms │  76.436 ms │ +15.5 % ❌ │  500292 │   500245 │  +0.0 % ➖ │
│ kuramoto → homogeneous → seq → seq         │    100 │   1.134 μs │   1.177 μs │  -3.6 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   1000 │  11.752 μs │  12.168 μs │  -3.4 % ➖ │         │          │  +0.0 % ➖ │
│                                            │  10000 │ 128.579 μs │ 133.779 μs │  -3.9 % ➖ │         │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.733 ms │   1.823 ms │  -4.9 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto → homogeneous → ka → seq          │    100 │   2.359 μs │   2.404 μs │  -1.9 % ➖ │      30 │       28 │  +7.1 % ❌ │
│                                            │   1000 │  14.016 μs │  13.610 μs │  +3.0 % ➖ │      32 │       30 │  +6.7 % ❌ │
│                                            │  10000 │ 151.221 μs │ 158.635 μs │  -4.7 % ➖ │     177 │      166 │  +6.6 % ❌ │
│                                            │ 100000 │   1.173 ms │   1.152 ms │  +1.8 % ➖ │     793 │      694 │ +14.3 % ❌ │
│ kuramoto → homogeneous → poly → seq        │    100 │   1.833 μs │   2.021 μs │  -9.3 % ✅ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │  12.082 μs │  12.769 μs │  -5.4 % ✅ │       2 │        2 │  +0.0 % ➖ │
│                                            │  10000 │ 114.514 μs │ 116.898 μs │  -2.0 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │ 100000 │   1.199 ms │   1.221 ms │  -1.8 % ➖ │       2 │        2 │  +0.0 % ➖ │
│ kuramoto → homogeneous → thrd → seq        │    100 │   6.773 μs │   6.141 μs │ +10.3 % ❌ │      44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │  17.583 μs │  17.633 μs │  -0.3 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │  10000 │ 121.576 μs │ 127.647 μs │  -4.8 % ➖ │      44 │       44 │  +0.0 % ➖ │
│                                            │ 100000 │   1.067 ms │   1.075 ms │  -0.8 % ➖ │      44 │       44 │  +0.0 % ➖ │
│ kuramoto → homogeneous → seq_buf → seq     │    100 │   1.284 μs │   1.457 μs │ -11.9 % ✅ │         │          │  +0.0 % ➖ │
│                                            │   1000 │  13.049 μs │  14.192 μs │  -8.1 % ✅ │         │          │  +0.0 % ➖ │
│                                            │  10000 │ 126.445 μs │ 148.476 μs │ -14.8 % ✅ │         │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.526 ms │   1.657 ms │  -7.9 % ✅ │         │          │  +0.0 % ➖ │
│ kuramoto → homogeneous → ka_buf → seq      │    100 │   2.570 μs │   2.762 μs │  -6.9 % ✅ │      28 │       28 │  +0.0 % ➖ │
│                                            │   1000 │  14.707 μs │  15.899 μs │  -7.5 % ✅ │      30 │       30 │  +0.0 % ➖ │
│                                            │  10000 │ 165.227 μs │ 179.765 μs │  -8.1 % ✅ │     166 │      166 │  +0.0 % ➖ │
│                                            │ 100000 │   1.289 ms │   1.409 ms │  -8.5 % ✅ │     694 │      694 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → seq    │    100 │   2.267 μs │   2.429 μs │  -6.7 % ✅ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │  15.769 μs │  16.481 μs │  -4.3 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │  10000 │ 151.241 μs │ 156.882 μs │  -3.6 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │ 100000 │   1.599 ms │   1.693 ms │  -5.6 % ✅ │       2 │        2 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → ka     │    100 │   3.498 μs │   3.730 μs │  -6.2 % ✅ │      22 │       22 │  +0.0 % ➖ │
│                                            │   1000 │  21.119 μs │  21.380 μs │  -1.2 % ➖ │      24 │       24 │  +0.0 % ➖ │
│                                            │  10000 │ 225.419 μs │ 222.614 μs │  +1.3 % ➖ │     106 │      106 │  +0.0 % ➖ │
│                                            │ 100000 │   2.250 ms │   2.305 ms │  -2.4 % ➖ │     106 │      106 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → poly   │    100 │   2.667 μs │   2.809 μs │  -5.0 % ✅ │       5 │        5 │  +0.0 % ➖ │
│                                            │   1000 │  14.438 μs │  14.877 μs │  -3.0 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                            │  10000 │ 139.780 μs │ 135.242 μs │  +3.4 % ➖ │       5 │        5 │  +0.0 % ➖ │
│                                            │ 100000 │   1.511 ms │   1.549 ms │  -2.5 % ➖ │       5 │        5 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → thrd   │    100 │   8.175 μs │   8.355 μs │  -2.2 % ➖ │      24 │       24 │  +0.0 % ➖ │
│                                            │   1000 │  24.316 μs │  25.047 μs │  -2.9 % ➖ │      24 │       24 │  +0.0 % ➖ │
│                                            │  10000 │ 199.451 μs │ 202.156 μs │  -1.3 % ➖ │      24 │       24 │  +0.0 % ➖ │
│                                            │ 100000 │   2.698 ms │   2.745 ms │  -1.7 % ➖ │      24 │       24 │  +0.0 % ➖ │
│ kuramoto → homogeneous → poly_buf → sprs   │    100 │   2.573 μs │   2.625 μs │  -2.0 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │   1000 │  18.544 μs │  18.965 μs │  -2.2 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │  10000 │ 180.205 μs │ 180.756 μs │  -0.3 % ➖ │       2 │        2 │  +0.0 % ➖ │
│                                            │ 100000 │   2.014 ms │   2.075 ms │  -2.9 % ➖ │       2 │        2 │  +0.0 % ➖ │
│ kuramoto → homogeneous → thrd_buf → seq    │    100 │   7.594 μs │   6.723 μs │ +13.0 % ❌ │      44 │       44 │  +0.0 % ➖ │
│                                            │   1000 │  20.749 μs │  23.364 μs │ -11.2 % ✅ │      44 │       44 │  +0.0 % ➖ │
│                                            │  10000 │ 151.562 μs │ 172.361 μs │ -12.1 % ✅ │      44 │       44 │  +0.0 % ➖ │
│                                            │ 100000 │   1.210 ms │   1.339 ms │  -9.7 % ✅ │      44 │       44 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → assemble        │    100 │ 162.692 μs │ 149.148 μs │  +9.1 % ❌ │     700 │      661 │  +5.9 % ❌ │
│                                            │   1000 │   1.082 ms │   1.060 ms │  +2.1 % ➖ │    4339 │     4292 │  +1.1 % ➖ │
│                                            │  10000 │  10.676 ms │  10.452 ms │  +2.1 % ➖ │   40361 │    40314 │  +0.1 % ➖ │
│                                            │ 100000 │ 104.511 ms │ 101.868 ms │  +2.6 % ➖ │  400381 │   400334 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → seq → seq       │    100 │   1.111 μs │   1.156 μs │  -3.9 % ➖ │         │          │  +0.0 % ➖ │
│                                            │   1000 │  11.507 μs │  11.537 μs │  -0.3 % ➖ │         │          │  +0.0 % ➖ │
│                                            │  10000 │ 122.458 μs │ 124.545 μs │  -1.7 % ➖ │         │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.658 ms │   1.688 ms │  -1.8 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto → heterogeneous → ka → seq        │    100 │   2.968 μs │   3.037 μs │  -2.3 % ➖ │      44 │       42 │  +4.8 % ➖ │
│                                            │   1000 │  13.666 μs │  13.791 μs │  -0.9 % ➖ │      45 │       43 │  +4.7 % ➖ │
│                                            │  10000 │ 158.335 μs │ 161.381 μs │  -1.9 % ➖ │     230 │      219 │  +5.0 % ❌ │
│                                            │ 100000 │   1.083 ms │   1.095 ms │  -1.0 % ➖ │     846 │      747 │ +13.3 % ❌ │
│ kuramoto → heterogeneous → poly → seq      │    100 │   2.028 μs │   2.240 μs │  -9.5 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                            │   1000 │  11.862 μs │  12.764 μs │  -7.1 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                            │  10000 │ 107.119 μs │ 112.570 μs │  -4.8 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                            │ 100000 │   1.169 ms │   1.179 ms │  -0.9 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → thrd → seq      │    100 │   8.907 μs │   9.207 μs │  -3.3 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                            │   1000 │  20.598 μs │  20.940 μs │  -1.6 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                            │  10000 │ 119.913 μs │ 123.470 μs │  -2.9 % ➖ │      66 │       66 │  +0.0 % ➖ │
│                                            │ 100000 │ 996.424 μs │   1.023 ms │  -2.6 % ➖ │      66 │       66 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → seq_buf → seq   │    100 │   1.170 μs │   1.261 μs │  -7.2 % ✅ │         │          │  +0.0 % ➖ │
│                                            │   1000 │  11.371 μs │  12.058 μs │  -5.7 % ✅ │         │          │  +0.0 % ➖ │
│                                            │  10000 │ 118.310 μs │ 124.352 μs │  -4.9 % ➖ │         │          │  +0.0 % ➖ │
│                                            │ 100000 │   1.319 ms │   1.383 ms │  -4.6 % ➖ │         │          │  +0.0 % ➖ │
│ kuramoto → heterogeneous → ka_buf → seq    │    100 │   2.982 μs │   3.140 μs │  -5.0 % ✅ │      42 │       42 │  +0.0 % ➖ │
│                                            │   1000 │  13.706 μs │  14.397 μs │  -4.8 % ➖ │      43 │       43 │  +0.0 % ➖ │
│                                            │  10000 │ 159.306 μs │ 168.624 μs │  -5.5 % ✅ │     219 │      219 │  +0.0 % ➖ │
│                                            │ 100000 │   1.088 ms │   1.172 ms │  -7.1 % ✅ │     747 │      747 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → seq  │    100 │   2.301 μs │   2.497 μs │  -7.8 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                            │   1000 │  12.754 μs │  13.640 μs │  -6.5 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                            │  10000 │ 115.635 μs │ 123.350 μs │  -6.3 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                            │ 100000 │   1.239 ms │   1.228 ms │  +0.9 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → ka   │    100 │   3.540 μs │   3.751 μs │  -5.6 % ✅ │      23 │       23 │  +0.0 % ➖ │
│                                            │   1000 │  17.943 μs │  18.896 μs │  -5.0 % ✅ │      25 │       25 │  +0.0 % ➖ │
│                                            │  10000 │ 192.939 μs │ 195.734 μs │  -1.4 % ➖ │     107 │      107 │  +0.0 % ➖ │
│                                            │ 100000 │   1.913 ms │   1.817 ms │  +5.3 % ❌ │     107 │      107 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → poly │    100 │   2.731 μs │   2.858 μs │  -4.4 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                            │   1000 │  11.947 μs │  11.761 μs │  +1.6 % ➖ │       6 │        6 │  +0.0 % ➖ │
│                                            │  10000 │ 100.647 μs │ 107.230 μs │  -6.1 % ✅ │       6 │        6 │  +0.0 % ➖ │
│                                            │ 100000 │   1.132 ms │   1.165 ms │  -2.8 % ➖ │       6 │        6 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → thrd │    100 │   8.060 μs │   8.416 μs │  -4.2 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                            │   1000 │  21.199 μs │  22.543 μs │  -6.0 % ✅ │      25 │       25 │  +0.0 % ➖ │
│                                            │  10000 │ 163.484 μs │ 167.923 μs │  -2.6 % ➖ │      25 │       25 │  +0.0 % ➖ │
│                                            │ 100000 │   2.201 ms │   2.248 ms │  -2.1 % ➖ │      25 │       25 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → poly_buf → sprs │    100 │   2.505 μs │   2.699 μs │  -7.2 % ✅ │       3 │        3 │  +0.0 % ➖ │
│                                            │   1000 │  14.838 μs │  15.479 μs │  -4.1 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                            │  10000 │ 139.590 μs │ 144.349 μs │  -3.3 % ➖ │       3 │        3 │  +0.0 % ➖ │
│                                            │ 100000 │   1.571 ms │   1.522 ms │  +3.2 % ➖ │       3 │        3 │  +0.0 % ➖ │
│ kuramoto → heterogeneous → thrd_buf → seq  │    100 │   9.087 μs │   9.699 μs │  -6.3 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                            │   1000 │  21.239 μs │  24.436 μs │ -13.1 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                            │  10000 │ 129.521 μs │ 138.629 μs │  -6.6 % ✅ │      66 │       66 │  +0.0 % ➖ │
│                                            │ 100000 │   1.022 ms │   1.026 ms │  -0.4 % ➖ │      66 │       66 │  +0.0 % ➖ │
└────────────────────────────────────────────┴────────┴────────────┴────────────┴────────────┴─────────┴──────────┴────────────┘

https://github.com/JuliaDynamics/NetworkDynamics.jl/actions/runs/11328542242/artifacts/2053428827

@hexaeder hexaeder merged commit 3858f6d into main Oct 14, 2024
7 checks passed
@hexaeder hexaeder deleted the hw/caching branch October 14, 2024 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

replace unbuffered execution
1 participant