Skip to content

Fix radix sort regression - #9816

Closed
bernhardmgruber wants to merge 2 commits into
NVIDIA:mainfrom
bernhardmgruber:fix_radix_sort_regression
Closed

Fix radix sort regression#9816
bernhardmgruber wants to merge 2 commits into
NVIDIA:mainfrom
bernhardmgruber:fix_radix_sort_regression

Conversation

@bernhardmgruber

Copy link
Copy Markdown
Contributor

Those were introduced in #6642.

Fixes: #9768

CCCL 3.3 vs 3.4 with this change:

## [0] NVIDIA B200

|  T{ct}  |  OffsetT{ct}  |  Elements{io}  |  Entropy  |   Ref Time |   Ref Noise |   Cmp Time |   Cmp Noise |        Diff |   %Diff |  Status  |
|---------|---------------|----------------|-----------|------------|-------------|------------|-------------|-------------|---------|----------|
|   I8    |      I32      |      2^16      |     1     |  22.708 us |       1.80% |  22.727 us |       1.58% |    0.019 us |   0.09% |  🔵 SAME  |
|   I8    |      I32      |      2^20      |     1     |  30.200 us |       2.40% |  30.272 us |       2.53% |    0.073 us |   0.24% |  🔵 SAME  |
|   I8    |      I32      |      2^24      |     1     | 121.423 us |       0.48% | 121.614 us |       0.42% |    0.191 us |   0.16% |  🔵 SAME  |
|   I8    |      I32      |      2^28      |     1     |   1.334 ms |       0.13% |   1.334 ms |       0.13% |    0.125 us |   0.01% |  🔵 SAME  |
|   I8    |      I32      |      2^16      |   0.544   |  22.292 us |       2.68% |  21.804 us |       3.31% |   -0.488 us |  -2.19% |  🔵 SAME  |
|   I8    |      I32      |      2^20      |   0.544   |  31.315 us |       1.21% |  31.630 us |       0.43% |    0.314 us |   1.00% |  🔴 SLOW  |
|   I8    |      I32      |      2^24      |   0.544   | 122.878 us |       0.34% | 122.980 us |       0.45% |    0.101 us |   0.08% |  🔵 SAME  |
|   I8    |      I32      |      2^28      |   0.544   |   1.348 ms |       0.15% |   1.348 ms |       0.16% |   -0.023 us |  -0.00% |  🔵 SAME  |
|   I8    |      I32      |      2^16      |   0.201   |  22.360 us |       2.25% |  22.432 us |       2.31% |    0.071 us |   0.32% |  🔵 SAME  |
|   I8    |      I32      |      2^20      |   0.201   |  29.161 us |       1.74% |  29.151 us |       1.58% |   -0.010 us |  -0.04% |  🔵 SAME  |
|   I8    |      I32      |      2^24      |   0.201   | 115.128 us |       0.54% | 115.083 us |       0.51% |   -0.046 us |  -0.04% |  🔵 SAME  |
|   I8    |      I32      |      2^28      |   0.201   |   1.277 ms |       0.13% |   1.277 ms |       0.12% |    0.042 us |   0.00% |  🔵 SAME  |
|   I8    |      I64      |      2^16      |     1     |  22.388 us |       2.27% |  22.419 us |       2.23% |    0.031 us |   0.14% |  🔵 SAME  |
|   I8    |      I64      |      2^20      |     1     |  31.669 us |       0.82% |  31.655 us |       0.85% |   -0.014 us |  -0.05% |  🔵 SAME  |
|   I8    |      I64      |      2^24      |     1     | 121.970 us |       0.40% | 121.832 us |       0.39% |   -0.139 us |  -0.11% |  🔵 SAME  |
|   I8    |      I64      |      2^28      |     1     |   1.335 ms |       0.16% |   1.335 ms |       0.16% |   -0.028 us |  -0.00% |  🔵 SAME  |
|   I8    |      I64      |      2^16      |   0.544   |  23.557 us |       0.21% |  23.449 us |       1.10% |   -0.108 us |  -0.46% |  🟢 FAST  |
|   I8    |      I64      |      2^20      |   0.544   |  30.745 us |       0.61% |  30.808 us |       0.66% |    0.063 us |   0.20% |  🔵 SAME  |
|   I8    |      I64      |      2^24      |   0.544   | 125.979 us |       0.23% | 126.022 us |       0.46% |    0.043 us |   0.03% |  🔵 SAME  |
|   I8    |      I64      |      2^28      |   0.544   |   1.357 ms |       0.10% |   1.357 ms |       0.10% |   -0.051 us |  -0.00% |  🔵 SAME  |
|   I8    |      I64      |      2^16      |   0.201   |  21.665 us |       2.30% |  21.670 us |       2.28% |    0.004 us |   0.02% |  🔵 SAME  |
|   I8    |      I64      |      2^20      |   0.201   |  29.694 us |       2.07% |  29.701 us |       2.08% |    0.007 us |   0.02% |  🔵 SAME  |
|   I8    |      I64      |      2^24      |   0.201   | 115.168 us |       0.74% | 115.165 us |       0.69% |   -0.003 us |  -0.00% |  🔵 SAME  |
|   I8    |      I64      |      2^28      |   0.201   |   1.274 ms |       0.37% |   1.274 ms |       0.38% |    0.066 us |   0.01% |  🔵 SAME  |
|   I16   |      I32      |      2^16      |     1     |  33.770 us |       1.45% |  33.815 us |       1.42% |    0.044 us |   0.13% |  🔵 SAME  |
|   I16   |      I32      |      2^20      |     1     |  45.664 us |       1.83% |  45.643 us |       1.90% |   -0.021 us |  -0.05% |  🔵 SAME  |
|   I16   |      I32      |      2^24      |     1     | 203.287 us |       0.45% | 203.286 us |       0.47% |   -0.002 us |  -0.00% |  🔵 SAME  |
|   I16   |      I32      |      2^28      |     1     |   2.583 ms |       0.06% |   2.583 ms |       0.06% |   -0.173 us |  -0.01% |  🔵 SAME  |
|   I16   |      I32      |      2^16      |   0.544   |  32.585 us |       2.90% |  32.613 us |       3.01% |    0.028 us |   0.09% |  🔵 SAME  |
|   I16   |      I32      |      2^20      |   0.544   |  46.288 us |       1.29% |  46.283 us |       1.24% |   -0.006 us |  -0.01% |  🔵 SAME  |
|   I16   |      I32      |      2^24      |   0.544   | 207.682 us |       0.35% | 207.695 us |       0.37% |    0.013 us |   0.01% |  🔵 SAME  |
|   I16   |      I32      |      2^28      |   0.544   |   2.633 ms |       0.08% |   2.633 ms |       0.07% |    0.342 us |   0.01% |  🔵 SAME  |
|   I16   |      I32      |      2^16      |   0.201   |  32.920 us |       3.04% |  32.767 us |       2.98% |   -0.154 us |  -0.47% |  🔵 SAME  |
|   I16   |      I32      |      2^20      |   0.201   |  43.754 us |       1.66% |  43.723 us |       1.78% |   -0.030 us |  -0.07% |  🔵 SAME  |
|   I16   |      I32      |      2^24      |   0.201   | 194.488 us |       0.53% | 194.395 us |       0.50% |   -0.093 us |  -0.05% |  🔵 SAME  |
|   I16   |      I32      |      2^28      |   0.201   |   2.466 ms |       0.14% |   2.466 ms |       0.13% |   -0.014 us |  -0.00% |  🔵 SAME  |
|   I16   |      I64      |      2^16      |     1     |  32.019 us |       1.59% |  31.983 us |       1.53% |   -0.036 us |  -0.11% |  🔵 SAME  |
|   I16   |      I64      |      2^20      |     1     |  46.771 us |       2.07% |  46.767 us |       1.96% |   -0.004 us |  -0.01% |  🔵 SAME  |
|   I16   |      I64      |      2^24      |     1     | 205.617 us |       0.36% | 205.638 us |       0.40% |    0.021 us |   0.01% |  🔵 SAME  |
|   I16   |      I64      |      2^28      |     1     |   2.498 ms |       0.28% |   2.498 ms |       0.28% |    0.153 us |   0.01% |  🔵 SAME  |
|   I16   |      I64      |      2^16      |   0.544   |  31.906 us |       1.24% |  31.923 us |       1.04% |    0.017 us |   0.05% |  🔵 SAME  |
|   I16   |      I64      |      2^20      |   0.544   |  46.756 us |       2.05% |  46.780 us |       1.99% |    0.024 us |   0.05% |  🔵 SAME  |
|   I16   |      I64      |      2^24      |   0.544   | 209.722 us |       0.32% | 209.715 us |       0.34% |   -0.006 us |  -0.00% |  🔵 SAME  |
|   I16   |      I64      |      2^28      |   0.544   |   2.558 ms |       0.28% |   2.558 ms |       0.29% |   -0.270 us |  -0.01% |  🔵 SAME  |
|   I16   |      I64      |      2^16      |   0.201   |  31.944 us |       2.84% |  31.902 us |       2.91% |   -0.042 us |  -0.13% |  🔵 SAME  |
|   I16   |      I64      |      2^20      |   0.201   |  44.803 us |       2.04% |  44.823 us |       2.06% |    0.020 us |   0.04% |  🔵 SAME  |
|   I16   |      I64      |      2^24      |   0.201   | 196.451 us |       0.52% | 196.444 us |       0.50% |   -0.008 us |  -0.00% |  🔵 SAME  |
|   I16   |      I64      |      2^28      |   0.201   |   2.399 ms |       0.29% |   2.399 ms |       0.29% |    0.443 us |   0.02% |  🔵 SAME  |
|   I32   |      I32      |      2^16      |     1     |  51.025 us |       0.99% |  50.967 us |       1.25% |   -0.058 us |  -0.11% |  🔵 SAME  |
|   I32   |      I32      |      2^20      |     1     |  76.325 us |       0.97% |  76.292 us |       0.91% |   -0.033 us |  -0.04% |  🔵 SAME  |
|   I32   |      I32      |      2^24      |     1     | 372.013 us |       0.23% | 372.100 us |       0.26% |    0.087 us |   0.02% |  🔵 SAME  |
|   I32   |      I32      |      2^28      |     1     |   4.987 ms |       0.16% |   4.986 ms |       0.16% |   -0.293 us |  -0.01% |  🔵 SAME  |
|   I32   |      I32      |      2^16      |   0.544   |  51.213 us |       0.28% |  51.180 us |       0.68% |   -0.033 us |  -0.07% |  🔵 SAME  |
|   I32   |      I32      |      2^20      |   0.544   |  77.444 us |       1.06% |  77.503 us |       1.01% |    0.060 us |   0.08% |  🔵 SAME  |
|   I32   |      I32      |      2^24      |   0.544   | 380.281 us |       0.22% | 380.282 us |       0.21% |    0.001 us |   0.00% |  🔵 SAME  |
|   I32   |      I32      |      2^28      |   0.544   |   5.132 ms |       0.21% |   5.132 ms |       0.22% |    0.871 us |   0.02% |  🔵 SAME  |
|   I32   |      I32      |      2^16      |   0.201   |  49.624 us |       1.74% |  49.598 us |       1.56% |   -0.026 us |  -0.05% |  🔵 SAME  |
|   I32   |      I32      |      2^20      |   0.201   |  74.031 us |       0.99% |  73.974 us |       0.89% |   -0.057 us |  -0.08% |  🔵 SAME  |
|   I32   |      I32      |      2^24      |   0.201   | 359.885 us |       0.24% | 359.946 us |       0.24% |    0.061 us |   0.02% |  🔵 SAME  |
|   I32   |      I32      |      2^28      |   0.201   |   4.789 ms |       0.18% |   4.789 ms |       0.17% |   -0.023 us |  -0.00% |  🔵 SAME  |
|   I32   |      I64      |      2^16      |     1     |  51.559 us |       1.46% |  51.622 us |       1.44% |    0.063 us |   0.12% |  🔵 SAME  |
|   I32   |      I64      |      2^20      |     1     |  77.783 us |       0.59% |  77.817 us |       0.61% |    0.034 us |   0.04% |  🔵 SAME  |
|   I32   |      I64      |      2^24      |     1     | 384.129 us |       0.16% | 384.210 us |       0.21% |    0.081 us |   0.02% |  🔵 SAME  |
|   I32   |      I64      |      2^28      |     1     |   5.138 ms |       0.06% |   5.137 ms |       0.06% |   -0.655 us |  -0.01% |  🔵 SAME  |
|   I32   |      I64      |      2^16      |   0.544   |  51.856 us |       1.26% |  51.694 us |       1.27% |   -0.162 us |  -0.31% |  🔵 SAME  |
|   I32   |      I64      |      2^20      |   0.544   |  76.893 us |       0.98% |  76.814 us |       0.99% |   -0.079 us |  -0.10% |  🔵 SAME  |
|   I32   |      I64      |      2^24      |   0.544   | 393.605 us |       0.25% | 393.611 us |       0.24% |    0.006 us |   0.00% |  🔵 SAME  |
|   I32   |      I64      |      2^28      |   0.544   |   5.279 ms |       0.06% |   5.279 ms |       0.07% |   -0.119 us |  -0.00% |  🔵 SAME  |
|   I32   |      I64      |      2^16      |   0.201   |  50.331 us |       1.05% |  50.389 us |       1.15% |    0.058 us |   0.12% |  🔵 SAME  |
|   I32   |      I64      |      2^20      |   0.201   |  73.698 us |       1.35% |  73.712 us |       1.28% |    0.014 us |   0.02% |  🔵 SAME  |
|   I32   |      I64      |      2^24      |   0.201   | 370.924 us |       0.29% | 370.771 us |       0.27% |   -0.153 us |  -0.04% |  🔵 SAME  |
|   I32   |      I64      |      2^28      |   0.201   |   4.940 ms |       0.06% |   4.940 ms |       0.06% |   -0.295 us |  -0.01% |  🔵 SAME  |
|   I64   |      I32      |      2^16      |     1     |  82.089 us |       0.66% |  82.061 us |       0.50% |   -0.028 us |  -0.03% |  🔵 SAME  |
|   I64   |      I32      |      2^20      |     1     | 143.531 us |       0.47% | 143.540 us |       0.43% |    0.009 us |   0.01% |  🔵 SAME  |
|   I64   |      I32      |      2^24      |     1     |   1.021 ms |       0.15% |   1.021 ms |       0.13% |    0.088 us |   0.01% |  🔵 SAME  |
|   I64   |      I32      |      2^28      |     1     |  14.943 ms |       0.07% |  14.944 ms |       0.07% |    0.694 us |   0.00% |  🔵 SAME  |
|   I64   |      I32      |      2^16      |   0.544   |  81.539 us |       0.89% |  81.643 us |       1.16% |    0.104 us |   0.13% |  🔵 SAME  |
|   I64   |      I32      |      2^20      |   0.544   | 142.117 us |       0.65% | 142.384 us |       0.36% |    0.267 us |   0.19% |  🔵 SAME  |
|   I64   |      I32      |      2^24      |   0.544   |   1.021 ms |       0.14% |   1.021 ms |       0.13% |   -0.313 us |  -0.03% |  🔵 SAME  |
|   I64   |      I32      |      2^28      |   0.544   |  14.923 ms |       0.09% |  14.920 ms |       0.09% |   -3.075 us |  -0.02% |  🔵 SAME  |
|   I64   |      I32      |      2^16      |   0.201   |  79.424 us |       0.98% |  79.324 us |       1.11% |   -0.100 us |  -0.13% |  🔵 SAME  |
|   I64   |      I32      |      2^20      |   0.201   | 137.525 us |       0.52% | 137.582 us |       0.47% |    0.057 us |   0.04% |  🔵 SAME  |
|   I64   |      I32      |      2^24      |   0.201   | 977.379 us |       0.16% | 977.326 us |       0.15% |   -0.053 us |  -0.01% |  🔵 SAME  |
|   I64   |      I32      |      2^28      |   0.201   |  14.293 ms |       0.04% |  14.144 ms |       0.16% | -149.638 us |  -1.05% |  🟢 FAST  |
|   I64   |      I64      |      2^16      |     1     |  84.342 us |       1.10% |  84.789 us |       0.72% |    0.447 us |   0.53% |  🔵 SAME  |
|   I64   |      I64      |      2^20      |     1     | 143.846 us |       0.64% | 144.106 us |       0.52% |    0.260 us |   0.18% |  🔵 SAME  |
|   I64   |      I64      |      2^24      |     1     |   1.021 ms |       0.14% |   1.022 ms |       0.14% |    0.159 us |   0.02% |  🔵 SAME  |
|   I64   |      I64      |      2^28      |     1     |  14.957 ms |       0.13% |  14.956 ms |       0.13% |   -1.104 us |  -0.01% |  🔵 SAME  |
|   I64   |      I64      |      2^16      |   0.544   |  83.318 us |       0.87% |  83.380 us |       1.01% |    0.062 us |   0.07% |  🔵 SAME  |
|   I64   |      I64      |      2^20      |   0.544   | 142.071 us |       0.53% | 142.106 us |       0.59% |    0.035 us |   0.02% |  🔵 SAME  |
|   I64   |      I64      |      2^24      |   0.544   |   1.022 ms |       0.14% |   1.022 ms |       0.14% |    0.033 us |   0.00% |  🔵 SAME  |
|   I64   |      I64      |      2^28      |   0.544   |  14.905 ms |       0.16% |  15.059 ms |       0.04% |  153.273 us |   1.03% |  🔴 SLOW  |
|   I64   |      I64      |      2^16      |   0.201   |  80.936 us |       0.46% |  81.010 us |       0.63% |    0.074 us |   0.09% |  🔵 SAME  |
|   I64   |      I64      |      2^20      |   0.201   | 137.587 us |       0.71% | 137.650 us |       0.64% |    0.063 us |   0.05% |  🔵 SAME  |
|   I64   |      I64      |      2^24      |   0.201   | 978.085 us |       0.16% | 978.033 us |       0.16% |   -0.052 us |  -0.01% |  🔵 SAME  |
|   I64   |      I64      |      2^28      |   0.201   |  14.342 ms |       0.03% |  14.107 ms |       0.21% | -235.230 us |  -1.64% |  🟢 FAST  |
|  I128   |      I32      |      2^16      |     1     | 140.103 us |       0.38% | 140.061 us |       0.35% |   -0.042 us |  -0.03% |  🔵 SAME  |
|  I128   |      I32      |      2^20      |     1     | 333.537 us |       0.37% | 333.663 us |       0.36% |    0.126 us |   0.04% |  🔵 SAME  |
|  I128   |      I32      |      2^24      |     1     |   3.439 ms |       0.07% |   3.439 ms |       0.07% |   -0.082 us |  -0.00% |  🔵 SAME  |
|  I128   |      I32      |      2^28      |     1     |  52.623 ms |       0.05% |  52.620 ms |       0.05% |   -2.357 us |  -0.00% |  🔵 SAME  |
|  I128   |      I32      |      2^16      |   0.544   | 137.885 us |       0.51% | 137.872 us |       0.58% |   -0.014 us |  -0.01% |  🔵 SAME  |
|  I128   |      I32      |      2^20      |   0.544   | 333.326 us |       0.33% | 333.276 us |       0.33% |   -0.050 us |  -0.01% |  🔵 SAME  |
|  I128   |      I32      |      2^24      |   0.544   |   3.419 ms |       0.07% |   3.419 ms |       0.07% |   -0.114 us |  -0.00% |  🔵 SAME  |
|  I128   |      I32      |      2^28      |   0.544   |  52.236 ms |       0.05% |  52.235 ms |       0.05% |   -1.776 us |  -0.00% |  🔵 SAME  |
|  I128   |      I32      |      2^16      |   0.201   | 138.417 us |       0.70% | 138.352 us |       0.69% |   -0.065 us |  -0.05% |  🔵 SAME  |
|  I128   |      I32      |      2^20      |   0.201   | 327.220 us |       0.36% | 327.148 us |       0.40% |   -0.072 us |  -0.02% |  🔵 SAME  |
|  I128   |      I32      |      2^24      |   0.201   |   3.377 ms |       0.07% |   3.377 ms |       0.07% |   -0.306 us |  -0.01% |  🔵 SAME  |
|  I128   |      I32      |      2^28      |   0.201   |  51.428 ms |       0.05% |  51.429 ms |       0.05% |    1.198 us |   0.00% |  🔵 SAME  |
|  I128   |      I64      |      2^16      |     1     | 139.437 us |       0.72% | 139.737 us |       0.65% |    0.300 us |   0.22% |  🔵 SAME  |
|  I128   |      I64      |      2^20      |     1     | 335.409 us |       0.35% | 335.634 us |       0.35% |    0.225 us |   0.07% |  🔵 SAME  |
|  I128   |      I64      |      2^24      |     1     |   3.444 ms |       0.07% |   3.444 ms |       0.07% |    0.512 us |   0.01% |  🔵 SAME  |
|  I128   |      I64      |      2^28      |     1     |  53.466 ms |       0.02% |  53.465 ms |       0.02% |   -1.407 us |  -0.00% |  🔵 SAME  |
|  I128   |      I64      |      2^16      |   0.544   | 140.727 us |       0.59% | 140.934 us |       0.67% |    0.207 us |   0.15% |  🔵 SAME  |
|  I128   |      I64      |      2^20      |   0.544   | 332.060 us |       0.34% | 332.302 us |       0.35% |    0.242 us |   0.07% |  🔵 SAME  |
|  I128   |      I64      |      2^24      |   0.544   |   3.423 ms |       0.07% |   3.423 ms |       0.06% |    0.203 us |   0.01% |  🔵 SAME  |
|  I128   |      I64      |      2^28      |   0.544   |  53.081 ms |       0.02% |  53.079 ms |       0.02% |   -1.720 us |  -0.00% |  🔵 SAME  |
|  I128   |      I64      |      2^16      |   0.201   | 137.804 us |       0.59% | 138.130 us |       0.39% |    0.326 us |   0.24% |  🔵 SAME  |
|  I128   |      I64      |      2^20      |   0.201   | 329.277 us |       0.34% | 329.477 us |       0.35% |    0.200 us |   0.06% |  🔵 SAME  |
|  I128   |      I64      |      2^24      |   0.201   |   3.380 ms |       0.07% |   3.380 ms |       0.07% |    0.219 us |   0.01% |  🔵 SAME  |
|  I128   |      I64      |      2^28      |   0.201   |  52.280 ms |       0.02% |  52.278 ms |       0.02% |   -1.332 us |  -0.00% |  🔵 SAME  |
|   F32   |      I32      |      2^16      |     1     |  51.854 us |       1.85% |  52.251 us |       1.85% |    0.397 us |   0.77% |  🔵 SAME  |
|   F32   |      I32      |      2^20      |     1     |  76.796 us |       1.31% |  77.135 us |       1.11% |    0.339 us |   0.44% |  🔵 SAME  |
|   F32   |      I32      |      2^24      |     1     | 440.191 us |       0.25% | 440.309 us |       0.25% |    0.118 us |   0.03% |  🔵 SAME  |
|   F32   |      I32      |      2^28      |     1     |   6.157 ms |       0.19% |   6.158 ms |       0.19% |    0.972 us |   0.02% |  🔵 SAME  |
|   F32   |      I32      |      2^16      |   0.544   |  52.775 us |       1.58% |  52.593 us |       1.16% |   -0.182 us |  -0.35% |  🔵 SAME  |
|   F32   |      I32      |      2^20      |   0.544   |  77.476 us |       1.09% |  77.819 us |       1.31% |    0.343 us |   0.44% |  🔵 SAME  |
|   F32   |      I32      |      2^24      |   0.544   | 446.202 us |       0.20% | 446.436 us |       0.23% |    0.234 us |   0.05% |  🔵 SAME  |
|   F32   |      I32      |      2^28      |   0.544   |   6.230 ms |       0.19% |   6.229 ms |       0.19% |   -0.538 us |  -0.01% |  🔵 SAME  |
|   F32   |      I32      |      2^16      |   0.201   |  51.416 us |       0.85% |  51.423 us |       0.77% |    0.007 us |   0.01% |  🔵 SAME  |
|   F32   |      I32      |      2^20      |   0.201   |  74.582 us |       0.89% |  74.600 us |       0.93% |    0.017 us |   0.02% |  🔵 SAME  |
|   F32   |      I32      |      2^24      |   0.201   | 430.957 us |       0.28% | 430.981 us |       0.27% |    0.024 us |   0.01% |  🔵 SAME  |
|   F32   |      I32      |      2^28      |   0.201   |   6.000 ms |       0.25% |   6.000 ms |       0.24% |   -0.394 us |  -0.01% |  🔵 SAME  |
|   F32   |      I64      |      2^16      |     1     |  50.171 us |       0.49% |  50.188 us |       0.52% |    0.017 us |   0.03% |  🔵 SAME  |
|   F32   |      I64      |      2^20      |     1     |  76.958 us |       0.79% |  76.977 us |       0.81% |    0.019 us |   0.02% |  🔵 SAME  |
|   F32   |      I64      |      2^24      |     1     | 393.328 us |       0.18% | 393.300 us |       0.17% |   -0.027 us |  -0.01% |  🔵 SAME  |
|   F32   |      I64      |      2^28      |     1     |   5.350 ms |       0.20% |   5.351 ms |       0.20% |    1.202 us |   0.02% |  🔵 SAME  |
|   F32   |      I64      |      2^16      |   0.544   |  50.171 us |       0.18% |  50.185 us |       0.21% |    0.014 us |   0.03% |  🔵 SAME  |
|   F32   |      I64      |      2^20      |   0.544   |  76.987 us |       0.73% |  77.082 us |       0.93% |    0.095 us |   0.12% |  🔵 SAME  |
|   F32   |      I64      |      2^24      |   0.544   | 399.625 us |       0.23% | 400.024 us |       0.21% |    0.399 us |   0.10% |  🔵 SAME  |
|   F32   |      I64      |      2^28      |   0.544   |   5.438 ms |       0.18% |   5.438 ms |       0.19% |   -0.097 us |  -0.00% |  🔵 SAME  |
|   F32   |      I64      |      2^16      |   0.201   |  49.364 us |       1.22% |  49.788 us |       1.58% |    0.424 us |   0.86% |  🔵 SAME  |
|   F32   |      I64      |      2^20      |   0.201   |  74.667 us |       1.28% |  74.867 us |       0.70% |    0.199 us |   0.27% |  🔵 SAME  |
|   F32   |      I64      |      2^24      |   0.201   | 383.607 us |       0.22% | 383.898 us |       0.19% |    0.291 us |   0.08% |  🔵 SAME  |
|   F32   |      I64      |      2^28      |   0.201   |   5.218 ms |       0.17% |   5.219 ms |       0.17% |    0.543 us |   0.01% |  🔵 SAME  |
|   F64   |      I32      |      2^16      |     1     |  85.113 us |       0.49% |  85.053 us |       0.43% |   -0.060 us |  -0.07% |  🔵 SAME  |
|   F64   |      I32      |      2^20      |     1     | 146.916 us |       0.59% | 146.856 us |       0.57% |   -0.060 us |  -0.04% |  🔵 SAME  |
|   F64   |      I32      |      2^24      |     1     |   1.044 ms |       0.14% |   1.044 ms |       0.13% |   -0.082 us |  -0.01% |  🔵 SAME  |
|   F64   |      I32      |      2^28      |     1     |  15.270 ms |       0.03% |  15.270 ms |       0.04% |   -0.252 us |  -0.00% |  🔵 SAME  |
|   F64   |      I32      |      2^16      |   0.544   |  87.927 us |       1.15% |  87.882 us |       1.15% |   -0.045 us |  -0.05% |  🔵 SAME  |
|   F64   |      I32      |      2^20      |   0.544   | 146.327 us |       0.32% | 146.335 us |       0.31% |    0.008 us |   0.01% |  🔵 SAME  |
|   F64   |      I32      |      2^24      |   0.544   |   1.063 ms |       0.13% |   1.062 ms |       0.13% |   -0.310 us |  -0.03% |  🔵 SAME  |
|   F64   |      I32      |      2^28      |   0.544   |  15.506 ms |       0.03% |  15.505 ms |       0.03% |   -0.901 us |  -0.01% |  🔵 SAME  |
|   F64   |      I32      |      2^16      |   0.201   |  84.990 us |       0.15% |  84.701 us |       0.53% |   -0.289 us |  -0.34% |  🟢 FAST  |
|   F64   |      I32      |      2^20      |   0.201   | 143.641 us |       0.69% | 143.300 us |       0.63% |   -0.341 us |  -0.24% |  🔵 SAME  |
|   F64   |      I32      |      2^24      |   0.201   |   1.028 ms |       0.12% |   1.028 ms |       0.12% |   -0.344 us |  -0.03% |  🔵 SAME  |
|   F64   |      I32      |      2^28      |   0.201   |  14.959 ms |       0.05% |  14.977 ms |       0.03% |   17.180 us |   0.11% |  🔴 SLOW  |
|   F64   |      I64      |      2^16      |     1     |  86.319 us |       0.71% |  86.238 us |       0.55% |   -0.081 us |  -0.09% |  🔵 SAME  |
|   F64   |      I64      |      2^20      |     1     | 147.176 us |       0.61% | 147.290 us |       0.60% |    0.114 us |   0.08% |  🔵 SAME  |
|   F64   |      I64      |      2^24      |     1     |   1.048 ms |       0.13% |   1.048 ms |       0.13% |   -0.186 us |  -0.02% |  🔵 SAME  |
|   F64   |      I64      |      2^28      |     1     |  15.418 ms |       0.03% |  15.417 ms |       0.03% |   -0.313 us |  -0.00% |  🔵 SAME  |
|   F64   |      I64      |      2^16      |   0.544   |  89.084 us |       0.37% |  88.839 us |       0.82% |   -0.245 us |  -0.27% |  🔵 SAME  |
|   F64   |      I64      |      2^20      |   0.544   | 147.437 us |       0.67% | 147.243 us |       0.53% |   -0.194 us |  -0.13% |  🔵 SAME  |
|   F64   |      I64      |      2^24      |   0.544   |   1.068 ms |       0.11% |   1.067 ms |       0.12% |   -0.429 us |  -0.04% |  🔵 SAME  |
|   F64   |      I64      |      2^28      |   0.544   |  15.646 ms |       0.02% |  15.646 ms |       0.02% |   -0.241 us |  -0.00% |  🔵 SAME  |
|   F64   |      I64      |      2^16      |   0.201   |  86.073 us |       1.09% |  85.948 us |       0.63% |   -0.125 us |  -0.15% |  🔵 SAME  |
|   F64   |      I64      |      2^20      |   0.201   | 144.081 us |       0.60% | 143.765 us |       0.65% |   -0.316 us |  -0.22% |  🔵 SAME  |
|   F64   |      I64      |      2^24      |   0.201   |   1.035 ms |       0.13% |   1.035 ms |       0.12% |   -0.428 us |  -0.04% |  🔵 SAME  |
|   F64   |      I64      |      2^28      |   0.201   |  15.161 ms |       0.02% |  15.132 ms |       0.04% |  -29.633 us |  -0.20% |  🟢 FAST  |

