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

Gather benchmark results for each CUB algorithm using different offset types #1787

Open
9 of 10 tasks
Tracked by #1454
jrhemstad opened this issue May 29, 2024 · 1 comment
Open
9 of 10 tasks
Tracked by #1454
Assignees

Comments

@jrhemstad
Copy link
Collaborator

jrhemstad commented May 29, 2024

In order to make an informed decision about the offset type solution, we would like to have a complete understanding of the impact on each CUB algorithm. Therefore, for each algorithm, we'd like a table that summarizes the following:

  • Performance with i32, u32, i64, u64 offset type
  • Verify that the algorithm still passes unit tests with this offset type
  • Report box plot of performance impacts across range of data types, input sizes, etc.
    • Can be summarized in table as min/max/median

Algorithms

System & environment

  • CTK 12.5
  • Ubuntu 22.04
  • H100

Benchmark data

device_exclusive_scan_max

Results
T{ct} Elements{io} I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 2^16 = 65536 8.91 9.367 105.13% 9.232 103.61% 9.359 105.04%
I8 2^20 = 1048576 13.494 13.368 99.07% 13.124 97.26% 13.187 97.72%
I8 2^24 = 16777216 53.134 52.893 99.55% 53.066 99.87% 53.063 99.87%
I8 2^28 = 268435456 729.843 729.989 100.02% 731.428 100.22% 731.704 100.25%
I16 2^16 = 65536 9.752 9.715 99.62% 9.792 100.41% 9.631 98.76%
I16 2^20 = 1048576 13.951 14.187 101.69% 14.069 100.85% 14.206 101.83%
I16 2^24 = 16777216 67.863 67.839 99.96% 67.01 98.74% 66.97 98.68%
I16 2^28 = 268435456 952.537 951.78 99.92% 978.596 102.74% 977.729 102.64%
I32 2^16 = 65536 9.769 9.261 94.80% 9.289 95.09% 9.176 93.93%
I32 2^20 = 1048576 15.022 14.511 96.60% 14.512 96.60% 14.564 96.95%
I32 2^24 = 16777216 99.151 98.738 99.58% 98.688 99.53% 98.659 99.50%
I32 2^28 = 268435456 1456 1456 100.00% 1455 99.93% 1455 99.93%
I64 2^16 = 65536 9.573 9.634 100.64% 9.478 99.01% 9.584 100.11%
I64 2^20 = 1048576 19.037 18.873 99.14% 19.032 99.97% 18.964 99.62%
I64 2^24 = 16777216 171.205 171.247 100.02% 171.164 99.98% 171.331 100.07%
I64 2^28 = 268435456 2631 2632 100.04% 2631 100.00% 2630 99.96%
I128 2^16 = 65536 16.374 16.465 100.56% 16.523 100.91% 16.542 101.03%
I128 2^20 = 1048576 65.597 65.4 99.70% 65.036 99.14% 65.177 99.36%
I128 2^24 = 16777216 868.064 868.039 100.00% 866.639 99.84% 867.766 99.97%
I128 2^28 = 268435456 13727 13724 99.98% 13715 99.91% 13716 99.92%
F32 2^16 = 65536 9.441 9.475 100.36% 9.38 99.35% 9.433 99.92%
F32 2^20 = 1048576 14.47 14.477 100.05% 14.584 100.79% 14.568 100.68%
F32 2^24 = 16777216 98.968 98.861 99.89% 98.991 100.02% 99.018 100.05%
F32 2^28 = 268435456 1459 1459 100.00% 1459 100.00% 1459 100.00%
F64 2^16 = 65536 9.767 9.579 98.08% 9.485 97.11% 9.711 99.43%
F64 2^20 = 1048576 18.928 18.857 99.62% 19.034 100.56% 18.935 100.04%
F64 2^24 = 16777216 173.845 173.919 100.04% 173.85 100.00% 173.954 100.06%
F64 2^28 = 268435456 2695 2695 100.00% 2695 100.00% 2694 99.96%
C64 2^16 = 65536 67.742 67.006 98.91% 66.853 98.69% 67.309 99.36%
C64 2^20 = 1048576 114.314 114.531 100.19% 115.019 100.62% 115.035 100.63%
C64 2^24 = 16777216 1165 1162 99.74% 1155 99.14% 1150 98.71%
C64 2^28 = 268435456 17419 17458 100.22% 17380 99.78% 17475 100.32%

device_exclusive_scan_sum

Results
T{ct} Elements{io} I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 2^16 = 65536 8.761 9.183 104.82% 9.104 103.92% 9.29 106.04%
I8 2^20 = 1048576 12.446 12.639 101.55% 12.35 99.23% 12.103 97.24%
I8 2^24 = 16777216 49.837 50.075 100.48% 52.084 104.51% 52.143 104.63%
I8 2^28 = 268435456 649.015 650.869 100.29% 685.588 105.64% 686.283 105.74%
I16 2^16 = 65536 9.739 9.557 98.13% 9.748 100.09% 9.58 98.37%
I16 2^20 = 1048576 13.246 13.363 100.88% 13.202 99.67% 13.321 100.57%
I16 2^24 = 16777216 60.795 60.863 100.11% 60.789 99.99% 60.878 100.14%
I16 2^28 = 268435456 799.135 798.496 99.92% 799.297 100.02% 799.511 100.05%
I32 2^16 = 65536 9.598 9.212 95.98% 9.342 97.33% 9.176 95.60%
I32 2^20 = 1048576 14.984 14.715 98.20% 14.78 98.64% 14.795 98.74%
I32 2^24 = 16777216 90.713 90.552 99.82% 90.508 99.77% 90.405 99.66%
I32 2^28 = 268435456 1366 1366 100.00% 1367 100.07% 1366 100.00%
I64 2^16 = 65536 9.714 9.792 100.80% 9.626 99.09% 9.938 102.31%
I64 2^20 = 1048576 17.97 17.932 99.79% 18.348 102.10% 18.371 102.23%
I64 2^24 = 16777216 160.284 160.186 99.94% 160.507 100.14% 160.582 100.19%
I64 2^28 = 268435456 2476 2475 99.96% 2476 100.00% 2476 100.00%
I128 2^16 = 65536 14.439 14.311 99.11% 14.591 101.05% 14.559 100.83%
I128 2^20 = 1048576 38.383 38.23 99.60% 38.186 99.49% 38.178 99.47%
I128 2^24 = 16777216 388.32 388.111 99.95% 388.071 99.94% 387.488 99.79%
I128 2^28 = 268435456 6036 6034 99.97% 6027 99.85% 6026 99.83%
F32 2^16 = 65536 9.63 9.58 99.48% 9.682 100.54% 9.694 100.66%
F32 2^20 = 1048576 14.878 14.867 99.93% 14.885 100.05% 14.976 100.66%
F32 2^24 = 16777216 90.628 90.576 99.94% 90.608 99.98% 90.615 99.99%
F32 2^28 = 268435456 1364 1364 100.00% 1363 99.93% 1363 99.93%
F64 2^16 = 65536 10.154 9.662 95.15% 9.764 96.16% 9.629 94.83%
F64 2^20 = 1048576 18.582 18.327 98.63% 18.171 97.79% 18.377 98.90%
F64 2^24 = 16777216 161.011 160.632 99.76% 160.657 99.78% 160.797 99.87%
F64 2^28 = 268435456 2479 2480 100.04% 2479 100.00% 2479 100.00%
C64 2^16 = 65536 12.738 12.733 99.96% 12.641 99.24% 12.891 101.20%
C64 2^20 = 1048576 29.051 28.972 99.73% 29.436 101.33% 29.412 101.24%
C64 2^24 = 16777216 291.342 291.891 100.19% 291.113 99.92% 291.2 99.95%
C64 2^28 = 268435456 4543 4550 100.15% 4530 99.71% 4530 99.71%

device_exclusive_scan_by_key

Results
KeyT{ct} ValueT{ct} Elements{io} I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 I8 2^16 = 65536 9.966 9.955 99.89% 10.134 101.69% 10.314 103.49%
I8 I8 2^20 = 1048576 14.122 14.316 101.37% 14.502 102.69% 14.51 102.75%
I8 I8 2^24 = 16777216 69.589 70.034 100.64% 75.626 108.68% 75.465 108.44%
I8 I8 2^28 = 268435456 943.499 947.544 100.43% 1050 111.29% 1047 110.97%
I8 I16 2^16 = 65536 11.669 11.72 100.44% 12.03 103.09% 12.053 103.29%
I8 I16 2^20 = 1048576 15.11 15.129 100.13% 15.401 101.93% 15.408 101.97%
I8 I16 2^24 = 16777216 87.262 80.269 91.99% 89.469 102.53% 89.615 102.70%
I8 I16 2^28 = 268435456 1176 1050 89.29% 1210 102.89% 1213 103.15%
I8 I32 2^16 = 65536 11.071 10.667 96.35% 11.084 100.12% 10.807 97.62%
I8 I32 2^20 = 1048576 17.406 17.274 99.24% 17.431 100.14% 17.272 99.23%
I8 I32 2^24 = 16777216 102.249 102.099 99.85% 111.93 109.47% 105.019 102.71%
I8 I32 2^28 = 268435456 1482 1482 100.00% 1594 107.56% 1517 102.36%
I8 I64 2^16 = 65536 10.801 10.853 100.48% 12.837 118.85% 12.802 118.53%
I8 I64 2^20 = 1048576 20.325 20.36 100.17% 27.543 135.51% 27.407 134.84%
I8 I64 2^24 = 16777216 175.416 175.46 100.03% 230.256 131.26% 228.794 130.43%
I8 I64 2^28 = 268435456 2628 2628 100.00% 3416 129.98% 3393 129.11%
I8 I128 2^16 = 65536 15.027 15.268 101.60% 15.411 102.56% 15.486 103.05%
I8 I128 2^20 = 1048576 39.536 39.466 99.82% 39.675 100.35% 39.816 100.71%
I8 I128 2^24 = 16777216 377.923 377.774 99.96% 379.113 100.31% 379.812 100.50%
I8 I128 2^28 = 268435456 5820 5822 100.03% 5841 100.36% 5854 100.58%
I16 I8 2^16 = 65536 10.173 10.126 99.54% 10.27 100.95% 10.328 101.52%
I16 I8 2^20 = 1048576 15.17 15.142 99.82% 15.316 100.96% 15.341 101.13%
I16 I8 2^24 = 16777216 76.868 76.437 99.44% 81.38 105.87% 81.35 105.83%
I16 I8 2^28 = 268435456 1034 1025 99.13% 1115 107.83% 1116 107.93%
I16 I16 2^16 = 65536 10.806 10.864 100.54% 10.857 100.47% 10.856 100.46%
I16 I16 2^20 = 1048576 15.546 15.759 101.37% 15.638 100.59% 15.722 101.13%
I16 I16 2^24 = 16777216 86.469 89.01 102.94% 89.666 103.70% 89.738 103.78%
I16 I16 2^28 = 268435456 1135 1162 102.38% 1183 104.23% 1183 104.23%
I16 I32 2^16 = 65536 10.925 11.328 103.69% 11.424 104.57% 11.362 104.00%
I16 I32 2^20 = 1048576 16.917 16.889 99.83% 17.317 102.36% 17.363 102.64%
I16 I32 2^24 = 16777216 107.751 107.719 99.97% 113.994 105.79% 113.756 105.57%
I16 I32 2^28 = 268435456 1563 1564 100.06% 1639 104.86% 1639 104.86%
I16 I64 2^16 = 65536 10.978 11.051 100.66% 12.78 116.41% 12.857 117.12%
I16 I64 2^20 = 1048576 20.974 20.938 99.83% 28.242 134.65% 28.125 134.09%
I16 I64 2^24 = 16777216 183.087 182.974 99.94% 233.706 127.65% 232.591 127.04%
I16 I64 2^28 = 268435456 2743 2743 100.00% 3458 126.07% 3438 125.34%
I16 I128 2^16 = 65536 15.678 15.674 99.97% 15.272 97.41% 15.507 98.91%
I16 I128 2^20 = 1048576 37.86 37.859 100.00% 40.635 107.33% 40.816 107.81%
I16 I128 2^24 = 16777216 359.871 360.242 100.10% 381.626 106.05% 382.443 106.27%
I16 I128 2^28 = 268435456 5497 5496 99.98% 5877 106.91% 5892 107.19%
I32 I8 2^16 = 65536 9.931 10.024 100.94% 10.258 103.29% 10.323 103.95%
I32 I8 2^20 = 1048576 15.61 15.709 100.63% 16.015 102.59% 16.033 102.71%
I32 I8 2^24 = 16777216 89.786 89.898 100.12% 93.634 104.29% 93.342 103.96%
I32 I8 2^28 = 268435456 1151 1152 100.09% 1228 106.69% 1222 106.17%
I32 I16 2^16 = 65536 10.724 10.8 100.71% 11.165 104.11% 10.934 101.96%
I32 I16 2^20 = 1048576 16.455 16.509 100.33% 16.848 102.39% 16.875 102.55%
I32 I16 2^24 = 16777216 100.294 100.195 99.90% 108.027 107.71% 108.048 107.73%
I32 I16 2^28 = 268435456 1401 1400 99.93% 1446 103.21% 1446 103.21%
I32 I32 2^16 = 65536 11.267 11.242 99.78% 11.423 101.38% 11.448 101.61%
I32 I32 2^20 = 1048576 18.348 18.48 100.72% 18.916 103.10% 18.586 101.30%
I32 I32 2^24 = 16777216 129.095 129.248 100.12% 136.07 105.40% 135.907 105.28%
I32 I32 2^28 = 268435456 1903 1904 100.05% 2044 107.41% 2043 107.36%
I32 I64 2^16 = 65536 11.749 11.85 100.86% 13.584 115.62% 13.575 115.54%
I32 I64 2^20 = 1048576 22.621 22.389 98.97% 27.752 122.68% 27.733 122.60%
I32 I64 2^24 = 16777216 197.436 197.411 99.99% 230.238 116.61% 230.167 116.58%
I32 I64 2^28 = 268435456 2937 2937 100.00% 3478 118.42% 3477 118.39%
I32 I128 2^16 = 65536 16.042 16.083 100.26% 15.575 97.09% 15.558 96.98%
I32 I128 2^20 = 1048576 38.876 39.092 100.56% 41.437 106.59% 41.631 107.09%
I32 I128 2^24 = 16777216 372.169 372.433 100.07% 395.638 106.31% 397.024 106.68%
I32 I128 2^28 = 268435456 5685 5687 100.04% 6082 106.98% 6101 107.32%
I64 I8 2^16 = 65536 10.476 10.437 99.63% 10.896 104.01% 10.877 103.83%
I64 I8 2^20 = 1048576 20.089 20.117 100.14% 20.423 101.66% 20.329 101.19%
I64 I8 2^24 = 16777216 128.927 129.206 100.22% 130.882 101.52% 131.046 101.64%
I64 I8 2^28 = 268435456 1731 1732 100.06% 1747 100.92% 1749 101.04%
I64 I16 2^16 = 65536 11.073 11.138 100.59% 11.432 103.24% 11.365 102.64%
I64 I16 2^20 = 1048576 21.17 21.208 100.18% 21.51 101.61% 22.357 105.61%
I64 I16 2^24 = 16777216 143.401 143.974 100.40% 144.905 101.05% 161.939 112.93%
I64 I16 2^28 = 268435456 2128 2132 100.19% 2135 100.33% 2299 108.04%
I64 I32 2^16 = 65536 11.304 11.222 99.27% 11.419 101.02% 11.289 99.87%
I64 I32 2^20 = 1048576 22.771 22.896 100.55% 22.949 100.78% 22.949 100.78%
I64 I32 2^24 = 16777216 170.41 170.411 100.00% 172.953 101.49% 172.9 101.46%
I64 I32 2^28 = 268435456 2528 2528 100.00% 2586 102.29% 2586 102.29%
I64 I64 2^16 = 65536 12.071 11.682 96.78% 13.468 111.57% 13.545 112.21%
I64 I64 2^20 = 1048576 26.026 25.483 97.91% 32.698 125.64% 32.799 126.02%
I64 I64 2^24 = 16777216 241.63 237.496 98.29% 274.646 113.66% 274.758 113.71%
I64 I64 2^28 = 268435456 3644 3571 98.00% 4188 114.93% 4188 114.93%
I64 I128 2^16 = 65536 15.811 15.962 100.96% 16.165 102.24% 16.484 104.26%
I64 I128 2^20 = 1048576 43.025 43.275 100.58% 44.472 103.36% 44.591 103.64%
I64 I128 2^24 = 16777216 421.234 422.094 100.20% 427.858 101.57% 427.764 101.55%
I64 I128 2^28 = 268435456 6493 6496 100.05% 6592 101.52% 6590 101.49%
I128 I8 2^16 = 65536 11.924 12.062 101.16% 12.055 101.10% 12.03 100.89%
I128 I8 2^20 = 1048576 28.097 28.258 100.57% 28.88 102.79% 29.01 103.25%
I128 I8 2^24 = 16777216 204.094 204.037 99.97% 223.889 109.70% 224.014 109.76%
I128 I8 2^28 = 268435456 3013 3011 99.93% 3273 108.63% 3273 108.63%
I128 I16 2^16 = 65536 11.774 11.791 100.14% 12.181 103.46% 12.259 104.12%
I128 I16 2^20 = 1048576 27.531 27.644 100.41% 30.256 109.90% 30.261 109.92%
I128 I16 2^24 = 16777216 220.072 220.154 100.04% 286.454 130.16% 286.554 130.21%
I128 I16 2^28 = 268435456 3264 3263 99.97% 4292 131.50% 4294 131.56%
I128 I32 2^16 = 65536 11.991 12.005 100.12% 12.303 102.60% 11.974 99.86%
I128 I32 2^20 = 1048576 29.531 29.567 100.12% 29.953 101.43% 29.941 101.39%
I128 I32 2^24 = 16777216 256.994 257.008 100.01% 257.249 100.10% 257.51 100.20%
I128 I32 2^28 = 268435456 3874 3875 100.03% 3877 100.08% 3882 100.21%
I128 I64 2^16 = 65536 12.453 12.52 100.54% 14.781 118.69% 14.398 115.62%
I128 I64 2^20 = 1048576 34.415 34.418 100.01% 41.487 120.55% 41.383 120.25%
I128 I64 2^24 = 16777216 321.329 321.324 100.00% 364.538 113.45% 364.233 113.35%
I128 I64 2^28 = 268435456 4919 4920 100.02% 5632 114.49% 5626 114.37%
I128 I128 2^16 = 65536 16.962 16.815 99.13% 17.058 100.57% 17.051 100.52%
I128 I128 2^20 = 1048576 49.078 48.766 99.36% 49.328 100.51% 49.362 100.58%
I128 I128 2^24 = 16777216 494.191 493.485 99.86% 495.389 100.24% 494.93 100.15%
I128 I128 2^28 = 268435456 7616 7609 99.91% 7631 100.20% 7628 100.16%
F32 I8 2^16 = 65536 10.01 10.018 100.08% 10.311 103.01% 10.226 102.16%
F32 I8 2^20 = 1048576 15.637 15.766 100.82% 15.987 102.24% 16.075 102.80%
F32 I8 2^24 = 16777216 90.437 90.606 100.19% 94.074 104.02% 93.835 103.76%
F32 I8 2^28 = 268435456 1160 1162 100.17% 1235 106.47% 1229 105.95%
F32 I16 2^16 = 65536 10.873 10.908 100.32% 11.113 102.21% 11.053 101.66%
F32 I16 2^20 = 1048576 16.481 16.829 102.11% 17.268 104.78% 17.231 104.55%
F32 I16 2^24 = 16777216 100.243 100.202 99.96% 118.08 117.79% 118.123 117.84%
F32 I16 2^28 = 268435456 1402 1400 99.86% 1561 111.34% 1562 111.41%
F32 I32 2^16 = 65536 11.224 11.193 99.72% 11.439 101.92% 11.449 102.00%
F32 I32 2^20 = 1048576 18.456 18.508 100.28% 18.907 102.44% 18.679 101.21%
F32 I32 2^24 = 16777216 129.388 129.414 100.02% 136.287 105.33% 136.065 105.16%
F32 I32 2^28 = 268435456 1906 1906 100.00% 2046 107.35% 2045 107.29%
F32 I64 2^16 = 65536 11.476 11.746 102.35% 13.369 116.50% 13.303 115.92%
F32 I64 2^20 = 1048576 22.167 22.174 100.03% 27.492 124.02% 27.588 124.46%
F32 I64 2^24 = 16777216 197.273 197.355 100.04% 230.205 116.69% 230.098 116.64%
F32 I64 2^28 = 268435456 2938 2939 100.03% 3481 118.48% 3479 118.41%
F32 I128 2^16 = 65536 15.786 15.551 98.51% 15.335 97.14% 15.209 96.34%
F32 I128 2^20 = 1048576 38.731 38.839 100.28% 41.108 106.14% 41.236 106.47%
F32 I128 2^24 = 16777216 372.851 372.969 100.03% 396.325 106.30% 396.85 106.44%
F32 I128 2^28 = 268435456 5694 5692 99.96% 6089 106.94% 6101 107.15%
F64 I8 2^16 = 65536 10.333 10.44 101.04% 10.601 102.59% 10.578 102.37%
F64 I8 2^20 = 1048576 19.716 20.031 101.60% 20.831 105.66% 20.091 101.90%
F64 I8 2^24 = 16777216 127.413 127.423 100.01% 131.051 102.86% 130.267 102.24%
F64 I8 2^28 = 268435456 1721 1721 100.00% 1734 100.76% 1731 100.58%
F64 I16 2^16 = 65536 10.895 10.911 100.15% 11.085 101.74% 11.121 102.07%
F64 I16 2^20 = 1048576 19.946 20.095 100.75% 22.012 110.36% 21.364 107.11%
F64 I16 2^24 = 16777216 137.948 137.941 99.99% 160.902 116.64% 144.365 104.65%
F64 I16 2^28 = 268435456 2035 2035 100.00% 2295 112.78% 2133 104.82%
F64 I32 2^16 = 65536 10.794 10.83 100.33% 11.078 102.63% 11.019 102.08%
F64 I32 2^20 = 1048576 22.374 22.355 99.92% 22.493 100.53% 22.509 100.60%
F64 I32 2^24 = 16777216 170.073 170.329 100.15% 172.606 101.49% 172.667 101.53%
F64 I32 2^28 = 268435456 2526 2525 99.96% 2583 102.26% 2584 102.30%
F64 I64 2^16 = 65536 11.606 11.342 97.73% 13.109 112.95% 13.707 118.10%
F64 I64 2^20 = 1048576 25.669 27.298 106.35% 32.124 125.15% 33.545 130.68%
F64 I64 2^24 = 16777216 241.189 244.218 101.26% 272.85 113.13% 279.738 115.98%
F64 I64 2^28 = 268435456 3641 3715 102.03% 4177 114.72% 4199 115.33%
F64 I128 2^16 = 65536 15.502 15.755 101.63% 16.087 103.77% 16.008 103.26%
F64 I128 2^20 = 1048576 42.598 43.033 101.02% 44.084 103.49% 44.292 103.98%
F64 I128 2^24 = 16777216 420.54 420.988 100.11% 426.709 101.47% 426.821 101.49%
F64 I128 2^28 = 268435456 6481 6486 100.08% 6578 101.50% 6576 101.47%
C64 I8 2^16 = 65536 10.632 10.696 100.60% 10.63 99.98% 10.733 100.95%
C64 I8 2^20 = 1048576 20.116 20.194 100.39% 21.653 107.64% 20.631 102.56%
C64 I8 2^24 = 16777216 129.099 128.937 99.87% 131.051 101.51% 130.131 100.80%
C64 I8 2^28 = 268435456 1731 1731 100.00% 1730 99.94% 1731 100.00%
C64 I16 2^16 = 65536 11.144 11.178 100.31% 11.437 102.63% 11.368 102.01%
C64 I16 2^20 = 1048576 20.543 20.479 99.69% 21.509 104.70% 22.413 109.10%
C64 I16 2^24 = 16777216 138.223 138.321 100.07% 144.949 104.87% 162.12 117.29%
C64 I16 2^28 = 268435456 2038 2038 100.00% 2137 104.86% 2301 112.90%
C64 I32 2^16 = 65536 11.346 11.251 99.16% 11.397 100.45% 11.383 100.33%
C64 I32 2^20 = 1048576 22.562 22.727 100.73% 22.861 101.33% 22.787 101.00%
C64 I32 2^24 = 16777216 170.436 170.499 100.04% 172.914 101.45% 172.916 101.46%
C64 I32 2^28 = 268435456 2528 2528 100.00% 2586 102.29% 2586 102.29%
C64 I64 2^16 = 65536 11.656 11.707 100.44% 13.545 116.21% 13.565 116.38%
C64 I64 2^20 = 1048576 25.454 25.372 99.68% 32.804 128.88% 33.026 129.75%
C64 I64 2^24 = 16777216 237.429 237.381 99.98% 276.199 116.33% 276.845 116.60%
C64 I64 2^28 = 268435456 3570 3571 100.03% 4194 117.48% 4200 117.65%
C64 I128 2^16 = 65536 15.752 15.865 100.72% 16.34 103.73% 15.994 101.54%
C64 I128 2^20 = 1048576 43.371 43.177 99.55% 44.374 102.31% 44.2 101.91%
C64 I128 2^24 = 16777216 421.998 421.845 99.96% 429.056 101.67% 427.997 101.42%
C64 I128 2^28 = 268435456

device_select_flagged