Impact of this PR:

## [0] NVIDIA B200

|  T{ct}  |  OffsetT{ct}  |  Elements{io}  |  Entropy  |   Ref Time |   Ref Noise |   Cmp Time |   Cmp Noise |         Diff |   %Diff |  Status  |
|---------|---------------|----------------|-----------|------------|-------------|------------|-------------|--------------|---------|----------|
|   I8    |      I32      |      2^16      |     1     |  22.760 us |       1.68% |  22.727 us |       1.58% |    -0.033 us |  -0.14% |  🔵 SAME  |
|   I8    |      I32      |      2^20      |     1     |  31.490 us |       1.11% |  30.272 us |       2.53% |    -1.218 us |  -3.87% |  🟢 FAST  |
|   I8    |      I32      |      2^24      |     1     | 150.446 us |       0.29% | 121.614 us |       0.42% |   -28.832 us | -19.16% |  🟢 FAST  |
|   I8    |      I32      |      2^28      |     1     |   1.858 ms |       0.27% |   1.334 ms |       0.13% |  -523.154 us | -28.16% |  🟢 FAST  |
|   I8    |      I32      |      2^16      |   0.544   |  21.593 us |       2.02% |  21.804 us |       3.31% |     0.211 us |   0.98% |  🔵 SAME  |
|   I8    |      I32      |      2^20      |   0.544   |  31.925 us |       2.08% |  31.630 us |       0.43% |    -0.295 us |  -0.92% |  🟢 FAST  |
|   I8    |      I32      |      2^24      |   0.544   | 149.552 us |       0.22% | 122.980 us |       0.45% |   -26.573 us | -17.77% |  🟢 FAST  |
|   I8    |      I32      |      2^28      |   0.544   |   1.851 ms |       0.49% |   1.348 ms |       0.16% |  -502.479 us | -27.15% |  🟢 FAST  |
|   I8    |      I32      |      2^16      |   0.201   |  22.475 us |       1.97% |  22.432 us |       2.31% |    -0.044 us |  -0.19% |  🔵 SAME  |
|   I8    |      I32      |      2^20      |   0.201   |  29.474 us |       2.52% |  29.151 us |       1.58% |    -0.323 us |  -1.10% |  🔵 SAME  |
|   I8    |      I32      |      2^24      |   0.201   | 144.193 us |       0.63% | 115.083 us |       0.51% |   -29.110 us | -20.19% |  🟢 FAST  |
|   I8    |      I32      |      2^28      |   0.201   |   1.807 ms |       0.26% |   1.277 ms |       0.12% |  -529.856 us | -29.33% |  🟢 FAST  |
|   I8    |      I64      |      2^16      |     1     |  22.368 us |       1.77% |  22.419 us |       2.23% |     0.052 us |   0.23% |  🔵 SAME  |
|   I8    |      I64      |      2^20      |     1     |  31.742 us |       0.17% |  31.655 us |       0.85% |    -0.087 us |  -0.27% |  🟢 FAST  |
|   I8    |      I64      |      2^24      |     1     | 147.362 us |       0.69% | 121.832 us |       0.39% |   -25.530 us | -17.32% |  🟢 FAST  |
|   I8    |      I64      |      2^28      |     1     |   1.840 ms |       0.51% |   1.335 ms |       0.16% |  -505.345 us | -27.46% |  🟢 FAST  |
|   I8    |      I64      |      2^16      |   0.544   |  23.522 us |       0.66% |  23.449 us |       1.10% |    -0.073 us |  -0.31% |  🔵 SAME  |
|   I8    |      I64      |      2^20      |   0.544   |  31.191 us |       2.54% |  30.808 us |       0.66% |    -0.384 us |  -1.23% |  🟢 FAST  |
|   I8    |      I64      |      2^24      |   0.544   | 153.413 us |       0.66% | 126.022 us |       0.46% |   -27.391 us | -17.85% |  🟢 FAST  |
|   I8    |      I64      |      2^28      |   0.544   |   1.897 ms |       0.27% |   1.357 ms |       0.10% |  -540.419 us | -28.49% |  🟢 FAST  |
|   I8    |      I64      |      2^16      |   0.201   |  21.747 us |       2.82% |  21.670 us |       2.28% |    -0.078 us |  -0.36% |  🔵 SAME  |
|   I8    |      I64      |      2^20      |   0.201   |  30.508 us |       2.74% |  29.701 us |       2.08% |    -0.807 us |  -2.65% |  🟢 FAST  |
|   I8    |      I64      |      2^24      |   0.201   | 141.368 us |       0.23% | 115.165 us |       0.69% |   -26.203 us | -18.54% |  🟢 FAST  |
|   I8    |      I64      |      2^28      |   0.201   |   1.786 ms |       0.55% |   1.274 ms |       0.38% |  -512.802 us | -28.71% |  🟢 FAST  |
|   I16   |      I32      |      2^16      |     1     |  33.824 us |       1.15% |  33.815 us |       1.42% |    -0.010 us |  -0.03% |  🔵 SAME  |
|   I16   |      I32      |      2^20      |     1     |  46.150 us |       0.80% |  45.643 us |       1.90% |    -0.508 us |  -1.10% |  🟢 FAST  |
|   I16   |      I32      |      2^24      |     1     | 202.518 us |       0.50% | 203.286 us |       0.47% |     0.767 us |   0.38% |  🔵 SAME  |
|   I16   |      I32      |      2^28      |     1     |   2.562 ms |       0.07% |   2.583 ms |       0.06% |    21.006 us |   0.82% |  🔴 SLOW  |
|   I16   |      I32      |      2^16      |   0.544   |  32.763 us |       3.09% |  32.613 us |       3.01% |    -0.150 us |  -0.46% |  🔵 SAME  |
|   I16   |      I32      |      2^20      |   0.544   |  47.275 us |       2.13% |  46.283 us |       1.24% |    -0.992 us |  -2.10% |  🟢 FAST  |
|   I16   |      I32      |      2^24      |   0.544   | 207.476 us |       0.41% | 207.695 us |       0.37% |     0.219 us |   0.11% |  🔵 SAME  |
|   I16   |      I32      |      2^28      |   0.544   |   2.612 ms |       0.09% |   2.633 ms |       0.07% |    21.763 us |   0.83% |  🔴 SLOW  |
|   I16   |      I32      |      2^16      |   0.201   |  33.348 us |       2.56% |  32.767 us |       2.98% |    -0.581 us |  -1.74% |  🔵 SAME  |
|   I16   |      I32      |      2^20      |   0.201   |  44.351 us |       1.69% |  43.723 us |       1.78% |    -0.628 us |  -1.42% |  🔵 SAME  |
|   I16   |      I32      |      2^24      |   0.201   | 193.685 us |       0.30% | 194.395 us |       0.50% |     0.710 us |   0.37% |  🔴 SLOW  |
|   I16   |      I32      |      2^28      |   0.201   |   2.444 ms |       0.14% |   2.466 ms |       0.13% |    22.245 us |   0.91% |  🔴 SLOW  |
|   I16   |      I64      |      2^16      |     1     |  31.904 us |       0.96% |  31.983 us |       1.53% |     0.079 us |   0.25% |  🔵 SAME  |
|   I16   |      I64      |      2^20      |     1     |  46.975 us |       2.03% |  46.767 us |       1.96% |    -0.209 us |  -0.44% |  🔵 SAME  |
|   I16   |      I64      |      2^24      |     1     | 225.832 us |       0.71% | 205.638 us |       0.40% |   -20.194 us |  -8.94% |  🟢 FAST  |
|   I16   |      I64      |      2^28      |     1     |   2.967 ms |       0.16% |   2.498 ms |       0.28% |  -468.840 us | -15.80% |  🟢 FAST  |
|   I16   |      I64      |      2^16      |   0.544   |  31.859 us |       1.09% |  31.923 us |       1.04% |     0.064 us |   0.20% |  🔵 SAME  |
|   I16   |      I64      |      2^20      |   0.544   |  47.604 us |       1.90% |  46.780 us |       1.99% |    -0.823 us |  -1.73% |  🔵 SAME  |
|   I16   |      I64      |      2^24      |   0.544   | 228.162 us |       0.62% | 209.715 us |       0.34% |   -18.447 us |  -8.08% |  🟢 FAST  |
|   I16   |      I64      |      2^28      |   0.544   |   3.011 ms |       0.19% |   2.558 ms |       0.29% |  -453.048 us | -15.05% |  🟢 FAST  |
|   I16   |      I64      |      2^16      |   0.201   |  31.259 us |       2.64% |  31.902 us |       2.91% |     0.643 us |   2.06% |  🔵 SAME  |
|   I16   |      I64      |      2^20      |   0.201   |  45.201 us |       2.16% |  44.823 us |       2.06% |    -0.378 us |  -0.84% |  🔵 SAME  |
|   I16   |      I64      |      2^24      |   0.201   | 216.200 us |       0.68% | 196.444 us |       0.50% |   -19.757 us |  -9.14% |  🟢 FAST  |
|   I16   |      I64      |      2^28      |   0.201   |   2.842 ms |       0.32% |   2.399 ms |       0.29% |  -442.950 us | -15.59% |  🟢 FAST  |
|   I32   |      I32      |      2^16      |     1     |  50.872 us |       1.37% |  50.967 us |       1.25% |     0.095 us |   0.19% |  🔵 SAME  |
|   I32   |      I32      |      2^20      |     1     |  76.254 us |       0.93% |  76.292 us |       0.91% |     0.038 us |   0.05% |  🔵 SAME  |
|   I32   |      I32      |      2^24      |     1     | 366.750 us |       0.27% | 372.100 us |       0.26% |     5.350 us |   1.46% |  🔴 SLOW  |
|   I32   |      I32      |      2^28      |     1     |   4.888 ms |       0.14% |   4.986 ms |       0.16% |    98.150 us |   2.01% |  🔴 SLOW  |
|   I32   |      I32      |      2^16      |   0.544   |  51.183 us |       0.53% |  51.180 us |       0.68% |    -0.003 us |  -0.01% |  🔵 SAME  |
|   I32   |      I32      |      2^20      |   0.544   |  77.653 us |       0.82% |  77.503 us |       1.01% |    -0.150 us |  -0.19% |  🔵 SAME  |
|   I32   |      I32      |      2^24      |   0.544   | 375.313 us |       0.24% | 380.282 us |       0.21% |     4.969 us |   1.32% |  🔴 SLOW  |
|   I32   |      I32      |      2^28      |   0.544   |   5.027 ms |       0.20% |   5.132 ms |       0.22% |   105.745 us |   2.10% |  🔴 SLOW  |
|   I32   |      I32      |      2^16      |   0.201   |  49.231 us |       0.73% |  49.598 us |       1.56% |     0.367 us |   0.75% |  🔴 SLOW  |
|   I32   |      I32      |      2^20      |   0.201   |  74.037 us |       0.98% |  73.974 us |       0.89% |    -0.064 us |  -0.09% |  🔵 SAME  |
|   I32   |      I32      |      2^24      |   0.201   | 354.959 us |       0.25% | 359.946 us |       0.24% |     4.987 us |   1.40% |  🔴 SLOW  |
|   I32   |      I32      |      2^28      |   0.201   |   4.694 ms |       0.14% |   4.789 ms |       0.17% |    94.719 us |   2.02% |  🔴 SLOW  |
|   I32   |      I64      |      2^16      |     1     |  52.051 us |       1.06% |  51.622 us |       1.44% |    -0.428 us |  -0.82% |  🔵 SAME  |
|   I32   |      I64      |      2^20      |     1     |  79.025 us |       1.19% |  77.817 us |       0.61% |    -1.208 us |  -1.53% |  🟢 FAST  |
|   I32   |      I64      |      2^24      |     1     | 381.743 us |       0.27% | 384.210 us |       0.21% |     2.467 us |   0.65% |  🔴 SLOW  |
|   I32   |      I64      |      2^28      |     1     |   5.091 ms |       0.06% |   5.137 ms |       0.06% |    46.017 us |   0.90% |  🔴 SLOW  |
|   I32   |      I64      |      2^16      |   0.544   |  52.022 us |       1.23% |  51.694 us |       1.27% |    -0.329 us |  -0.63% |  🔵 SAME  |
|   I32   |      I64      |      2^20      |   0.544   |  78.169 us |       0.93% |  76.814 us |       0.99% |    -1.355 us |  -1.73% |  🟢 FAST  |
|   I32   |      I64      |      2^24      |   0.544   | 388.491 us |       0.27% | 393.611 us |       0.24% |     5.120 us |   1.32% |  🔴 SLOW  |
|   I32   |      I64      |      2^28      |   0.544   |   5.241 ms |       0.07% |   5.279 ms |       0.07% |    37.970 us |   0.72% |  🔴 SLOW  |
|   I32   |      I64      |      2^16      |   0.201   |  50.578 us |       1.64% |  50.389 us |       1.15% |    -0.189 us |  -0.37% |  🔵 SAME  |
|   I32   |      I64      |      2^20      |   0.201   |  74.319 us |       1.20% |  73.712 us |       1.28% |    -0.607 us |  -0.82% |  🔵 SAME  |
|   I32   |      I64      |      2^24      |   0.201   | 368.314 us |       0.30% | 370.771 us |       0.27% |     2.457 us |   0.67% |  🔴 SLOW  |
|   I32   |      I64      |      2^28      |   0.201   |   4.893 ms |       0.06% |   4.940 ms |       0.06% |    46.307 us |   0.95% |  🔴 SLOW  |
|   I64   |      I32      |      2^16      |     1     |  82.234 us |       0.74% |  82.061 us |       0.50% |    -0.173 us |  -0.21% |  🔵 SAME  |
|   I64   |      I32      |      2^20      |     1     | 159.624 us |       0.34% | 143.540 us |       0.43% |   -16.084 us | -10.08% |  🟢 FAST  |
|   I64   |      I32      |      2^24      |     1     |   1.414 ms |       0.12% |   1.021 ms |       0.13% |  -392.922 us | -27.80% |  🟢 FAST  |
|   I64   |      I32      |      2^28      |     1     |  21.272 ms |       0.24% |  14.944 ms |       0.07% | -6327.776 us | -29.75% |  🟢 FAST  |
|   I64   |      I32      |      2^16      |   0.544   |  81.781 us |       0.86% |  81.643 us |       1.16% |    -0.138 us |  -0.17% |  🔵 SAME  |
|   I64   |      I32      |      2^20      |   0.544   | 158.416 us |       0.53% | 142.384 us |       0.36% |   -16.031 us | -10.12% |  🟢 FAST  |
|   I64   |      I32      |      2^24      |   0.544   |   1.415 ms |       0.12% |   1.021 ms |       0.13% |  -394.000 us | -27.85% |  🟢 FAST  |
|   I64   |      I32      |      2^28      |   0.544   |  21.229 ms |       0.22% |  14.920 ms |       0.09% | -6309.408 us | -29.72% |  🟢 FAST  |
|   I64   |      I32      |      2^16      |   0.201   |  79.830 us |       0.63% |  79.324 us |       1.11% |    -0.505 us |  -0.63% |  🟢 FAST  |
|   I64   |      I32      |      2^20      |   0.201   | 151.943 us |       0.44% | 137.582 us |       0.47% |   -14.361 us |  -9.45% |  🟢 FAST  |
|   I64   |      I32      |      2^24      |   0.201   |   1.365 ms |       0.13% | 977.326 us |       0.15% |  -387.426 us | -28.39% |  🟢 FAST  |
|   I64   |      I32      |      2^28      |   0.201   |  20.900 ms |       0.04% |  14.144 ms |       0.16% | -6756.558 us | -32.33% |  🟢 FAST  |
|   I64   |      I64      |      2^16      |     1     |  86.857 us |       0.52% |  84.789 us |       0.72% |    -2.069 us |  -2.38% |  🟢 FAST  |
|   I64   |      I64      |      2^20      |     1     | 144.814 us |       0.61% | 144.106 us |       0.52% |    -0.708 us |  -0.49% |  🔵 SAME  |
|   I64   |      I64      |      2^24      |     1     |   1.031 ms |       0.14% |   1.022 ms |       0.14% |    -9.675 us |  -0.94% |  🟢 FAST  |
|   I64   |      I64      |      2^28      |     1     |  14.890 ms |       0.05% |  14.956 ms |       0.13% |    65.822 us |   0.44% |  🔴 SLOW  |
|   I64   |      I64      |      2^16      |   0.544   |  85.882 us |       0.97% |  83.380 us |       1.01% |    -2.502 us |  -2.91% |  🟢 FAST  |
|   I64   |      I64      |      2^20      |   0.544   | 143.688 us |       0.62% | 142.106 us |       0.59% |    -1.581 us |  -1.10% |  🟢 FAST  |
|   I64   |      I64      |      2^24      |   0.544   |   1.031 ms |       0.16% |   1.022 ms |       0.14% |    -8.887 us |  -0.86% |  🟢 FAST  |
|   I64   |      I64      |      2^28      |   0.544   |  14.893 ms |       0.06% |  15.059 ms |       0.04% |   165.732 us |   1.11% |  🔴 SLOW  |
|   I64   |      I64      |      2^16      |   0.201   |  83.680 us |       1.11% |  81.010 us |       0.63% |    -2.670 us |  -3.19% |  🟢 FAST  |
|   I64   |      I64      |      2^20      |   0.201   | 138.631 us |       0.59% | 137.650 us |       0.64% |    -0.981 us |  -0.71% |  🟢 FAST  |
|   I64   |      I64      |      2^24      |   0.201   | 983.433 us |       0.17% | 978.033 us |       0.16% |    -5.400 us |  -0.55% |  🟢 FAST  |
|   I64   |      I64      |      2^28      |   0.201   |  14.140 ms |       0.12% |  14.107 ms |       0.21% |   -33.403 us |  -0.24% |  🟢 FAST  |
|  I128   |      I32      |      2^16      |     1     | 140.310 us |       0.31% | 140.061 us |       0.35% |    -0.248 us |  -0.18% |  🔵 SAME  |
|  I128   |      I32      |      2^20      |     1     | 332.124 us |       0.34% | 333.663 us |       0.36% |     1.539 us |   0.46% |  🔴 SLOW  |
|  I128   |      I32      |      2^24      |     1     |   3.418 ms |       0.07% |   3.439 ms |       0.07% |    21.130 us |   0.62% |  🔴 SLOW  |
|  I128   |      I32      |      2^28      |     1     |  52.284 ms |       0.05% |  52.620 ms |       0.05% |   336.480 us |   0.64% |  🔴 SLOW  |
|  I128   |      I32      |      2^16      |   0.544   | 137.848 us |       0.52% | 137.872 us |       0.58% |     0.023 us |   0.02% |  🔵 SAME  |
|  I128   |      I32      |      2^20      |   0.544   | 331.734 us |       0.34% | 333.276 us |       0.33% |     1.542 us |   0.46% |  🔴 SLOW  |
|  I128   |      I32      |      2^24      |   0.544   |   3.397 ms |       0.07% |   3.419 ms |       0.07% |    21.455 us |   0.63% |  🔴 SLOW  |
|  I128   |      I32      |      2^28      |   0.544   |  51.879 ms |       0.05% |  52.235 ms |       0.05% |   355.572 us |   0.69% |  🔴 SLOW  |
|  I128   |      I32      |      2^16      |   0.201   | 138.453 us |       0.69% | 138.352 us |       0.69% |    -0.101 us |  -0.07% |  🔵 SAME  |
|  I128   |      I32      |      2^20      |   0.201   | 325.656 us |       0.39% | 327.148 us |       0.40% |     1.492 us |   0.46% |  🔴 SLOW  |
|  I128   |      I32      |      2^24      |   0.201   |   3.357 ms |       0.06% |   3.377 ms |       0.07% |    19.651 us |   0.59% |  🔴 SLOW  |
|  I128   |      I32      |      2^28      |   0.201   |  51.065 ms |       0.05% |  51.429 ms |       0.05% |   364.198 us |   0.71% |  🔴 SLOW  |
|  I128   |      I64      |      2^16      |     1     | 142.369 us |       0.32% | 139.737 us |       0.65% |    -2.632 us |  -1.85% |  🟢 FAST  |
|  I128   |      I64      |      2^20      |     1     | 336.598 us |       0.33% | 335.634 us |       0.35% |    -0.964 us |  -0.29% |  🔵 SAME  |
|  I128   |      I64      |      2^24      |     1     |   3.437 ms |       0.06% |   3.444 ms |       0.07% |     6.963 us |   0.20% |  🔴 SLOW  |
|  I128   |      I64      |      2^28      |     1     |  53.365 ms |       0.03% |  53.465 ms |       0.02% |    99.969 us |   0.19% |  🔴 SLOW  |
|  I128   |      I64      |      2^16      |   0.544   | 143.569 us |       0.67% | 140.934 us |       0.67% |    -2.635 us |  -1.84% |  🟢 FAST  |
|  I128   |      I64      |      2^20      |   0.544   | 333.272 us |       0.35% | 332.302 us |       0.35% |    -0.970 us |  -0.29% |  🔵 SAME  |
|  I128   |      I64      |      2^24      |   0.544   |   3.416 ms |       0.07% |   3.423 ms |       0.06% |     6.878 us |   0.20% |  🔴 SLOW  |
|  I128   |      I64      |      2^28      |   0.544   |  52.973 ms |       0.02% |  53.079 ms |       0.02% |   105.606 us |   0.20% |  🔴 SLOW  |
|  I128   |      I64      |      2^16      |   0.201   | 141.184 us |       0.42% | 138.130 us |       0.39% |    -3.054 us |  -2.16% |  🟢 FAST  |
|  I128   |      I64      |      2^20      |   0.201   | 330.454 us |       0.34% | 329.477 us |       0.35% |    -0.977 us |  -0.30% |  🔵 SAME  |
|  I128   |      I64      |      2^24      |   0.201   |   3.375 ms |       0.07% |   3.380 ms |       0.07% |     5.250 us |   0.16% |  🔴 SLOW  |
|  I128   |      I64      |      2^28      |   0.201   |  52.179 ms |       0.02% |  52.278 ms |       0.02% |    99.542 us |   0.19% |  🔴 SLOW  |
|   F32   |      I32      |      2^16      |     1     |  51.216 us |       0.16% |  52.251 us |       1.85% |     1.035 us |   2.02% |  🔴 SLOW  |
|   F32   |      I32      |      2^20      |     1     |  76.196 us |       1.12% |  77.135 us |       1.11% |     0.940 us |   1.23% |  🔴 SLOW  |
|   F32   |      I32      |      2^24      |     1     | 432.328 us |       0.26% | 440.309 us |       0.25% |     7.981 us |   1.85% |  🔴 SLOW  |
|   F32   |      I32      |      2^28      |     1     |   6.039 ms |       0.09% |   6.158 ms |       0.19% |   118.842 us |   1.97% |  🔴 SLOW  |
|   F32   |      I32      |      2^16      |   0.544   |  51.345 us |       0.66% |  52.593 us |       1.16% |     1.248 us |   2.43% |  🔴 SLOW  |
|   F32   |      I32      |      2^20      |   0.544   |  77.007 us |       0.93% |  77.819 us |       1.31% |     0.812 us |   1.05% |  🔴 SLOW  |
|   F32   |      I32      |      2^24      |   0.544   | 437.896 us |       0.20% | 446.436 us |       0.23% |     8.540 us |   1.95% |  🔴 SLOW  |
|   F32   |      I32      |      2^28      |   0.544   |   6.119 ms |       0.09% |   6.229 ms |       0.19% |   110.449 us |   1.81% |  🔴 SLOW  |
|   F32   |      I32      |      2^16      |   0.201   |  51.059 us |       0.92% |  51.423 us |       0.77% |     0.364 us |   0.71% |  🔵 SAME  |
|   F32   |      I32      |      2^20      |   0.201   |  74.260 us |       0.93% |  74.600 us |       0.93% |     0.340 us |   0.46% |  🔵 SAME  |
|   F32   |      I32      |      2^24      |   0.201   | 423.279 us |       0.25% | 430.981 us |       0.27% |     7.703 us |   1.82% |  🔴 SLOW  |
|   F32   |      I32      |      2^28      |   0.201   |   5.892 ms |       0.10% |   6.000 ms |       0.24% |   107.649 us |   1.83% |  🔴 SLOW  |
|   F32   |      I64      |      2^16      |     1     |  50.137 us |       0.55% |  50.188 us |       0.52% |     0.051 us |   0.10% |  🔵 SAME  |
|   F32   |      I64      |      2^20      |     1     |  77.034 us |       0.93% |  76.977 us |       0.81% |    -0.058 us |  -0.07% |  🔵 SAME  |
|   F32   |      I64      |      2^24      |     1     | 448.112 us |       0.26% | 393.300 us |       0.17% |   -54.811 us | -12.23% |  🟢 FAST  |
|   F32   |      I64      |      2^28      |     1     |   6.271 ms |       0.25% |   5.351 ms |       0.20% |  -920.135 us | -14.67% |  🟢 FAST  |
|   F32   |      I64      |      2^16      |   0.544   |  50.180 us |       0.11% |  50.185 us |       0.21% |     0.005 us |   0.01% |  🔵 SAME  |
|   F32   |      I64      |      2^20      |   0.544   |  77.135 us |       0.85% |  77.082 us |       0.93% |    -0.053 us |  -0.07% |  🔵 SAME  |
|   F32   |      I64      |      2^24      |   0.544   | 452.609 us |       0.27% | 400.024 us |       0.21% |   -52.585 us | -11.62% |  🟢 FAST  |
|   F32   |      I64      |      2^28      |   0.544   |   6.346 ms |       0.24% |   5.438 ms |       0.19% |  -908.179 us | -14.31% |  🟢 FAST  |
|   F32   |      I64      |      2^16      |   0.201   |  49.380 us |       1.33% |  49.788 us |       1.58% |     0.408 us |   0.83% |  🔵 SAME  |
|   F32   |      I64      |      2^20      |   0.201   |  74.537 us |       1.18% |  74.867 us |       0.70% |     0.330 us |   0.44% |  🔵 SAME  |
|   F32   |      I64      |      2^24      |   0.201   | 438.887 us |       0.26% | 383.898 us |       0.19% |   -54.989 us | -12.53% |  🟢 FAST  |
|   F32   |      I64      |      2^28      |   0.201   |   6.116 ms |       0.28% |   5.219 ms |       0.17% |  -897.516 us | -14.67% |  🟢 FAST  |
|   F64   |      I32      |      2^16      |     1     |  85.819 us |       1.17% |  85.053 us |       0.43% |    -0.766 us |  -0.89% |  🟢 FAST  |
|   F64   |      I32      |      2^20      |     1     | 148.238 us |       0.46% | 146.856 us |       0.57% |    -1.382 us |  -0.93% |  🟢 FAST  |
|   F64   |      I32      |      2^24      |     1     |   1.050 ms |       0.14% |   1.044 ms |       0.13% |    -5.283 us |  -0.50% |  🟢 FAST  |
|   F64   |      I32      |      2^28      |     1     |  15.352 ms |       0.03% |  15.270 ms |       0.04% |   -82.030 us |  -0.53% |  🟢 FAST  |
|   F64   |      I32      |      2^16      |   0.544   |  89.071 us |       0.16% |  87.882 us |       1.15% |    -1.189 us |  -1.33% |  🟢 FAST  |
|   F64   |      I32      |      2^20      |   0.544   | 147.839 us |       0.65% | 146.335 us |       0.31% |    -1.504 us |  -1.02% |  🟢 FAST  |
|   F64   |      I32      |      2^24      |   0.544   |   1.069 ms |       0.13% |   1.062 ms |       0.13% |    -6.675 us |  -0.62% |  🟢 FAST  |
|   F64   |      I32      |      2^28      |   0.544   |  15.600 ms |       0.03% |  15.505 ms |       0.03% |   -95.187 us |  -0.61% |  🟢 FAST  |
|   F64   |      I32      |      2^16      |   0.201   |  84.941 us |       0.59% |  84.701 us |       0.53% |    -0.240 us |  -0.28% |  🔵 SAME  |
|   F64   |      I32      |      2^20      |   0.201   | 144.346 us |       0.45% | 143.300 us |       0.63% |    -1.046 us |  -0.72% |  🟢 FAST  |
|   F64   |      I32      |      2^24      |   0.201   |   1.036 ms |       0.12% |   1.028 ms |       0.12% |    -8.530 us |  -0.82% |  🟢 FAST  |
|   F64   |      I32      |      2^28      |   0.201   |  15.046 ms |       0.06% |  14.977 ms |       0.03% |   -69.399 us |  -0.46% |  🟢 FAST  |
|   F64   |      I64      |      2^16      |     1     |  86.493 us |       0.89% |  86.238 us |       0.55% |    -0.255 us |  -0.30% |  🔵 SAME  |
|   F64   |      I64      |      2^20      |     1     | 147.116 us |       0.60% | 147.290 us |       0.60% |     0.174 us |   0.12% |  🔵 SAME  |
|   F64   |      I64      |      2^24      |     1     |   1.043 ms |       0.13% |   1.048 ms |       0.13% |     5.139 us |   0.49% |  🔴 SLOW  |
|   F64   |      I64      |      2^28      |     1     |  15.275 ms |       0.03% |  15.417 ms |       0.03% |   142.401 us |   0.93% |  🔴 SLOW  |
|   F64   |      I64      |      2^16      |   0.544   |  89.394 us |       0.85% |  88.839 us |       0.82% |    -0.555 us |  -0.62% |  🔵 SAME  |
|   F64   |      I64      |      2^20      |   0.544   | 147.457 us |       0.48% | 147.243 us |       0.53% |    -0.214 us |  -0.15% |  🔵 SAME  |
|   F64   |      I64      |      2^24      |   0.544   |   1.061 ms |       0.12% |   1.067 ms |       0.12% |     5.807 us |   0.55% |  🔴 SLOW  |
|   F64   |      I64      |      2^28      |   0.544   |  15.535 ms |       0.02% |  15.646 ms |       0.02% |   111.095 us |   0.72% |  🔴 SLOW  |
|   F64   |      I64      |      2^16      |   0.201   |  85.975 us |       0.49% |  85.948 us |       0.63% |    -0.027 us |  -0.03% |  🔵 SAME  |
|   F64   |      I64      |      2^20      |   0.201   | 143.703 us |       0.57% | 143.765 us |       0.65% |     0.062 us |   0.04% |  🔵 SAME  |
|   F64   |      I64      |      2^24      |   0.201   |   1.031 ms |       0.12% |   1.035 ms |       0.12% |     3.878 us |   0.38% |  🔴 SLOW  |
|   F64   |      I64      |      2^28      |   0.201   |  15.005 ms |       0.03% |  15.132 ms |       0.04% |   126.822 us |   0.85% |  🔴 SLOW  |