Results
T{ct} IsInPlace{ct} Elements{io} Entropy I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 FALSE 2^16 = 65536 1 9.995 10.418 104.23% 9.296 93.01% 9.905 99.10%
I8 FALSE 2^20 = 1048576 1 12.702 12.88 101.40% 13.763 108.35% 14.044 110.57%
I8 FALSE 2^24 = 16777216 1 60.62 60.536 99.86% 77.011 127.04% 77.395 127.67%
I8 FALSE 2^28 = 268435456 1 792.492 788.481 99.49% 1096 138.30% 1096 138.30%
I8 FALSE 2^16 = 65536 0.544 9.879 10.329 104.56% 9.201 93.14% 9.762 98.82%
I8 FALSE 2^20 = 1048576 0.544 12.48 12.797 102.54% 13.524 108.37% 13.894 111.33%
I8 FALSE 2^24 = 16777216 0.544 58.75 59.06 100.53% 75.243 128.07% 75.436 128.40%
I8 FALSE 2^28 = 268435456 0.544 764.061 763.908 99.98% 1063 139.13% 1063 139.13%
I8 FALSE 2^16 = 65536 0 9.628 10.18 105.73% 9.088 94.39% 9.159 95.13%
I8 FALSE 2^20 = 1048576 0 12.057 12.345 102.39% 13.783 114.32% 13.394 111.09%
I8 FALSE 2^24 = 16777216 0 52.13 51.971 99.69% 69.871 134.03% 69.613 133.54%
I8 FALSE 2^28 = 268435456 0 629.964 626.662 99.48% 950.144 150.83% 949.408 150.71%
I8 TRUE 2^16 = 65536 1 10.953 11.104 101.38% 10.385 94.81% 10.351 94.50%
I8 TRUE 2^20 = 1048576 1 13.73 13.715 99.89% 16.256 118.40% 15.897 115.78%
I8 TRUE 2^24 = 16777216 1 67.152 67.074 99.88% 103.498 154.12% 103.254 153.76%
I8 TRUE 2^28 = 268435456 1 916.669 910.642 99.34% 1531 167.02% 1531 167.02%
I8 TRUE 2^16 = 65536 0.544 11.06 10.677 96.54% 10.391 93.95% 10.142 91.70%
I8 TRUE 2^20 = 1048576 0.544 13.832 13.625 98.50% 16.04 115.96% 15.671 113.30%
I8 TRUE 2^24 = 16777216 0.544 65.984 65.799 99.72% 101.356 153.61% 101.077 153.18%
I8 TRUE 2^28 = 268435456 0.544 887.126 886.643 99.95% 1494 168.41% 1494 168.41%
I8 TRUE 2^16 = 65536 0 10.915 10.488 96.09% 10.091 92.45% 9.941 91.08%
I8 TRUE 2^20 = 1048576 0 13.441 13.252 98.59% 16.05 119.41% 15.69 116.73%
I8 TRUE 2^24 = 16777216 0 59.633 59.23 99.32% 95.516 160.17% 95.341 159.88%
I8 TRUE 2^28 = 268435456 0 757.158 754.197 99.61% 1380 182.26% 1380 182.26%
I16 FALSE 2^16 = 65536 1 10.589 10.877 102.72% 9.598 90.64% 9.529 89.99%
I16 FALSE 2^20 = 1048576 1 13.842 13.736 99.23% 14.541 105.05% 14.236 102.85%
I16 FALSE 2^24 = 16777216 1 77.725 77.586 99.82% 83.402 107.30% 83.178 107.02%
I16 FALSE 2^28 = 268435456 1 989.541 989.898 100.04% 1166 117.83% 1166 117.83%
I16 FALSE 2^16 = 65536 0.544 10.613 10.351 97.53% 9.685 91.26% 9.475 89.28%
I16 FALSE 2^20 = 1048576 0.544 14.054 13.832 98.42% 14.463 102.91% 14.13 100.54%
I16 FALSE 2^24 = 16777216 0.544 72.557 72.084 99.35% 80.977 111.60% 80.598 111.08%
I16 FALSE 2^28 = 268435456 0.544 907.356 905.404 99.78% 1133 124.87% 1132 124.76%
I16 FALSE 2^16 = 65536 0 10.129 9.929 98.03% 9.414 92.94% 9.196 90.79%
I16 FALSE 2^20 = 1048576 0 13.7 13.235 96.61% 14.139 103.20% 13.804 100.76%
I16 FALSE 2^24 = 16777216 0 64.863 64.404 99.29% 74.501 114.86% 74.266 114.50%
I16 FALSE 2^28 = 268435456 0 683.506 681.977 99.78% 984.721 144.07% 984.309 144.01%
I16 TRUE 2^16 = 65536 1 11.395 11.02 96.71% 10.361 90.93% 10.274 90.16%
I16 TRUE 2^20 = 1048576 1 15.223 15.025 98.70% 16.78 110.23% 16.405 107.76%
I16 TRUE 2^24 = 16777216 1 82.89 82.844 99.94% 110.122 132.85% 109.795 132.46%
I16 TRUE 2^28 = 268435456 1 1082 1084 100.18% 1620 149.72% 1619 149.63%
I16 TRUE 2^16 = 65536 0.544 11.329 11.059 97.62% 10.515 92.81% 10.201 90.04%
I16 TRUE 2^20 = 1048576 0.544 15.118 14.849 98.22% 16.625 109.97% 16.639 110.06%
I16 TRUE 2^24 = 16777216 0.544 78.322 77.925 99.49% 107.371 137.09% 107.354 137.07%
I16 TRUE 2^28 = 268435456 0.544 1021 1021 100.00% 1580 154.75% 1580 154.75%
I16 TRUE 2^16 = 65536 0 11.023 10.558 95.78% 10.025 90.95% 10.188 92.42%
I16 TRUE 2^20 = 1048576 0 14.565 14.311 98.26% 16.133 110.77% 16.424 112.76%
I16 TRUE 2^24 = 16777216 0 69.429 69.019 99.41% 100.17 144.28% 100.298 144.46%
I16 TRUE 2^28 = 268435456 0 820.309 819.437 99.89% 1420 173.11% 1420 173.11%
I32 FALSE 2^16 = 65536 1 10.112 10.135 100.23% 9.77 96.62% 9.695 95.88%
I32 FALSE 2^20 = 1048576 1 15.672 15.314 97.72% 16.033 102.30% 15.757 100.54%
I32 FALSE 2^24 = 16777216 1 104.585 104.221 99.65% 109.972 105.15% 109.806 104.99%
I32 FALSE 2^28 = 268435456 1 1516 1516 100.00% 1625 107.19% 1625 107.19%
I32 FALSE 2^16 = 65536 0.544 10.246 10.015 97.75% 9.732 94.98% 9.509 92.81%
I32 FALSE 2^20 = 1048576 0.544 15.771 15.206 96.42% 15.964 101.22% 15.502 98.29%
I32 FALSE 2^24 = 16777216 0.544 93.649 93.243 99.57% 98.324 104.99% 97.967 104.61%
I32 FALSE 2^28 = 268435456 0.544 1267 1267 100.00% 1358 107.18% 1358 107.18%
I32 FALSE 2^16 = 65536 0 9.66 9.541 98.77% 9.822 101.68% 9.787 101.31%
I32 FALSE 2^20 = 1048576 0 15.187 14.599 96.13% 15.234 100.31% 15.613 102.81%
I32 FALSE 2^24 = 16777216 0 78.986 78.558 99.46% 84.244 106.66% 84.49 106.97%
I32 FALSE 2^28 = 268435456 0 849.659 849.495 99.98% 1054 124.05% 1055 124.17%
I32 TRUE 2^16 = 65536 1 10.962 11.097 101.23% 10.425 95.10% 10.702 97.63%
I32 TRUE 2^20 = 1048576 1 17.145 17.019 99.27% 17.912 104.47% 18.234 106.35%
I32 TRUE 2^24 = 16777216 1 110.155 110.144 99.99% 130.047 118.06% 130.211 118.21%
I32 TRUE 2^28 = 268435456 1 1589 1589 100.00% 1906 119.95% 1907 120.01%
I32 TRUE 2^16 = 65536 0.544 10.684 11.006 103.01% 10.296 96.37% 10.333 96.71%
I32 TRUE 2^20 = 1048576 0.544 16.67 16.897 101.36% 17.654 105.90% 18.026 108.13%
I32 TRUE 2^24 = 16777216 0.544 99.444 99.745 100.30% 121.45 122.13% 121.81 122.49%
I32 TRUE 2^28 = 268435456 0.544 1330 1330 100.00% 1757 132.11% 1758 132.18%
I32 TRUE 2^16 = 65536 0 10.111 10.421 103.07% 10.255 101.42% 10.258 101.45%
I32 TRUE 2^20 = 1048576 0 15.683 16.06 102.40% 17.414 111.04% 17.773 113.33%
I32 TRUE 2^24 = 16777216 0 84.553 84.825 100.32% 108.812 128.69% 109.119 129.05%
I32 TRUE 2^28 = 268435456 0 966.425 966.334 99.99% 1498 155.00% 1499 155.11%
I64 FALSE 2^16 = 65536 1 10.445 10.184 97.50% 10.246 98.09% 10 95.74%
I64 FALSE 2^20 = 1048576 1 20.121 19.964 99.22% 20.442 101.60% 20.044 99.62%
I64 FALSE 2^24 = 16777216 1 180.796 181.002 100.11% 191.234 105.77% 191.101 105.70%
I64 FALSE 2^28 = 268435456 1 2744 2747 100.11% 2954 107.65% 2954 107.65%
I64 FALSE 2^16 = 65536 0.544 10.174 10.651 104.69% 10.187 100.13% 9.777 96.10%
I64 FALSE 2^20 = 1048576 0.544 19.672 19.795 100.63% 20.188 102.62% 19.834 100.82%
I64 FALSE 2^24 = 16777216 0.544 152.102 152.387 100.19% 161.845 106.41% 161.532 106.20%
I64 FALSE 2^28 = 268435456 0.544 2246 2246 100.00% 2419 107.70% 2419 107.70%
I64 FALSE 2^16 = 65536 0 9.368 9.909 105.77% 10.048 107.26% 9.707 103.62%
I64 FALSE 2^20 = 1048576 0 18.443 18.468 100.14% 19.652 106.56% 19.261 104.44%
I64 FALSE 2^24 = 16777216 0 112.768 112.864 100.09% 126.92 112.55% 126.679 112.34%
I64 FALSE 2^28 = 268435456 0 1384 1384 100.00% 1690 122.11% 1690 122.11%
I64 TRUE 2^16 = 65536 1 11.035 11.239 101.85% 11.371 103.04% 10.848 98.31%
I64 TRUE 2^20 = 1048576 1 21.012 21.313 101.43% 23.429 111.50% 23.181 110.32%
I64 TRUE 2^24 = 16777216 1 186.174 186.436 100.14% 219.016 117.64% 218.728 117.49%
I64 TRUE 2^28 = 268435456 1 2841 2841 100.00% 3324 117.00% 3326 117.07%
I64 TRUE 2^16 = 65536 0.544 11.062 11.354 102.64% 11.17 100.98% 10.738 97.07%
I64 TRUE 2^20 = 1048576 0.544 20.767 21.096 101.58% 23.228 111.85% 23.295 112.17%
I64 TRUE 2^24 = 16777216 0.544 158.215 158.444 100.14% 195.572 123.61% 195.6 123.63%
I64 TRUE 2^28 = 268435456 0.544 2355 2354 99.96% 2908 123.48% 2908 123.48%
I64 TRUE 2^16 = 65536 0 10.386 10.692 102.95% 10.847 104.44% 11.128 107.14%
I64 TRUE 2^20 = 1048576 0 19.307 19.884 102.99% 22.178 114.87% 22.674 117.44%
I64 TRUE 2^24 = 16777216 0 120.013 120.452 100.37% 168.491 140.39% 168.888 140.72%
I64 TRUE 2^28 = 268435456 0 1502 1502 100.00% 2428 161.65% 2428 161.65%
I128 FALSE 2^16 = 65536 1 10.824 10.612 98.04% 10.96 101.26% 11.33 104.67%
I128 FALSE 2^20 = 1048576 1 30.471 30.217 99.17% 33.423 109.69% 33.555 110.12%
I128 FALSE 2^24 = 16777216 1 346.419 345.94 99.86% 381.333 110.08% 380.909 109.96%
I128 FALSE 2^28 = 268435456 1 5405 5406 100.02% 6023 111.43% 6007 111.14%
I128 FALSE 2^16 = 65536 0.544 10.782 10.672 98.98% 10.965 101.70% 11.478 106.46%
I128 FALSE 2^20 = 1048576 0.544 27.85 27.636 99.23% 30.877 110.87% 31.098 111.66%
I128 FALSE 2^24 = 16777216 0.544 278.74 279.077 100.12% 315.154 113.06% 314.729 112.91%
I128 FALSE 2^28 = 268435456 0.544 4275 4280 100.12% 4862 113.73% 4862 113.73%
I128 FALSE 2^16 = 65536 0 10.473 10.198 97.37% 10.741 102.56% 10.989 104.93%
I128 FALSE 2^20 = 1048576 0 25.592 25.364 99.11% 28.565 111.62% 28.4 110.97%
I128 FALSE 2^24 = 16777216 0 184.311 185.224 100.50% 253.648 137.62% 253.715 137.66%
I128 FALSE 2^28 = 268435456 0 2589 2592 100.12% 3791 146.43% 3791 146.43%
I128 TRUE 2^16 = 65536 1 11.714 11.472 97.93% 12.611 107.66% 12.351 105.44%
I128 TRUE 2^20 = 1048576 1 31.781 31.491 99.09% 39.235 123.45% 38.88 122.34%
I128 TRUE 2^24 = 16777216 1 351.823 352.084 100.07% 458.808 130.41% 458.459 130.31%
I128 TRUE 2^28 = 268435456 1 5481 5493 100.22% 7163 130.69% 7165 130.72%
I128 TRUE 2^16 = 65536 0.544 11.422 11.209 98.14% 12.591 110.23% 12.335 107.99%
I128 TRUE 2^20 = 1048576 0.544 29.359 29.384 100.09% 37.618 128.13% 37.19 126.67%
I128 TRUE 2^24 = 16777216 0.544 290.386 290.97 100.20% 418.685 144.18% 418.244 144.03%
I128 TRUE 2^28 = 268435456 0.544 4481 4490 100.20% 6522 145.55% 6522 145.55%
I128 TRUE 2^16 = 65536 0 11.003 10.779 97.96% 12.596 114.48% 12.276 111.57%
I128 TRUE 2^20 = 1048576 0 27.196 27.277 100.30% 35.527 130.63% 35.246 129.60%
I128 TRUE 2^24 = 16777216 0 206.855 208.214 100.66% 366.605 177.23% 366.4 177.13%
I128 TRUE 2^28 = 268435456 0 2949 2971 100.75% 5634 191.05% 5640 191.25%
F32 FALSE 2^16 = 65536 1 10.093 10.377 102.81% 9.478 93.91% 9.986 98.94%
F32 FALSE 2^20 = 1048576 1 15.172 15.534 102.39% 15.61 102.89% 16.104 106.14%
F32 FALSE 2^24 = 16777216 1 104.098 104.33 100.22% 109.627 105.31% 109.917 105.59%
F32 FALSE 2^28 = 268435456 1 1513 1513 100.00% 1622 107.20% 1624 107.34%
F32 FALSE 2^16 = 65536 0.544 10.33 10.279 99.51% 9.313 90.15% 9.881 95.65%
F32 FALSE 2^20 = 1048576 0.544 15.462 15.674 101.37% 15.461 99.99% 15.742 101.81%
F32 FALSE 2^24 = 16777216 0.544 93.507 93.616 100.12% 97.712 104.50% 98.192 105.01%
F32 FALSE 2^28 = 268435456 0.544 1265 1265 100.00% 1355 107.11% 1356 107.19%
F32 FALSE 2^16 = 65536 0 9.931 9.62 96.87% 9.194 92.58% 9.653 97.20%
F32 FALSE 2^20 = 1048576 0 14.843 14.999 101.05% 15.156 102.11% 15.63 105.30%
F32 FALSE 2^24 = 16777216 0 78.724 78.722 100.00% 84.214 106.97% 84.52 107.36%
F32 FALSE 2^28 = 268435456 0 848.093 848.322 100.03% 1053 124.16% 1051 123.93%
F32 TRUE 2^16 = 65536 1 11.144 10.866 97.51% 10.397 93.30% 10.753 96.49%
F32 TRUE 2^20 = 1048576 1 16.704 16.86 100.93% 17.822 106.69% 18.232 109.15%
F32 TRUE 2^24 = 16777216 1 109.849 109.861 100.01% 129.661 118.04% 129.98 118.33%
F32 TRUE 2^28 = 268435456 1 1587 1587 100.00% 1901 119.79% 1903 119.91%
F32 TRUE 2^16 = 65536 0.544 11.007 10.878 98.83% 10.224 92.89% 10.345 93.99%
F32 TRUE 2^20 = 1048576 0.544 16.655 16.952 101.78% 17.595 105.64% 17.68 106.15%
F32 TRUE 2^24 = 16777216 0.544 99.531 99.614 100.08% 121.195 121.77% 121.47 122.04%
F32 TRUE 2^28 = 268435456 0.544 1328 1328 100.00% 1747 131.55% 1753 132.00%
F32 TRUE 2^16 = 65536 0 10.582 10.381 98.10% 10.442 98.68% 9.941 93.94%
F32 TRUE 2^20 = 1048576 0 15.909 16.015 100.67% 17.738 111.50% 17.384 109.27%
F32 TRUE 2^24 = 16777216 0 84.593 84.606 100.02% 108.872 128.70% 108.731 128.53%
F32 TRUE 2^28 = 268435456 0 964.432 964.378 99.99% 1487 154.18% 1493 154.81%
F64 FALSE 2^16 = 65536 1 10.024 10.402 103.77% 9.931 99.07% 10.299 102.74%
F64 FALSE 2^20 = 1048576 1 19.88 20.085 101.03% 20.03 100.75% 20.243 101.83%
F64 FALSE 2^24 = 16777216 1 180.422 181.02 100.33% 190.75 105.72% 190.869 105.79%
F64 FALSE 2^28 = 268435456 1 2744 2748 100.15% 2955 107.69% 2950 107.51%
F64 FALSE 2^16 = 65536 0.544 10.084 10.477 103.90% 9.967 98.84% 10.124 100.40%
F64 FALSE 2^20 = 1048576 0.544 19.411 20.162 103.87% 19.829 102.15% 20.06 103.34%
F64 FALSE 2^24 = 16777216 0.544 151.986 152.496 100.34% 161.334 106.15% 161.352 106.16%
F64 FALSE 2^28 = 268435456 0.544 2246 2246 100.00% 2416 107.57% 2413 107.44%
F64 FALSE 2^16 = 65536 0 9.59 9.659 100.72% 9.887 103.10% 9.709 101.24%
F64 FALSE 2^20 = 1048576 0 18.164 18.76 103.28% 19.428 106.96% 19.117 105.25%
F64 FALSE 2^24 = 16777216 0 112.634 113.08 100.40% 126.29 112.12% 126.039 111.90%
F64 FALSE 2^28 = 268435456 0 1383 1383 100.00% 1682 121.62% 1680 121.48%
F64 TRUE 2^16 = 65536 1 11.058 10.96 99.11% 11.132 100.67% 10.849 98.11%
F64 TRUE 2^20 = 1048576 1 21.084 21.173 100.42% 23.453 111.24% 23.031 109.23%
F64 TRUE 2^24 = 16777216 1 186.077 186.193 100.06% 218.024 117.17% 217.733 117.01%
F64 TRUE 2^28 = 268435456 1 2842 2840 99.93% 3313 116.57% 3313 116.57%
F64 TRUE 2^16 = 65536 0.544 11.339 10.842 95.62% 11.038 97.35% 10.729 94.62%
F64 TRUE 2^20 = 1048576 0.544 21.317 20.955 98.30% 23.042 108.09% 22.786 106.89%
F64 TRUE 2^24 = 16777216 0.544 158.347 158.071 99.83% 194.517 122.84% 194.228 122.66%
F64 TRUE 2^28 = 268435456 0.544 2353 2352 99.96% 2891 122.86% 2891 122.86%
F64 TRUE 2^16 = 65536 0 10.407 10.11 97.15% 11.129 106.94% 10.583 101.69%
F64 TRUE 2^20 = 1048576 0 19.943 19.746 99.01% 22.51 112.87% 22.179 111.21%
F64 TRUE 2^24 = 16777216 0 120.405 120.086 99.74% 167.749 139.32% 167.342 138.98%
F64 TRUE 2^28 = 268435456 0 1500 1500 100.00% 2410 160.67% 2410 160.67%

device_select_if

Results
T{ct} IsInPlace{ct} Elements{io} Entropy I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 FALSE 2^16 = 65536 1 9.593 9.286 96.80% 9.412 98.11% 9.229 96.21%
I8 FALSE 2^20 = 1048576 1 12.372 11.839 95.69% 13.272 107.27% 12.927 104.49%
I8 FALSE 2^24 = 16777216 1 51.753 50.355 97.30% 71.368 137.90% 71.033 137.25%
I8 FALSE 2^28 = 268435456 1 694.494 674.973 97.19% 1038 149.46% 1037 149.32%
I8 FALSE 2^16 = 65536 0.544 9.579 9.489 99.06% 9.539 99.58% 9.426 98.40%
I8 FALSE 2^20 = 1048576 0.544 12.117 11.601 95.74% 12.919 106.62% 12.699 104.80%
I8 FALSE 2^24 = 16777216 0.544 48.466 47.774 98.57% 68.568 141.48% 68.269 140.86%
I8 FALSE 2^28 = 268435456 0.544 639.299 633.134 99.04% 987.549 154.47% 987.764 154.51%
I8 FALSE 2^16 = 65536 0 9.351 9.385 100.36% 9.409 100.62% 9.796 104.76%
I8 FALSE 2^20 = 1048576 0 11.646 11.431 98.15% 12.485 107.20% 12.878 110.58%
I8 FALSE 2^24 = 16777216 0 42.488 42.102 99.09% 63.775 150.10% 64.159 151.00%
I8 FALSE 2^28 = 268435456 0 526.733 524.933 99.66% 888.127 168.61% 888.236 168.63%
I8 TRUE 2^16 = 65536 1 10.381 10.382 100.01% 9.85 94.88% 10.322 99.43%
I8 TRUE 2^20 = 1048576 1 13.477 13.688 101.57% 15.215 112.90% 15.423 114.44%
I8 TRUE 2^24 = 16777216 1 61.16 59.945 98.01% 96.48 157.75% 96.627 157.99%
I8 TRUE 2^28 = 268435456 1 857.119 839.771 97.98% 1472 171.74% 1472 171.74%
I8 TRUE 2^16 = 65536 0.544 10.29 10.334 100.43% 9.981 97.00% 10.312 100.21%
I8 TRUE 2^20 = 1048576 0.544 12.947 13.39 103.42% 15.046 116.21% 15.182 117.26%
I8 TRUE 2^24 = 16777216 0.544 57.827 57.808 99.97% 93.575 161.82% 94.154 162.82%
I8 TRUE 2^28 = 268435456 0.544 802.315 798.158 99.48% 1417 176.61% 1417 176.61%
I8 TRUE 2^16 = 65536 0 10.051 10.256 102.04% 9.943 98.93% 10.503 104.50%
I8 TRUE 2^20 = 1048576 0 12.533 13.033 103.99% 14.786 117.98% 15.076 120.29%
I8 TRUE 2^24 = 16777216 0 52.096 52.376 100.54% 89.2 171.22% 89.499 171.80%
I8 TRUE 2^28 = 268435456 0 693.302 692.789 99.93% 1317 189.96% 1317 189.96%
I16 FALSE 2^16 = 65536 1 10.11 9.802 96.95% 9.41 93.08% 9.639 95.34%
I16 FALSE 2^20 = 1048576 1 13.546 13.262 97.90% 13.727 101.34% 13.61 100.47%
I16 FALSE 2^24 = 16777216 1 63.446 63.064 99.40% 77.355 121.92% 77.197 121.67%
I16 FALSE 2^28 = 268435456 1 883.8 875.282 99.04% 1109 125.48% 1109 125.48%
I16 FALSE 2^16 = 65536 0.544 9.468 10.04 106.04% 9.377 99.04% 9.528 100.63%
I16 FALSE 2^20 = 1048576 0.544 12.542 12.99 103.57% 13.45 107.24% 13.549 108.03%
I16 FALSE 2^24 = 16777216 0.544 56.02 56.201 100.32% 74.915 133.73% 75.007 133.89%
I16 FALSE 2^28 = 268435456 0.544 704.52 699.244 99.25% 1071 152.02% 1071 152.02%
I16 FALSE 2^16 = 65536 0 9.199 9.548 103.79% 9.205 100.07% 9.386 102.03%
I16 FALSE 2^20 = 1048576 0 12.201 12.652 103.70% 13.161 107.87% 13.537 110.95%
I16 FALSE 2^24 = 16777216 0 47.622 47.922 100.63% 68.513 143.87% 68.395 143.62%
I16 FALSE 2^28 = 268435456 0 507.028 506.898 99.97% 934.347 184.28% 934.297 184.27%
I16 TRUE 2^16 = 65536 1 9.519 9.827 103.24% 10.327 108.49% 10.417 109.43%
I16 TRUE 2^20 = 1048576 1 13.236 13.536 102.27% 15.686 118.51% 15.706 118.66%
I16 TRUE 2^24 = 16777216 1 63.126 62.998 99.80% 104.864 166.12% 104.545 165.61%
I16 TRUE 2^28 = 268435456 1 882.541 875.453 99.20% 1570 177.90% 1570 177.90%
I16 TRUE 2^16 = 65536 0.544 9.45 9.723 102.89% 10.369 109.72% 10.258 108.55%
I16 TRUE 2^20 = 1048576 0.544 12.423 12.941 104.17% 15.458 124.43% 15.791 127.11%
I16 TRUE 2^24 = 16777216 0.544 56.152 56.226 100.13% 101.919 181.51% 101.855 181.39%
I16 TRUE 2^28 = 268435456 0.544 703.911 700.216 99.48% 1516 215.37% 1517 215.51%
I16 TRUE 2^16 = 65536 0 9.432 9.519 100.92% 10.174 107.87% 10.311 109.32%
I16 TRUE 2^20 = 1048576 0 12.084 12.544 103.81% 15.295 126.57% 15.666 129.64%
I16 TRUE 2^24 = 16777216 0 47.655 48.16 101.06% 93.893 197.03% 94.116 197.49%
I16 TRUE 2^28 = 268435456 0 507.241 506.953 99.94% 1367 269.50% 1368 269.69%
I32 FALSE 2^16 = 65536 1 10.004 9.872 98.68% 9.716 97.12% 9.457 94.53%
I32 FALSE 2^20 = 1048576 1 15.107 14.562 96.39% 15.354 101.64% 14.949 98.95%
I32 FALSE 2^24 = 16777216 1 91.159 90.749 99.55% 101.393 111.23% 100.962 110.75%
I32 FALSE 2^28 = 268435456 1 1344 1343 99.93% 1505 111.98% 1502 111.76%
I32 FALSE 2^16 = 65536 0.544 9.897 9.652 97.52% 9.853 99.56% 9.728 98.29%
I32 FALSE 2^20 = 1048576 0.544 14.832 14.262 96.16% 15.084 101.70% 14.784 99.68%
I32 FALSE 2^24 = 16777216 0.544 78.918 78.506 99.48% 90.019 114.07% 89.658 113.61%
I32 FALSE 2^28 = 268435456 0.544 1072 1070 99.81% 1248 116.42% 1248 116.42%
I32 FALSE 2^16 = 65536 0 9.714 9.345 96.20% 9.659 99.43% 9.645 99.29%
I32 FALSE 2^20 = 1048576 0 14.385 13.75 95.59% 14.56 101.22% 14.877 103.42%
I32 FALSE 2^24 = 16777216 0 62.679 62.466 99.66% 77.084 122.98% 77.308 123.34%
I32 FALSE 2^28 = 268435456 0 646.984 646.816 99.97% 981.36 151.68% 981.654 151.73%
I32 TRUE 2^16 = 65536 1 10.035 10.096 100.61% 10.239 102.03% 10.452 104.16%
I32 TRUE 2^20 = 1048576 1 15.225 15.036 98.76% 17.138 112.56% 17.467 114.73%
I32 TRUE 2^24 = 16777216 1 91.185 91.031 99.83% 122.2 134.01% 122.494 134.34%
I32 TRUE 2^28 = 268435456 1 1344 1344 100.00% 1807 134.45% 1807 134.45%
I32 TRUE 2^16 = 65536 0.544 9.483 9.82 103.55% 10.512 110.85% 10.512 110.85%
I32 TRUE 2^20 = 1048576 0.544 14.519 14.809 102.00% 16.974 116.91% 17.374 119.66%
I32 TRUE 2^24 = 16777216 0.544 78.523 78.78 100.33% 114.731 146.11% 115.012 146.47%
I32 TRUE 2^28 = 268435456 0.544 1072 1071 99.91% 1675 156.25% 1675 156.25%
I32 TRUE 2^16 = 65536 0 9.258 9.539 103.04% 10.176 109.92% 10.394 112.27%
I32 TRUE 2^20 = 1048576 0 13.799 14.309 103.70% 16.68 120.88% 17.025 123.38%
I32 TRUE 2^24 = 16777216 0 62.395 62.583 100.30% 102.622 164.47% 103.056 165.17%
I32 TRUE 2^28 = 268435456 0 646.698 646.689 100.00% 1431 221.28% 1431 221.28%
I64 FALSE 2^16 = 65536 1 10.08 9.858 97.80% 10.164 100.83% 9.987 99.08%
I64 FALSE 2^20 = 1048576 1 18.368 18.063 98.34% 20.024 109.02% 19.754 107.55%
I64 FALSE 2^24 = 16777216 1 166.214 165.818 99.76% 182.345 109.70% 182.202 109.62%
I64 FALSE 2^28 = 268435456 1 2560 2558 99.92% 2824 110.31% 2825 110.35%
I64 FALSE 2^16 = 65536 0.544 9.728 10.103 103.85% 10.034 103.15% 9.831 101.06%
I64 FALSE 2^20 = 1048576 0.544 17.501 17.815 101.79% 19.673 112.41% 19.318 110.38%
I64 FALSE 2^24 = 16777216 0.544 137.543 137.618 100.05% 153.682 111.73% 153.248 111.42%
I64 FALSE 2^28 = 268435456 0.544 2020 2023 100.15% 2288 113.27% 2289 113.32%
I64 FALSE 2^16 = 65536 0 9.196 9.641 104.84% 9.946 108.16% 9.626 104.68%
I64 FALSE 2^20 = 1048576 0 16.297 16.44 100.88% 19.109 117.25% 18.765 115.14%
I64 FALSE 2^24 = 16777216 0 97.987 98.108 100.12% 121.821 124.32% 121.345 123.84%
I64 FALSE 2^28 = 268435456 0 1229 1230 100.08% 1629 132.55% 1626 132.30%
I64 TRUE 2^16 = 65536 1 9.661 10.211 105.69% 11.279 116.75% 10.713 110.89%
I64 TRUE 2^20 = 1048576 1 17.84 18.066 101.27% 22.625 126.82% 22.297 124.98%
I64 TRUE 2^24 = 16777216 1 165.862 165.744 99.93% 210.941 127.18% 210.418 126.86%
I64 TRUE 2^28 = 268435456 1 2560 2558 99.92% 3214 125.55% 3211 125.43%
I64 TRUE 2^16 = 65536 0.544 9.836 10.122 102.91% 11.212 113.99% 10.694 108.72%
I64 TRUE 2^20 = 1048576 0.544 17.369 17.738 102.12% 22.368 128.78% 22.304 128.41%
I64 TRUE 2^24 = 16777216 0.544 137.478 137.605 100.09% 189.157 137.59% 188.844 137.36%
I64 TRUE 2^28 = 268435456 0.544 2021 2023 100.10% 2822 139.63% 2821 139.58%
I64 TRUE 2^16 = 65536 0 9.401 9.762 103.84% 10.845 115.36% 10.904 115.99%
I64 TRUE 2^20 = 1048576 0 16.095 16.624 103.29% 21.353 132.67% 21.613 134.28%
I64 TRUE 2^24 = 16777216 0 97.898 98.167 100.27% 163.936 167.46% 164.193 167.72%
I64 TRUE 2^28 = 268435456 0 1229 1230 100.08% 2376 193.33% 2375 193.25%
I128 FALSE 2^16 = 65536 1 11.066 11.04 99.77% 11.224 101.43% 11.906 107.59%
I128 FALSE 2^20 = 1048576 1 30.682 30.009 97.81% 32.55 106.09% 32.824 106.98%
I128 FALSE 2^24 = 16777216 1 344.687 345.58 100.26% 362.848 105.27% 363.073 105.33%
I128 FALSE 2^28 = 268435456 1 5358 5388 100.56% 5707 106.51% 5707 106.51%
I128 FALSE 2^16 = 65536 0.544 11.06 10.83 97.92% 10.938 98.90% 11.469 103.70%
I128 FALSE 2^20 = 1048576 0.544 28.006 27.657 98.75% 30.451 108.73% 30.71 109.66%
I128 FALSE 2^24 = 16777216 0.544 280.448 281.276 100.30% 296.207 105.62% 296.452 105.71%
I128 FALSE 2^28 = 268435456 0.544 4279 4299 100.47% 4618 107.92% 4619 107.95%
I128 FALSE 2^16 = 65536 0 10.503 10.13 96.45% 10.93 104.07% 11.127 105.94%
I128 FALSE 2^20 = 1048576 0 25.068 24.502 97.74% 28.312 112.94% 28.004 111.71%
I128 FALSE 2^24 = 16777216 0 182.163 182.273 100.06% 233.38 128.12% 233.099 127.96%
I128 FALSE 2^28 = 268435456 0 2510 2516 100.24% 3431 136.69% 3431 136.69%
I128 TRUE 2^16 = 65536 1 12.055 11.771 97.64% 12.858 106.66% 12.687 105.24%
I128 TRUE 2^20 = 1048576 1 31.593 31.274 98.99% 36.999 117.11% 36.903 116.81%
I128 TRUE 2^24 = 16777216 1 352.409 354.819 100.68% 423.529 120.18% 422.817 119.98%
I128 TRUE 2^28 = 268435456 1 5488 5534 100.84% 6592 120.12% 6592 120.12%
I128 TRUE 2^16 = 65536 0.544 11.594 11.3 97.46% 12.794 110.35% 12.366 106.66%
I128 TRUE 2^20 = 1048576 0.544 29.126 29.252 100.43% 35.679 122.50% 35.194 120.83%
I128 TRUE 2^24 = 16777216 0.544 291.339 291.783 100.15% 380.603 130.64% 380.137 130.48%
I128 TRUE 2^28 = 268435456 0.544 4503 4505 100.04% 5884 130.67% 5884 130.67%
I128 TRUE 2^16 = 65536 0 11.024 10.747 97.49% 12.811 116.21% 12.272 111.32%
I128 TRUE 2^20 = 1048576 0 26.298 26.34 100.16% 34.084 129.61% 33.642 127.93%
I128 TRUE 2^24 = 16777216 0 200.733 200.822 100.04% 331.318 165.05% 331.083 164.94%
I128 TRUE 2^28 = 268435456 0 2834 2833 99.96% 5056 178.41% 5056 178.41%
F32 FALSE 2^16 = 65536 1 9.882 10.242 103.64% 9.521 96.35% 9.802 99.19%
F32 FALSE 2^20 = 1048576 1 14.535 14.859 102.23% 15.033 103.43% 15.223 104.73%
F32 FALSE 2^24 = 16777216 1 90.738 90.965 100.25% 100.564 110.83% 100.806 111.10%
F32 FALSE 2^28 = 268435456 1 1365 1365 100.00% 1506 110.33% 1507 110.40%
F32 FALSE 2^16 = 65536 0.544 9.759 9.831 100.74% 9.269 94.98% 9.815 100.57%
F32 FALSE 2^20 = 1048576 0.544 14.071 14.121 100.36% 14.639 104.04% 14.869 105.67%
F32 FALSE 2^24 = 16777216 0.544 64.63 64.197 99.33% 78.968 122.18% 79.903 123.63%
F32 FALSE 2^28 = 268435456 0.544 770.361 769.55 99.89% 1050 136.30% 1050 136.30%
F32 FALSE 2^16 = 65536 0 9.769 9.588 98.15% 9.289 95.09% 9.861 100.94%
F32 FALSE 2^20 = 1048576 0 14.036 14.276 101.71% 14.584 103.90% 15.089 107.50%
F32 FALSE 2^24 = 16777216 0 62.441 62.503 100.10% 76.048 121.79% 76.505 122.52%
F32 FALSE 2^28 = 268435456 0 647.377 647.108 99.96% 978.303 151.12% 977.968 151.07%
F32 TRUE 2^16 = 65536 1 10.177 10.017 98.43% 10.319 101.40% 10.665 104.80%
F32 TRUE 2^20 = 1048576 1 15.037 15.056 100.13% 17.052 113.40% 17.477 116.23%
F32 TRUE 2^24 = 16777216 1 91.054 91.017 99.96% 121.44 133.37% 122.076 134.07%
F32 TRUE 2^28 = 268435456 1 1366 1365 99.93% 1816 132.94% 1819 133.16%
F32 TRUE 2^16 = 65536 0.544 9.914 9.581 96.64% 10.376 104.66% 10.391 104.81%
F32 TRUE 2^20 = 1048576 0.544 14.017 14.16 101.02% 16.787 119.76% 16.818 119.98%
F32 TRUE 2^24 = 16777216 0.544 64.119 64.212 100.15% 105.765 164.95% 106.058 165.41%
F32 TRUE 2^28 = 268435456 0.544 770.63 769.627 99.87% 1507 195.55% 1508 195.68%
F32 TRUE 2^16 = 65536 0 9.784 9.482 96.91% 10.538 107.71% 10.113 103.36%
F32 TRUE 2^20 = 1048576 0 14.123 14.24 100.83% 17.034 120.61% 16.799 118.95%
F32 TRUE 2^24 = 16777216 0 62.507 62.538 100.05% 102.187 163.48% 102.054 163.27%
F32 TRUE 2^28 = 268435456 0 647.128 646.979 99.98% 1428 220.67% 1429 220.82%
F64 FALSE 2^16 = 65536 1 9.633 10.09 104.74% 9.861 102.37% 10.449 108.47%
F64 FALSE 2^20 = 1048576 1 18.015 18.194 100.99% 19.654 109.10% 19.928 110.62%
F64 FALSE 2^24 = 16777216 1 165.795 165.781 99.99% 181.809 109.66% 182.189 109.89%
F64 FALSE 2^28 = 268435456 1 2561 2558 99.88% 2822 110.19% 2822 110.19%
F64 FALSE 2^16 = 65536 0.544 9.381 9.506 101.33% 9.905 105.59% 10.051 107.14%
F64 FALSE 2^20 = 1048576 0.544 16.424 16.97 103.32% 18.603 113.27% 18.972 115.51%
F64 FALSE 2^24 = 16777216 0.544 107.625 107.226 99.63% 128.078 119.00% 128.892 119.76%
F64 FALSE 2^28 = 268435456 0.544 1466 1460 99.59% 1762 120.19% 1762 120.19%
F64 FALSE 2^16 = 65536 0 9.224 9.498 102.97% 9.803 106.28% 9.474 102.71%
F64 FALSE 2^20 = 1048576 0 16.052 16.659 103.78% 18.862 117.51% 18.523 115.39%
F64 FALSE 2^24 = 16777216 0 97.87 97.981 100.11% 120.836 123.47% 120.472 123.09%
F64 FALSE 2^28 = 268435456 0 1228 1228 100.00% 1607 130.86% 1606 130.78%
F64 TRUE 2^16 = 65536 1 9.954 9.722 97.67% 11.362 114.15% 11.022 110.73%
F64 TRUE 2^20 = 1048576 1 17.812 17.944 100.74% 22.641 127.11% 22.182 124.53%
F64 TRUE 2^24 = 16777216 1 165.93 165.604 99.80% 210.419 126.81% 210.002 126.56%
F64 TRUE 2^28 = 268435456 1 2561 2557 99.84% 3200 124.95% 3199 124.91%
F64 TRUE 2^16 = 65536 0.544 9.9 9.198 92.91% 11.008 111.19% 10.652 107.60%
F64 TRUE 2^20 = 1048576 0.544 17.02 16.63 97.71% 21.658 127.25% 21.4 125.73%
F64 TRUE 2^24 = 16777216 0.544 107.886 107.038 99.21% 170.617 158.15% 169.682 157.28%
F64 TRUE 2^28 = 268435456 0.544 1466 1460 99.59% 2490 169.85% 2490 169.85%
F64 TRUE 2^16 = 65536 0 9.542 9.292 97.38% 10.854 113.75% 10.447 109.48%
F64 TRUE 2^20 = 1048576 0 16.593 16.208 97.68% 21.714 130.86% 21.348 128.66%
F64 TRUE 2^24 = 16777216 0 98.109 97.773 99.66% 163.567 166.72% 162.94 166.08%
F64 TRUE 2^28 = 268435456 0 1228 1228 100.00% 2353 191.61% 2353 191.61%