@bernhardmgruber
bernhardmgruber requested a review from a team as a code owner July 13, 2026 12:36
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Jul 13, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Jul 13, 2026
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes
    • Improved compatibility and reliability for CUDA radix-sort kernel launches.
    • Preserved existing radix-sort behavior while streamlining kernel parameter handling across sorting stages.

Walkthrough

Changes

Radix sort kernel parameters

Layer / File(s) Summary
Update radix-sort kernel declarations
cub/cub/device/dispatch/kernels/kernel_radix_sort.cuh
Eight radix-sort CUDA kernel signatures remove _CCCL_GRID_CONSTANT qualifiers while retaining their existing arguments and constness patterns.

Assessment against linked issues

Objective Addressed Explanation
Fix the radix_sort_keys regression in CCCL 3.4 [#9768] The linked issue provides no acceptance criteria connecting the regression to these declaration changes.

Suggested reviewers: naderalawar


Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
cub/cub/device/dispatch/kernels/kernel_radix_sort.cuh (1)

86-92: 🚀 Performance & Scalability | 🔵 Trivial

suggestion: Validate this code-generation change on both _CCCL_HAS_GRID_CONSTANT() branches before merging. The supplied configuration makes _CCCL_GRID_CONSTANT conditional, and CUDA documents that __grid_constant__ changes kernel-parameter handling; run targeted radix-sort tests and benchmarks with supported and fallback compiler/architecture configurations, and verify any forward declarations or explicit instantiations remain consistent. (docs.nvidia.com)

As per coding guidelines and the cub/**/* path instructions, validate performance-sensitive changes with targeted builds/tests.

Also applies to: 147-147, 245-254, 338-345, 454-459, 477-477, 508-519, 564-564

Sources: Coding guidelines, Path instructions, MCP tools


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 8f9a93fd-04fc-49b6-8664-c70362076849

📥 Commits

Reviewing files that changed from the base of the PR and between a0fd4f2 and 3a11581.

📒 Files selected for processing (1)
  • cub/cub/device/dispatch/kernels/kernel_radix_sort.cuh

@github-actions

This comment has been minimized.

@gonidelis

Copy link
Copy Markdown
Member

@bernhardmgruber in your "impact of this pr" table it shows some good speedups and minor regressions in the scale of no more than 3%, yet the regression report says they see 40% regression which is not justified by just removing the GRID_CONSTANT pr according to your measurements. Am I missing sth?

@gonidelis

gonidelis commented Jul 13, 2026

Copy link
Copy Markdown
Member

I don't understand why nvtx3 dependency fails for this pr and makes CI red, did sth leak in main?

@bernhardmgruber

Copy link
Copy Markdown
Contributor Author

/ok to test e1c903a

@bernhardmgruber

Copy link
Copy Markdown
Contributor Author

I don't understand why nvtx3 dependency fails for this pr and makes CI red, did sth leak in main?

NVTX3 had an upstream issue, that should be resolved now.

@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

😬 CI Workflow Results

🟥 Finished in 6h 04m: Pass: 99%/287 | Total: 10d 11h | Max: 2h 21m | Hits: 36%/821310

See results here.

@bernhardmgruber

Copy link
Copy Markdown
Contributor Author

Closed in favor of: #9858

@bernhardmgruber
bernhardmgruber deleted the fix_radix_sort_regression branch July 14, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

radix_sort_keys regresses in CCCL 3.4

4 participants