device_partition_if

Results
T{ct} Elements{io} Entropy I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 2^16 = 65536 1 9.997 10.222 102.25% 9.811 98.14% 9.813 98.16%
I8 2^20 = 1048576 1 12.717 12.745 100.22% 13.396 105.34% 13.23 104.03%
I8 2^24 = 16777216 1 55.878 57.478 102.86% 69.199 123.84% 69.127 123.71%
I8 2^28 = 268435456 1 757.983 782.775 103.27% 984.096 129.83% 984.019 129.82%
I8 2^16 = 65536 0.544 10.123 10.386 102.60% 9.915 97.95% 9.588 94.72%
I8 2^20 = 1048576 0.544 12.891 13.041 101.16% 13.242 102.72% 13.414 104.06%
I8 2^24 = 16777216 0.544 58.099 60.694 104.47% 69.257 119.21% 69.479 119.59%
I8 2^28 = 268435456 0.544 791.911 830.953 104.93% 985.489 124.44% 985.615 124.46%
I8 2^16 = 65536 0 9.774 9.914 101.43% 9.804 100.31% 9.707 99.31%
I8 2^20 = 1048576 0 12.545 12.439 99.16% 13.244 105.57% 13.212 105.32%
I8 2^24 = 16777216 0 55.089 55.469 100.69% 68.811 124.91% 68.775 124.84%
I8 2^28 = 268435456 0 745.499 756.143 101.43% 976.172 130.94% 976.254 130.95%
I16 2^16 = 65536 1 9.749 9.748 99.99% 9.754 100.05% 9.889 101.44%
I16 2^20 = 1048576 1 13.687 13.58 99.22% 14.209 103.81% 14.154 103.41%
I16 2^24 = 16777216 1 68.431 71.829 104.97% 76.679 112.05% 76.82 112.26%
I16 2^28 = 268435456 1 928.813 996.612 107.30% 1078 116.06% 1078 116.06%
I16 2^16 = 65536 0.544 10.091 9.945 98.55% 9.898 98.09% 9.679 95.92%
I16 2^20 = 1048576 0.544 13.93 13.605 97.67% 14.125 101.40% 14.147 101.56%
I16 2^24 = 16777216 0.544 69.816 71.929 103.03% 77.152 110.51% 77.206 110.58%
I16 2^28 = 268435456 0.544 946.402 998.243 105.48% 1083 114.43% 1084 114.54%
I16 2^16 = 65536 0 9.879 9.911 100.32% 9.748 98.67% 9.735 98.54%
I16 2^20 = 1048576 0 13.514 13.207 97.73% 14.209 105.14% 14.188 104.99%
I16 2^24 = 16777216 0 64.804 67.56 104.25% 76.128 117.47% 76.152 117.51%
I16 2^28 = 268435456 0 872.974 934.564 107.06% 1068 122.34% 1068 122.34%
I32 2^16 = 65536 1 9.929 9.503 95.71% 10.198 102.71% 9.419 94.86%
I32 2^20 = 1048576 1 15.262 14.89 97.56% 15.177 99.44% 15.276 100.09%
I32 2^24 = 16777216 1 93.532 95.278 101.87% 98.58 105.40% 98.505 105.32%
I32 2^28 = 268435456 1 1370 1398 102.04% 1458 106.42% 1457 106.35%
I32 2^16 = 65536 0.544 9.905 9.766 98.60% 9.764 98.58% 9.507 95.98%
I32 2^20 = 1048576 0.544 15.834 15.142 95.63% 15.191 95.94% 15.27 96.44%
I32 2^24 = 16777216 0.544 96.993 98.271 101.32% 99.522 102.61% 99.538 102.62%
I32 2^28 = 268435456 0.544 1408 1432 101.70% 1474 104.69% 1474 104.69%
I32 2^16 = 65536 0 9.651 9.67 100.20% 9.533 98.78% 9.499 98.43%
I32 2^20 = 1048576 0 15.276 14.751 96.56% 15.237 99.74% 15.209 99.56%
I32 2^24 = 16777216 0 93.558 95.228 101.78% 98.56 105.35% 98.6 105.39%
I32 2^28 = 268435456 0 1370 1398 102.04% 1456 106.28% 1456 106.28%
I64 2^16 = 65536 1 10.159 10.099 99.41% 9.877 97.22% 9.944 97.88%
I64 2^20 = 1048576 1 18.805 18.98 100.93% 19.675 104.63% 19.724 104.89%
I64 2^24 = 16777216 1 169.61 169.361 99.85% 181.677 107.11% 181.649 107.10%
I64 2^28 = 268435456 1 2589 2588 99.96% 2811 108.57% 2812 108.61%
I64 2^16 = 65536 0.544 10.207 10.215 100.08% 9.91 97.09% 9.886 96.86%
I64 2^20 = 1048576 0.544 18.676 18.775 100.53% 19.974 106.95% 19.782 105.92%
I64 2^24 = 16777216 0.544 170.62 170.53 99.95% 183.308 107.44% 183.511 107.56%
I64 2^28 = 268435456 0.544 2606 2606 100.00% 2842 109.06% 2843 109.09%
I64 2^16 = 65536 0 10.122 10.167 100.44% 9.828 97.10% 9.801 96.83%
I64 2^20 = 1048576 0 18.728 18.579 99.20% 19.666 105.01% 19.446 103.83%
I64 2^24 = 16777216 0 169.386 168.968 99.75% 181.604 107.21% 181.789 107.32%
I64 2^28 = 268435456 0 2588 2588 100.00% 2813 108.69% 2814 108.73%
I128 2^16 = 65536 1 10.294 10.269 99.76% 11.463 111.36% 11.183 108.64%
I128 2^20 = 1048576 1 28.947 29.069 100.42% 32.74 113.10% 32.374 111.84%
I128 2^24 = 16777216 1 334.222 334.248 100.01% 372.786 111.54% 372.512 111.46%
I128 2^28 = 268435456 1 5253 5259 100.11% 5894 112.20% 5893 112.18%
I128 2^16 = 65536 0.544 10.463 10.844 103.64% 11.419 109.14% 10.929 104.45%
I128 2^20 = 1048576 0.544 30.388 30.616 100.75% 32.828 108.03% 32.463 106.83%
I128 2^24 = 16777216 0.544 338.769 339.595 100.24% 376.517 111.14% 376.256 111.07%
I128 2^28 = 268435456 0.544 5317 5318 100.02% 5952 111.94% 5948 111.87%
I128 2^16 = 65536 0 10.395 10.603 102.00% 11.411 109.77% 10.979 105.62%
I128 2^20 = 1048576 0 29.109 29.66 101.89% 32.698 112.33% 32.202 110.63%
I128 2^24 = 16777216 0 333.786 334.89 100.33% 372.96 111.74% 372.629 111.64%
I128 2^28 = 268435456 0 5256 5261 100.10% 5895 112.16% 5893 112.12%
F32 2^16 = 65536 1 9.414 9.705 103.09% 10.128 107.58% 9.857 104.71%
F32 2^20 = 1048576 1 15.029 14.935 99.37% 15.57 103.60% 15.525 103.30%
F32 2^24 = 16777216 1 93.247 95.421 102.33% 99.002 106.17% 98.875 106.04%
F32 2^28 = 268435456 1 1390 1418 102.01% 1464 105.32% 1463 105.25%
F32 2^16 = 65536 0.544 9.522 10.032 105.36% 10.077 105.83% 9.862 103.57%
F32 2^20 = 1048576 0.544 15.467 15.268 98.71% 15.507 100.26% 15.582 100.74%
F32 2^24 = 16777216 0.544 96.646 98.313 101.72% 99.882 103.35% 100.005 103.48%
F32 2^28 = 268435456 0.544 1407 1432 101.78% 1473 104.69% 1473 104.69%
F32 2^16 = 65536 0 9.665 9.753 100.91% 10.154 105.06% 9.882 102.25%
F32 2^20 = 1048576 0 15.147 14.742 97.33% 15.522 102.48% 15.565 102.76%
F32 2^24 = 16777216 0 93.631 95.2 101.68% 98.762 105.48% 98.911 105.64%
F32 2^28 = 268435456 0 1370 1399 102.12% 1456 106.28% 1456 106.28%
F64 2^16 = 65536 1 10.111 9.833 97.25% 9.842 97.34% 10.108 99.97%
F64 2^20 = 1048576 1 18.911 18.566 98.18% 19.959 105.54% 19.963 105.56%
F64 2^24 = 16777216 1 169.486 168.95 99.68% 181.883 107.31% 181.833 107.28%
F64 2^28 = 268435456 1 2587 2587 100.00% 2811 108.66% 2812 108.70%
F64 2^16 = 65536 0.544 9.723 9.929 102.12% 10.114 104.02% 10.048 103.34%
F64 2^20 = 1048576 0.544 18.305 18.383 100.43% 20.151 110.08% 20.268 110.72%
F64 2^24 = 16777216 0.544 170.755 170.351 99.76% 183.49 107.46% 183.537 107.49%
F64 2^28 = 268435456 0.544 2606 2606 100.00% 2840 108.98% 2839 108.94%
F64 2^16 = 65536 0 9.885 9.944 100.60% 10.047 101.64% 10.21 103.29%
F64 2^20 = 1048576 0 18.438 18.56 100.66% 19.902 107.94% 19.695 106.82%
F64 2^24 = 16777216 0 169.077 168.929 99.91% 181.867 107.56% 181.97 107.63%
F64 2^28 = 268435456 0 2588 2587 99.96% 2812 108.66% 2810 108.58%

device_partition_flagged

Results
T{ct} Elements{io} Entropy I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 2^16 = 65536 1 9.88 9.952 100.73% 9.424 95.38% 9.653 97.70%
I8 2^20 = 1048576 1 13.245 13.195 99.62% 13.931 105.18% 14.396 108.69%
I8 2^24 = 16777216 1 59.491 59.97 100.81% 75.174 126.36% 75.685 127.22%
I8 2^28 = 268435456 1 768.413 772.826 100.57% 1052 136.91% 1052 136.91%
I8 2^16 = 65536 0.544 10.035 9.835 98.01% 9.395 93.62% 9.581 95.48%
I8 2^20 = 1048576 0.544 13.588 13.103 96.43% 14.028 103.24% 14.267 105.00%
I8 2^24 = 16777216 0.544 61.941 61.654 99.54% 75.763 122.31% 76.181 122.99%
I8 2^28 = 268435456 0.544 812.394 813.518 100.14% 1063 130.85% 1063 130.85%
I8 2^16 = 65536 0 9.827 9.6 97.69% 9.362 95.27% 9.507 96.74%
I8 2^20 = 1048576 0 12.992 12.849 98.90% 14.033 108.01% 14.234 109.56%
I8 2^24 = 16777216 0 59.626 59.604 99.96% 75.108 125.97% 75.284 126.26%
I8 2^28 = 268435456 0 768.058 773.315 100.68% 1050 136.71% 1051 136.84%
I16 2^16 = 65536 1 11.284 10.912 96.70% 9.503 84.22% 9.511 84.29%
I16 2^20 = 1048576 1 14.295 14.006 97.98% 14.558 101.84% 14.588 102.05%
I16 2^24 = 16777216 1 76.156 75.662 99.35% 82.2 107.94% 82.283 108.05%
I16 2^28 = 268435456 1 942.539 940.25 99.76% 1125 119.36% 1126 119.46%
I16 2^16 = 65536 0.544 11.904 11.534 96.89% 9.584 80.51% 9.547 80.20%
I16 2^20 = 1048576 0.544 14.879 14.638 98.38% 14.581 98.00% 14.558 97.84%
I16 2^24 = 16777216 0.544 80.707 80.346 99.55% 83.145 103.02% 83.573 103.55%
I16 2^28 = 268435456 0.544 1022 1020 99.80% 1146 112.13% 1146 112.13%
I16 2^16 = 65536 0 11.359 10.982 96.68% 9.528 83.88% 9.519 83.80%
I16 2^20 = 1048576 0 13.824 13.701 99.11% 14.562 105.34% 14.484 104.77%
I16 2^24 = 16777216 0 75.723 75.55 99.77% 82.019 108.31% 82.236 108.60%
I16 2^28 = 268435456 0 942.153 940.329 99.81% 1125 119.41% 1125 119.41%
I32 2^16 = 65536 1 10.275 10.629 103.45% 9.843 95.80% 9.295 90.46%
I32 2^20 = 1048576 1 16.258 16.361 100.63% 15.865 97.58% 15.912 97.87%
I32 2^24 = 16777216 1 104.511 104.759 100.24% 107.884 103.23% 108.005 103.34%
I32 2^28 = 268435456 1 1522 1522 100.00% 1582 103.94% 1581 103.88%
I32 2^16 = 65536 0.544 10.747 10.812 100.60% 9.491 88.31% 9.405 87.51%
I32 2^20 = 1048576 0.544 16.885 16.755 99.23% 15.847 93.85% 15.908 94.21%
I32 2^24 = 16777216 0.544 106.547 106.76 100.20% 108.912 102.22% 109.009 102.31%
I32 2^28 = 268435456 0.544 1540 1542 100.13% 1598 103.77% 1598 103.77%
I32 2^16 = 65536 0 10.55 10.742 101.82% 9.349 88.62% 9.362 88.74%
I32 2^20 = 1048576 0 16.591 16.451 99.16% 15.895 95.80% 15.804 95.26%
I32 2^24 = 16777216 0 104.772 104.839 100.06% 107.578 102.68% 107.608 102.71%
I32 2^28 = 268435456 0 1522 1523 100.07% 1581 103.88% 1581 103.88%
I64 2^16 = 65536 1 10.097 10.124 100.27% 9.949 98.53% 9.991 98.95%
I64 2^20 = 1048576 1 19.952 19.784 99.16% 20.563 103.06% 20.598 103.24%
I64 2^24 = 16777216 1 186.462 186.662 100.11% 192.771 103.38% 192.774 103.39%
I64 2^28 = 268435456 1 2876 2876 100.00% 3002 104.38% 3003 104.42%
I64 2^16 = 65536 0.544 10.175 10.366 101.88% 10.025 98.53% 10.022 98.50%
I64 2^20 = 1048576 0.544 20.264 19.976 98.58% 20.722 102.26% 21.015 103.71%
I64 2^24 = 16777216 0.544 189.806 189.663 99.92% 195.812 103.16% 196.243 103.39%
I64 2^28 = 268435456 0.544 2922 2921 99.97% 3046 104.24% 3046 104.24%
I64 2^16 = 65536 0 10.116 10.072 99.57% 9.973 98.59% 10.135 100.19%
I64 2^20 = 1048576 0 19.93 19.228 96.48% 20.513 102.93% 20.715 103.94%
I64 2^24 = 16777216 0 186.809 186.182 99.66% 193.193 103.42% 193.572 103.62%
I64 2^28 = 268435456 0 2879 2877 99.93% 3009 104.52% 3008 104.48%
I128 2^16 = 65536 1 10.866 10.952 100.79% 11.187 102.95% 11.562 106.41%
I128 2^20 = 1048576 1 30.45 30.594 100.47% 32.748 107.55% 33.111 108.74%
I128 2^24 = 16777216 1 339.477 339.344 99.96% 380.37 112.05% 380.689 112.14%
I128 2^28 = 268435456 1 5306 5306 100.00% 6007 113.21% 6010 113.27%
I128 2^16 = 65536 0.544 11.174 10.975 98.22% 11.143 99.72% 11.38 101.84%
I128 2^20 = 1048576 0.544 31.176 30.87 99.02% 33.076 106.09% 33.548 107.61%
I128 2^24 = 16777216 0.544 342.105 341.94 99.95% 383.84 112.20% 383.951 112.23%
I128 2^28 = 268435456 0.544 5348 5349 100.02% 6063 113.37% 6062 113.35%
I128 2^16 = 65536 0 11.027 10.783 97.79% 11.182 101.41% 11.337 102.81%
I128 2^20 = 1048576 0 30.362 30.262 99.67% 32.667 107.59% 32.832 108.14%
I128 2^24 = 16777216 0 339.479 338.722 99.78% 380.211 112.00% 380.48 112.08%
I128 2^28 = 268435456 0 5307 5304 99.94% 6007 113.19% 6007 113.19%
F32 2^16 = 65536 1 10.628 10.35 97.38% 9.489 89.28% 9.629 90.60%
F32 2^20 = 1048576 1 16.526 16.011 96.88% 15.847 95.89% 16.191 97.97%
F32 2^24 = 16777216 1 104.455 104.211 99.77% 107.603 103.01% 108.328 103.71%
F32 2^28 = 268435456 1 1521 1520 99.93% 1581 103.94% 1581 103.94%
F32 2^16 = 65536 0.544 10.611 10.498 98.94% 9.56 90.10% 9.677 91.20%
F32 2^20 = 1048576 0.544 16.702 16.288 97.52% 15.831 94.79% 16.196 96.97%
F32 2^24 = 16777216 0.544 106.374 106.13 99.77% 108.854 102.33% 109.612 103.04%
F32 2^28 = 268435456 0.544 1538 1539 100.07% 1598 103.90% 1598 103.90%
F32 2^16 = 65536 0 10.728 10.286 95.88% 9.894 92.23% 9.755 90.93%
F32 2^20 = 1048576 0 16.055 16.032 99.86% 16.267 101.32% 16.246 101.19%
F32 2^24 = 16777216 0 104.265 104.332 100.06% 108.197 103.77% 108.258 103.83%
F32 2^28 = 268435456 0 1520 1520 100.00% 1581 104.01% 1581 104.01%
F64 2^16 = 65536 1 10.149 9.806 96.62% 9.947 98.01% 10.34 101.88%
F64 2^20 = 1048576 1 19.947 19.335 96.93% 20.832 104.44% 20.878 104.67%
F64 2^24 = 16777216 1 186.643 186.196 99.76% 193.345 103.59% 193.443 103.64%
F64 2^28 = 268435456 1 2876 2876 100.00% 3005 104.49% 3003 104.42%
F64 2^16 = 65536 0.544 9.963 10.1 101.38% 10.181 102.19% 10.393 104.32%
F64 2^20 = 1048576 0.544 19.976 19.717 98.70% 21.066 105.46% 21.125 105.75%
F64 2^24 = 16777216 0.544 189.493 189.55 100.03% 196.396 103.64% 196.108 103.49%
F64 2^28 = 268435456 0.544 2923 2923 100.00% 3047 104.24% 3047 104.24%
F64 2^16 = 65536 0 9.845 9.996 101.53% 10.264 104.26% 10.387 105.51%
F64 2^20 = 1048576 0 19.539 19.318 98.87% 20.797 106.44% 20.868 106.80%
F64 2^24 = 16777216 0 186.311 186.173 99.93% 193.665 103.95% 193.683 103.96%
F64 2^28 = 268435456 0 2877 2879 100.07% 3008 104.55% 3007 104.52%

device_run_length_encode

Results
T{ct} Elements{io} MaxSegSize I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 2^16 = 65536 2^1 = 2 9.858 10.065 102.10% 13.023 132.11% 13.047 132.35%
I8 2^20 = 1048576 2^1 = 2 13.933 13.843 99.35% 29.105 208.89% 29.222 209.73%
I8 2^24 = 16777216 2^1 = 2 82.654 81.371 98.45% 310.264 375.38% 310.514 375.68%
I8 2^28 = 268435456 2^1 = 2 1196 1177 98.41% 4925 411.79% 4928 412.04%
I8 2^16 = 65536 2^4 = 16 9.36 9.422 100.66% 12.899 137.81% 12.747 136.19%
I8 2^20 = 1048576 2^4 = 16 12.542 12.128 96.70% 28.102 224.06% 28.09 223.97%
I8 2^24 = 16777216 2^4 = 16 60.553 60.484 99.89% 268.124 442.79% 268.389 443.23%
I8 2^28 = 268435456 2^4 = 16 836.435 840.649 100.50% 4441 530.94% 4445 531.42%
I8 2^16 = 65536 2^8 = 256 9.384 9.29 99.00% 12.803 136.43% 12.626 134.55%
I8 2^20 = 1048576 2^8 = 256 12.234 11.926 97.48% 27.514 224.90% 27.647 225.98%
I8 2^24 = 16777216 2^8 = 256 57.964 57.619 99.40% 259.516 447.72% 259.869 448.33%
I8 2^28 = 268435456 2^8 = 256 777.14 775.532 99.79% 4240 545.59% 4246 546.36%
I16 2^16 = 65536 2^1 = 2 9.941 10.163 102.23% 13.382 134.61% 13.069 131.47%
I16 2^20 = 1048576 2^1 = 2 15.194 15.792 103.94% 30.352 199.76% 28.971 190.67%
I16 2^24 = 16777216 2^1 = 2 90.056 90.939 100.98% 322.689 358.32% 310.453 344.73%
I16 2^28 = 268435456 2^1 = 2 1293 1301 100.62% 5099 394.35% 4898 378.81%
I16 2^16 = 65536 2^4 = 16 9.561 9.947 104.04% 13.279 138.89% 12.974 135.70%
I16 2^20 = 1048576 2^4 = 16 13.672 14.404 105.35% 28.915 211.49% 27.786 203.23%
I16 2^24 = 16777216 2^4 = 16 67.207 70.362 104.69% 281.632 419.05% 269.604 401.15%
I16 2^28 = 268435456 2^4 = 16 919.876 964.99 104.90% 4556 495.28% 4351 473.00%
I16 2^16 = 65536 2^8 = 256 9.392 9.784 104.17% 12.839 136.70% 12.912 137.48%
I16 2^20 = 1048576 2^8 = 256 13.886 14.18 102.12% 27.964 201.38% 27.119 195.30%
I16 2^24 = 16777216 2^8 = 256 65.013 67.931 104.49% 265.189 407.90% 253.584 390.05%
I16 2^28 = 268435456 2^8 = 256 857.562 905.166 105.55% 4322 503.99% 4114 479.73%
I32 2^16 = 65536 2^1 = 2 9.727 9.926 102.05% 13.49 138.69% 13.217 135.88%
I32 2^20 = 1048576 2^1 = 2 16.041 16.188 100.92% 31.232 194.70% 31.28 195.00%
I32 2^24 = 16777216 2^1 = 2 119.741 120.065 100.27% 338.306 282.53% 338.759 282.91%
I32 2^28 = 268435456 2^1 = 2 1795 1808 100.72% 5317 296.21% 5326 296.71%
I32 2^16 = 65536 2^4 = 16 9.588 9.703 101.20% 13.143 137.08% 13.07 136.32%
I32 2^20 = 1048576 2^4 = 16 15.277 15.169 99.29% 29.984 196.27% 29.955 196.08%
I32 2^24 = 16777216 2^4 = 16 81.96 82.911 101.16% 298.653 364.39% 298.627 364.36%
I32 2^28 = 268435456 2^4 = 16 1070 1086 101.50% 4676 437.01% 4681 437.48%
I32 2^16 = 65536 2^8 = 256 9.688 9.912 102.31% 13.093 135.15% 12.935 133.52%
I32 2^20 = 1048576 2^8 = 256 15.111 15.009 99.32% 29.22 193.37% 29.233 193.46%
I32 2^24 = 16777216 2^8 = 256 77.62 78.575 101.23% 279.911 360.62% 280.177 360.96%
I32 2^28 = 268435456 2^8 = 256 994.602 1016 102.15% 4372 439.57% 4380 440.38%
I64 2^16 = 65536 2^1 = 2 10.428 10.32 98.96% 13.523 129.68% 13.475 129.22%
I64 2^20 = 1048576 2^1 = 2 19.956 19.947 99.95% 34.414 172.45% 33.641 168.58%
I64 2^24 = 16777216 2^1 = 2 180.384 180.065 99.82% 378.588 209.88% 363.866 201.72%
I64 2^28 = 268435456 2^1 = 2 2764 2765 100.04% 5926 214.40% 5688 205.79%
I64 2^16 = 65536 2^4 = 16 9.636 9.902 102.76% 13.561 140.73% 13.52 140.31%
I64 2^20 = 1048576 2^4 = 16 17.617 17.587 99.83% 33.153 188.19% 32.108 182.26%
I64 2^24 = 16777216 2^4 = 16 122.948 123.055 100.09% 336.131 273.39% 321.005 261.09%
I64 2^28 = 268435456 2^4 = 16 1731 1730 99.94% 5230 302.14% 4978 287.58%
I64 2^16 = 65536 2^8 = 256 9.542 10.283 107.77% 13.433 140.78% 12.949 135.71%
I64 2^20 = 1048576 2^8 = 256 17.294 17.59 101.71% 32.227 186.35% 31.175 180.26%
I64 2^24 = 16777216 2^8 = 256 110.393 110.691 100.27% 312.172 282.78% 296.632 268.71%
I64 2^28 = 268435456 2^8 = 256 1459 1454 99.66% 4816 330.09% 4557 312.34%
I128 2^16 = 65536 2^1 = 2 11.429 11.266 98.57% 16.911 147.97% 16.614 145.37%
I128 2^20 = 1048576 2^1 = 2 30.425 30.441 100.05% 64.785 212.93% 64.019 210.42%
I128 2^24 = 16777216 2^1 = 2 315.716 315.789 100.02% 904.886 286.61% 905.488 286.80%
I128 2^28 = 268435456 2^1 = 2 4903 4906 100.06% 14433 294.37% 14449 294.70%
I128 2^16 = 65536 2^4 = 16 10.875 10.934 100.54% 16.614 152.77% 16.105 148.09%
I128 2^20 = 1048576 2^4 = 16 26.193 26.727 102.04% 60.385 230.54% 60.337 230.36%
I128 2^24 = 16777216 2^4 = 16 208.541 208.784 100.12% 807.2 387.07% 808.561 387.72%
I128 2^28 = 268435456 2^4 = 16 3134 3137 100.10% 12815 408.90% 12836 409.57%
I128 2^16 = 65536 2^8 = 256 10.556 10.764 101.97% 16.724 158.43% 16.075 152.28%
I128 2^20 = 1048576 2^8 = 256 25.712 26.121 101.59% 59.494 231.39% 59.504 231.43%
I128 2^24 = 16777216 2^8 = 256 178.339 177.208 99.37% 778.065 436.28% 779.616 437.15%
I128 2^28 = 268435456 2^8 = 256 2586 2566 99.23% 12332 476.88% 12349 477.53%
F32 2^16 = 65536 2^1 = 2 9.754 10.226 104.84% 13.446 137.85% 12.824 131.47%
F32 2^20 = 1048576 2^1 = 2 15.962 16.265 101.90% 31.378 196.58% 30.022 188.08%
F32 2^24 = 16777216 2^1 = 2 111.275 111.733 100.41% 338.204 303.94% 324.602 291.71%
F32 2^28 = 268435456 2^1 = 2 1052 1062 100.95% 4696 446.39% 4480 425.86%
F32 2^16 = 65536 2^4 = 16 9.268 10.048 108.42% 13.365 144.21% 12.82 138.33%
F32 2^20 = 1048576 2^4 = 16 14.703 15.173 103.20% 29.92 203.50% 28.815 195.98%
F32 2^24 = 16777216 2^4 = 16 76.608 77.553 101.23% 298.24 389.31% 285.488 372.66%
F32 2^28 = 268435456 2^4 = 16 978.59 990.271 101.19% 4612 471.29% 4398 449.42%
F32 2^16 = 65536 2^8 = 256 9.523 9.898 103.94% 12.839 134.82% 12.77 134.10%
F32 2^20 = 1048576 2^8 = 256 14.88 15.026 100.98% 28.979 194.75% 28.169 189.31%
F32 2^24 = 16777216 2^8 = 256 72.797 73.84 101.43% 279.474 383.91% 266.62 366.25%
F32 2^28 = 268435456 2^8 = 256 882.315 912.684 103.44% 4372 495.51% 4155 470.92%
F64 2^16 = 65536 2^1 = 2 10.348 10.485 101.32% 13.219 127.74% 13.45 129.98%
F64 2^20 = 1048576 2^1 = 2 19.974 19.779 99.02% 34.34 171.92% 33.428 167.36%
F64 2^24 = 16777216 2^1 = 2 180.719 180.411 99.83% 377.942 209.13% 363.138 200.94%
F64 2^28 = 268435456 2^1 = 2 2768 2768 100.00% 5920 213.87% 5680 205.20%
F64 2^16 = 65536 2^4 = 16 9.652 10.097 104.61% 13.424 139.08% 13.389 138.72%
F64 2^20 = 1048576 2^4 = 16 17.613 17.568 99.74% 33.221 188.62% 32.327 183.54%
F64 2^24 = 16777216 2^4 = 16 123.329 123.35 100.02% 335.149 271.75% 320.078 259.53%
F64 2^28 = 268435456 2^4 = 16 1732 1734 100.12% 5216 301.15% 4964 286.61%
F64 2^16 = 65536 2^8 = 256 9.608 9.807 102.07% 13.319 138.62% 13.314 138.57%
F64 2^20 = 1048576 2^8 = 256 17.406 17.509 100.59% 32.296 185.55% 31.504 181.00%
F64 2^24 = 16777216 2^8 = 256 110.733 110.981 100.22% 311.497 281.30% 295.842 267.17%
F64 2^28 = 268435456 2^8 = 256 1463 1460 99.79% 4805 328.43% 4540 310.32%
C64 2^16 = 65536 2^1 = 2 10.074 10.159 100.84% 13.477 133.78% 13.468 133.69%
C64 2^20 = 1048576 2^1 = 2 20.715 20.952 101.14% 34.272 165.45% 33.545 161.94%
C64 2^24 = 16777216 2^1 = 2 190.325 183.189 96.25% 385.191 202.39% 371.038 194.95%
C64 2^28 = 268435456 2^1 = 2 2006 1928 96.11% 5213 259.87% 4965 247.51%
C64 2^16 = 65536 2^4 = 16 9.808 10.383 105.86% 13.242 135.01% 13.451 137.14%
C64 2^20 = 1048576 2^4 = 16 18.982 19.423 102.32% 32.57 171.58% 31.842 167.75%
C64 2^24 = 16777216 2^4 = 16 138.008 136.295 98.76% 333.239 241.46% 318.922 231.09%
C64 2^28 = 268435456 2^4 = 16 1891 1814 95.93% 5105 269.96% 4858 256.90%
C64 2^16 = 65536 2^8 = 256 9.71 10.516 108.30% 13.154 135.47% 13.309 137.06%
C64 2^20 = 1048576 2^8 = 256 18.488 19.352 104.67% 31.558 170.69% 30.988 167.61%
C64 2^24 = 16777216 2^8 = 256 122.868 121.011 98.49% 309.584 251.96% 294.645 239.81%
C64 2^28 = 268435456 2^8 = 256 1654 1567 94.74% 4783 289.18% 4532 274.00%

device_run_length_encode_non_trivial_runs

Results
T{ct} Elements{io} MaxSegSize I32 u32 u32/i32 time i64 i64/i32 time u64 u64/i32 time
I8 2^16 = 65536 2^1 = 2 9.831 10.215 103.91% 12.896 131.18% 12.978 132.01%
I8 2^20 = 1048576 2^1 = 2 13.202 13.65 103.39% 23.296 176.46% 23.586 178.65%
I8 2^24 = 16777216 2^1 = 2 73.904 77.171 104.42% 216.216 292.56% 216.095 292.40%
I8 2^28 = 268435456 2^1 = 2 1064 1111 104.42% 3371 316.82% 3366 316.35%
I8 2^16 = 65536 2^4 = 16 9.961 10.701 107.43% 13.017 130.68% 12.924 129.75%
I8 2^20 = 1048576 2^4 = 16 12.649 13.369 105.69% 22.878 180.87% 23.08 182.47%
I8 2^24 = 16777216 2^4 = 16 64.813 68.408 105.55% 197.579 304.84% 197.315 304.44%
I8 2^28 = 268435456 2^4 = 16 920.473 967.702 105.13% 3153 342.54% 3145 341.67%
I8 2^16 = 65536 2^8 = 256 9.687 10.417 107.54% 12.759 131.71% 12.7 131.10%
I8 2^20 = 1048576 2^8 = 256 12.165 13.064 107.39% 22.284 183.18% 22.318 183.46%
I8 2^24 = 16777216 2^8 = 256 59.212 62.08 104.84% 183.462 309.84% 182.81 308.74%
I8 2^28 = 268435456 2^8 = 256 814.032 849.004 104.30% 2914 357.97% 2902 356.50%
I16 2^16 = 65536 2^1 = 2 10.112 9.996 98.85% 12.599 124.59% 13.051 129.06%
I16 2^20 = 1048576 2^1 = 2 14.778 14.775 99.98% 23.81 161.12% 24.224 163.92%
I16 2^24 = 16777216 2^1 = 2 71.811 73.051 101.73% 223.72 311.54% 224.421 312.52%
I16 2^28 = 268435456 2^1 = 2 1001 1019 101.80% 3490 348.65% 3495 349.15%
I16 2^16 = 65536 2^4 = 16 10 9.878 98.78% 12.805 128.05% 13.133 131.33%
I16 2^20 = 1048576 2^4 = 16 14.221 14.41 101.33% 23.365 164.30% 23.747 166.99%
I16 2^24 = 16777216 2^4 = 16 63.451 65.795 103.69% 208.096 327.96% 208.644 328.83%
I16 2^28 = 268435456 2^4 = 16 838.249 879.642 104.94% 3259 388.79% 3259 388.79%
I16 2^16 = 65536 2^8 = 256 10.065 9.984 99.20% 12.92 128.37% 12.849 127.66%
I16 2^20 = 1048576 2^8 = 256 13.464 13.503 100.29% 23.041 171.13% 23.02 170.97%
I16 2^24 = 16777216 2^8 = 256 58.092 59.888 103.09% 192.061 330.62% 191.901 330.34%
I16 2^28 = 268435456 2^8 = 256 740.303 771.366 104.20% 2977 402.13% 2972 401.46%
I32 2^16 = 65536 2^1 = 2 10.643 10.315 96.92% 12.699 119.32% 12.86 120.83%
I32 2^20 = 1048576 2^1 = 2 15.841 15.82 99.87% 25.552 161.30% 25.579 161.47%
I32 2^24 = 16777216 2^1 = 2 94.314 95.05 100.78% 233.144 247.20% 233.103 247.16%
I32 2^28 = 268435456 2^1 = 2 1289 1293 100.31% 3599 279.21% 3600 279.29%
I32 2^16 = 65536 2^4 = 16 10.262 10.341 100.77% 13.048 127.15% 13.045 127.12%
I32 2^20 = 1048576 2^4 = 16 14.977 15.215 101.59% 25.126 167.76% 25.159 167.98%
I32 2^24 = 16777216 2^4 = 16 82.991 84.591 101.93% 217.789 262.42% 217.21 261.73%
I32 2^28 = 268435456 2^4 = 16 1079 1111 102.97% 3339 309.45% 3335 309.08%
I32 2^16 = 65536 2^8 = 256 9.899 10.278 103.83% 12.649 127.78% 12.638 127.67%
I32 2^20 = 1048576 2^8 = 256 14.704 14.869 101.12% 24.665 167.74% 24.532 166.84%
I32 2^24 = 16777216 2^8 = 256 78.633 79.554 101.17% 202.095 257.01% 201.671 256.47%
I32 2^28 = 268435456 2^8 = 256 938.193 966.218 102.99% 3030 322.96% 3021 322.00%
I64 2^16 = 65536 2^1 = 2 10.11 10.259 101.47% 13.999 138.47% 14.113 139.59%
I64 2^20 = 1048576 2^1 = 2 18.116 18.219 100.57% 34.789 192.03% 34.252 189.07%
I64 2^24 = 16777216 2^1 = 2 127.516 128.946 101.12% 357.835 280.62% 336.77 264.10%
I64 2^28 = 268435456 2^1 = 2 1846 1857 100.60% 5583 302.44% 5222 282.88%
I64 2^16 = 65536 2^4 = 16 9.958 10.219 102.62% 14.16 142.20% 14.249 143.09%
I64 2^20 = 1048576 2^4 = 16 18.034 18.107 100.40% 34.125 189.23% 33.323 184.78%
I64 2^24 = 16777216 2^4 = 16 114.594 116.278 101.47% 337.205 294.26% 317.001 276.63%
I64 2^28 = 268435456 2^4 = 16 1579 1588 100.57% 5230 331.22% 4884 309.31%
I64 2^16 = 65536 2^8 = 256 9.888 10.567 106.87% 13.902 140.59% 13.551 137.04%
I64 2^20 = 1048576 2^8 = 256 17.854 18.295 102.47% 33.177 185.82% 32.338 181.12%
I64 2^24 = 16777216 2^8 = 256 107.901 109.165 101.17% 314.767 291.72% 293.549 272.05%
I64 2^28 = 268435456 2^8 = 256 1389 1398 100.65% 4819 346.94% 4465 321.45%
I128 2^16 = 65536 2^1 = 2 10.661 10.864 101.90% 16.315 153.03% 16.072 150.76%
I128 2^20 = 1048576 2^1 = 2 24.338 24.843 102.07% 53.613 220.29% 53.582 220.16%
I128 2^24 = 16777216 2^1 = 2 201.48 202.572 100.54% 683.722 339.35% 685.77 340.37%
I128 2^28 = 268435456 2^1 = 2 2960 2964 100.14% 10842 366.28% 10872 367.30%
I128 2^16 = 65536 2^4 = 16 10.793 11.215 103.91% 16.094 149.12% 15.653 145.03%
I128 2^20 = 1048576 2^4 = 16 24.203 24.95 103.09% 52.624 217.43% 52.486 216.86%
I128 2^24 = 16777216 2^4 = 16 187.691 188.302 100.33% 648.954 345.76% 650.151 346.39%
I128 2^28 = 268435456 2^4 = 16 2725 2722 99.89% 10230 375.41% 10250 376.15%
I128 2^16 = 65536 2^8 = 256 10.548 11.047 104.73% 16.004 151.73% 15.393 145.93%
I128 2^20 = 1048576 2^8 = 256 23.754 24.379 102.63% 51.907 218.52% 51.789 218.02%
I128 2^24 = 16777216 2^8 = 256 172.929 173.353 100.25% 627.051 362.61% 628.744 363.59%
I128 2^28 = 268435456 2^8 = 256 2456 2446 99.59% 9860 401.47% 9885 402.48%
F32 2^16 = 65536 2^1 = 2 10.106 10.741 106.28% 12.974 128.38% 12.471 123.40%
F32 2^20 = 1048576 2^1 = 2 15.503 15.907 102.61% 25.608 165.18% 25.278 163.05%
F32 2^24 = 16777216 2^1 = 2 93.833 95.038 101.28% 232.456 247.73% 232.752 248.05%
F32 2^28 = 268435456 2^1 = 2 1103 1132 102.63% 3346 303.35% 3351 303.81%
F32 2^16 = 65536 2^4 = 16 10.288 10.974 106.67% 13.159 127.91% 12.691 123.36%
F32 2^20 = 1048576 2^4 = 16 14.734 15.348 104.17% 24.966 169.44% 24.714 167.73%
F32 2^24 = 16777216 2^4 = 16 82.972 84.659 102.03% 216.88 261.39% 217.037 261.58%
F32 2^28 = 268435456 2^4 = 16 1065 1100 103.29% 3303 310.14% 3307 310.52%
F32 2^16 = 65536 2^8 = 256 10.108 10.494 103.82% 12.407 122.74% 12.252 121.21%
F32 2^20 = 1048576 2^8 = 256 14.778 14.984 101.39% 24.194 163.72% 24.237 164.01%
F32 2^24 = 16777216 2^8 = 256 78.798 79.686 101.13% 201.098 255.21% 201.162 255.29%
F32 2^28 = 268435456 2^8 = 256 936.449 965.129 103.06% 3020 322.49% 3020 322.49%
F64 2^16 = 65536 2^1 = 2 9.838 10.414 105.85% 13.96 141.90% 13.726 139.52%
F64 2^20 = 1048576 2^1 = 2 17.902 18.37 102.61% 34.294 191.57% 33.745 188.50%
F64 2^24 = 16777216 2^1 = 2 127.562 129.21 101.29% 356.861 279.75% 336.147 263.52%
F64 2^28 = 268435456 2^1 = 2 1846 1857 100.60% 5575 302.00% 5214 282.45%
F64 2^16 = 65536 2^4 = 16 10.056 10.526 104.67% 13.786 137.09% 13.893 138.16%
F64 2^20 = 1048576 2^4 = 16 18.012 18.228 101.20% 33.768 187.48% 33.734 187.29%
F64 2^24 = 16777216 2^4 = 16 114.995 116.605 101.40% 335.504 291.76% 315.951 274.75%
F64 2^28 = 268435456 2^4 = 16 1580 1588 100.51% 5201 329.18% 4870 308.23%
F64 2^16 = 65536 2^8 = 256 10.272 10.532 102.53% 13.478 131.21% 13.704 133.41%
F64 2^20 = 1048576 2^8 = 256 17.908 17.944 100.20% 32.815 183.24% 32.345 180.62%
F64 2^24 = 16777216 2^8 = 256 108.067 108.931 100.80% 312.966 289.60% 292.697 270.85%
F64 2^28 = 268435456 2^8 = 256 1399 1403 100.29% 4795 342.74% 4442 317.51%
C64 2^16 = 65536 2^1 = 2 10.397 10.833 104.19% 13.643 131.22% 13.601 130.82%
C64 2^20 = 1048576 2^1 = 2 19.699 20.667 104.91% 34.22 173.71% 33.628 170.71%
C64 2^24 = 16777216 2^1 = 2 140.843 143.009 101.54% 355.734 252.57% 335.68 238.34%
C64 2^28 = 268435456 2^1 = 2 1810 1847 102.04% 5189 286.69% 4852 268.07%
C64 2^16 = 65536 2^4 = 16 10.549 11.072 104.96% 13.499 127.96% 13.667 129.56%
C64 2^20 = 1048576 2^4 = 16 19.659 20.563 104.60% 33.663 171.23% 33.553 170.68%
C64 2^24 = 16777216 2^4 = 16 136.323 138.222 101.39% 334.559 245.42% 315.687 231.57%
C64 2^28 = 268435456 2^4 = 16 1815 1848 101.82% 5111 281.60% 4779 263.31%
C64 2^16 = 65536 2^8 = 256 10.316 10.532 102.09% 13.301 128.94% 13.787 133.65%
C64 2^20 = 1048576 2^8 = 256 19.161 19.88 103.75% 32.717 170.75% 32.548 169.87%
C64 2^24 = 16777216 2^8 = 256 120.023 123.936 103.26% 312.474 260.35% 292.714 243.88%
C64 2^28 = 268435456 2^8 = 256 1559 1649 105.77% 4783 306.80% 4442 284.93%
@elstehle
Copy link
Collaborator

elstehle commented May 30, 2024

Priority-wise, I think we want to focus on the algorithms that currently do not support large number of items yet (see overview). That is,

  • device_select.cuh,
  • device_partition.cuh,
  • device_scan.cuh,
  • device_segmented_sort.cuh,
  • device_segmented_radix_sort.cuh,
  • device_run_length_encode.cuh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

2 participants