RFR: 8318217: RISC-V: C2 VectorizedHashCode [v9]
Yuri Gaevsky
duke at openjdk.org
Wed Dec 6 12:39:45 UTC 2023
On Wed, 6 Dec 2023 09:23:28 GMT, Fei Yang <fyang at openjdk.org> wrote:
>> Yuri Gaevsky has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Changed lb-->lbu for T_BOOLEAN and iRegINoSp-->iRegLNoSp for tmp2/tmp3.
>
> So I tried this on sifive unmatched. Unfortunately, I see some performance regressions with this change.
> Before:
>
> Benchmark (size) Mode Cnt Score Error Units
> ArraysHashCode.bytes 1 avgt 15 19.737 ? 5.405 ns/op
> ArraysHashCode.bytes 10 avgt 15 56.102 ? 3.191 ns/op
> ArraysHashCode.bytes 100 avgt 15 317.126 ? 3.452 ns/op
> ArraysHashCode.bytes 10000 avgt 15 28380.470 ? 20.709 ns/op
> ArraysHashCode.chars 1 avgt 15 15.532 ? 2.623 ns/op
> ArraysHashCode.chars 10 avgt 15 59.603 ? 2.440 ns/op
> ArraysHashCode.chars 100 avgt 15 333.995 ? 3.834 ns/op
> ArraysHashCode.chars 10000 avgt 15 29464.768 ? 16.751 ns/op
> ArraysHashCode.ints 1 avgt 15 16.031 ? 2.820 ns/op
> ArraysHashCode.ints 10 avgt 15 59.506 ? 3.980 ns/op
> ArraysHashCode.ints 100 avgt 15 335.514 ? 4.695 ns/op
> ArraysHashCode.ints 10000 avgt 15 33966.175 ? 929.859 ns/op
> ArraysHashCode.multibytes 1 avgt 15 7.840 ? 0.110 ns/op
> ArraysHashCode.multibytes 10 avgt 15 34.727 ? 0.547 ns/op
> ArraysHashCode.multibytes 100 avgt 15 193.085 ? 0.814 ns/op
> ArraysHashCode.multibytes 10000 avgt 15 16610.239 ? 27.290 ns/op
> ArraysHashCode.multichars 1 avgt 15 7.853 ? 0.092 ns/op
> ArraysHashCode.multichars 10 avgt 15 35.059 ? 0.241 ns/op
> ArraysHashCode.multichars 100 avgt 15 203.483 ? 0.413 ns/op
> ArraysHashCode.multichars 10000 avgt 15 18819.804 ? 75.487 ns/op
> ArraysHashCode.multiints 1 avgt 15 7.878 ? 0.104 ns/op
> ArraysHashCode.multiints 10 avgt 15 35.232 ? 0.196 ns/op
> ArraysHashCode.multiints 100 avgt 15 211.087 ? 1.914 ns/op
> ArraysHashCode.multiints 10000 avgt 15 30172.693 ? 1447.757 ns/op
> ArraysHashCode.multishorts 1 avgt 15 7.788 ? 0.046 ns/op
> ArraysHashCode.multishorts 10 avgt 15 35.504 ? 0.465 ns/op
> ArraysHashCode.multishorts 100 avgt 15 203.530 ? 0.342 ns/op
> ArraysHashCode.multishorts 10000 avgt 15 18801.799 ? 77.159 ns/op
> ArraysHashCode.shorts 1 avgt 15 19.685 ? 5.413 ns/op
> ArraysHashCode.shorts 10 avgt 15 59.583 ? 4.684 ns/op
> ArraysHashCode.shorts 100 avgt 15 333.170 ? ...
@RealFYang - many thanks for checking my results. I can confirm the regressions found by you on '_Sifive Unmatched_' and '_StarFive JH7110_' but not on '_T-Head RVB-ICE_'.
Sifive Unmatched:
Benchmark (size) Mode Cnt Score Error Score Error Units
ArraysHashCode.bytes 10 avgt 15 64.318 ± 2.035 54.062 ± 5.229 ns/op
ArraysHashCode.bytes 100 avgt 15 317.512 ± 1.944 352.153 ± 2.802 ns/op
ArraysHashCode.bytes 1000 avgt 15 2875.723 ± 5.773 3185.938 ± 11.533 ns/op
ArraysHashCode.bytes 10000 avgt 15 28386.639 ± 42.689 31602.956 ± 101.607 ns/op
ArraysHashCode.chars 10 avgt 15 61.976 ± 5.562 52.773 ± 0.572 ns/op
ArraysHashCode.chars 100 avgt 15 332.949 ± 5.650 347.923 ± 2.549 ns/op
ArraysHashCode.chars 1000 avgt 15 2991.818 ± 4.396 3186.808 ± 3.248 ns/op
ArraysHashCode.chars 10000 avgt 15 29528.339 ± 30.613 31580.887 ± 24.868 ns/op
ArraysHashCode.ints 10 avgt 15 62.328 ± 5.592 57.784 ± 5.973 ns/op
ArraysHashCode.ints 100 avgt 15 328.240 ± 0.556 342.637 ± 4.174 ns/op
ArraysHashCode.ints 1000 avgt 15 2984.384 ± 0.865 3175.596 ± 5.490 ns/op
ArraysHashCode.ints 10000 avgt 15 33830.448 ± 55.105 36310.776 ± 39.960 ns/op
ArraysHashCode.multibytes 10 avgt 15 34.593 ± 0.318 29.497 ± 0.164 ns/op
ArraysHashCode.multibytes 100 avgt 15 193.281 ± 0.548 184.273 ± 0.293 ns/op
ArraysHashCode.multibytes 1000 avgt 15 1651.863 ± 7.210 1816.328 ± 15.627 ns/op
ArraysHashCode.multibytes 10000 avgt 15 16653.946 ± 42.054 18371.511 ± 63.512 ns/op
ArraysHashCode.multichars 10 avgt 15 35.104 ± 0.228 29.222 ± 0.165 ns/op
ArraysHashCode.multichars 100 avgt 15 203.873 ± 0.170 187.397 ± 0.249 ns/op
ArraysHashCode.multichars 1000 avgt 15 1900.463 ± 5.472 2018.710 ± 7.485 ns/op
ArraysHashCode.multichars 10000 avgt 15 18991.838 ± 124.180 20257.406 ± 236.705 ns/op
ArraysHashCode.multiints 10 avgt 15 35.232 ± 0.159 29.439 ± 0.199 ns/op
ArraysHashCode.multiints 100 avgt 15 211.201 ± 0.330 197.014 ± 0.242 ns/op
ArraysHashCode.multiints 1000 avgt 15 2225.082 ± 13.261 2363.767 ± 7.716 ns/op
ArraysHashCode.multiints 10000 avgt 15 31441.156 ± 574.230 33215.921 ± 392.809 ns/op
ArraysHashCode.multishorts 10 avgt 15 35.068 ± 0.164 29.237 ± 0.103 ns/op
ArraysHashCode.multishorts 100 avgt 15 203.904 ± 0.393 186.776 ± 0.481 ns/op
ArraysHashCode.multishorts 1000 avgt 15 1897.351 ± 7.325 2019.786 ± 6.929 ns/op
ArraysHashCode.multishorts 10000 avgt 15 18907.910 ± 77.537 20349.999 ± 363.546 ns/op
ArraysHashCode.shorts 10 avgt 15 56.984 ± 0.414 54.080 ± 2.779 ns/op
ArraysHashCode.shorts 100 avgt 15 327.769 ± 2.124 347.356 ± 3.553 ns/op
ArraysHashCode.shorts 1000 avgt 15 2988.008 ± 8.788 3175.180 ± 1.255 ns/op
ArraysHashCode.shorts 10000 avgt 15 29520.151 ± 58.051 31577.025 ± 66.598 ns/op
T-Head RVB-ICE:
Benchmark (size) Mode Cnt Score Error Score Error Units
ArraysHashCode.bytes 10 avgt 15 51.762 ± 0.378 46.688 ± 0.274 ns/op
ArraysHashCode.bytes 100 avgt 15 282.922 ± 0.891 228.657 ± 1.265 ns/op
ArraysHashCode.bytes 1000 avgt 15 2550.826 ± 3.773 1790.795 ± 3.891 ns/op
ArraysHashCode.bytes 10000 avgt 15 25165.387 ± 72.982 17510.131 ± 30.293 ns/op
ArraysHashCode.chars 10 avgt 15 53.831 ± 0.225 46.425 ± 0.231 ns/op
ArraysHashCode.chars 100 avgt 15 285.555 ± 0.813 237.081 ± 1.216 ns/op
ArraysHashCode.chars 1000 avgt 15 2558.697 ± 6.253 1893.147 ± 3.187 ns/op
ArraysHashCode.chars 10000 avgt 15 25162.198 ± 67.487 18558.521 ± 49.710 ns/op
ArraysHashCode.ints 10 avgt 15 52.046 ± 0.170 46.364 ± 0.240 ns/op
ArraysHashCode.ints 100 avgt 15 285.322 ± 0.924 238.531 ± 0.901 ns/op
ArraysHashCode.ints 1000 avgt 15 2557.016 ± 6.214 1892.898 ± 3.588 ns/op
ArraysHashCode.ints 10000 avgt 15 25272.506 ± 116.785 18599.428 ± 45.966 ns/op
ArraysHashCode.multibytes 10 avgt 15 26.190 ± 0.129 18.942 ± 0.103 ns/op
ArraysHashCode.multibytes 100 avgt 15 160.660 ± 0.400 116.278 ± 0.287 ns/op
ArraysHashCode.multibytes 1000 avgt 15 1366.136 ± 9.128 908.505 ± 2.456 ns/op
ArraysHashCode.multibytes 10000 avgt 15 13290.571 ± 21.784 8975.082 ± 18.118 ns/op
ArraysHashCode.multichars 10 avgt 15 26.630 ± 0.153 19.760 ± 0.178 ns/op
ArraysHashCode.multichars 100 avgt 15 164.371 ± 0.438 118.326 ± 0.334 ns/op
ArraysHashCode.multichars 1000 avgt 15 1399.774 ± 3.369 1031.653 ± 2.678 ns/op
ArraysHashCode.multichars 10000 avgt 15 13321.995 ± 27.186 9653.414 ± 44.167 ns/op
ArraysHashCode.multiints 10 avgt 15 25.878 ± 0.093 19.145 ± 0.217 ns/op
ArraysHashCode.multiints 100 avgt 15 169.129 ± 0.551 126.062 ± 0.239 ns/op
ArraysHashCode.multiints 1000 avgt 15 1405.709 ± 8.575 1046.932 ± 3.110 ns/op
ArraysHashCode.multiints 10000 avgt 15 13712.716 ± 28.671 10414.196 ± 19.044 ns/op
ArraysHashCode.multishorts 10 avgt 15 26.614 ± 0.240 19.742 ± 0.169 ns/op
ArraysHashCode.multishorts 100 avgt 15 164.488 ± 0.296 119.336 ± 0.434 ns/op
ArraysHashCode.multishorts 1000 avgt 15 1396.339 ± 3.062 1032.205 ± 4.604 ns/op
ArraysHashCode.multishorts 10000 avgt 15 13475.962 ± 27.035 9694.721 ± 38.618 ns/op
ArraysHashCode.shorts 10 avgt 15 52.145 ± 0.671 50.525 ± 0.560 ns/op
ArraysHashCode.shorts 100 avgt 15 284.563 ± 0.663 236.216 ± 1.160 ns/op
ArraysHashCode.shorts 1000 avgt 15 2565.527 ± 5.313 1895.385 ± 3.632 ns/op
ArraysHashCode.shorts 10000 avgt 15 25160.261 ± 78.896 18562.613 ± 62.708 ns/op
StarFive JH7110
Benchmark (size) Mode Cnt Score Error Score Error Units
ArraysHashCode.bytes 10 avgt 15 40.824 ? 0.148 39.565 ? 0.069 ns/op
ArraysHashCode.bytes 100 avgt 15 250.700 ? 1.212 268.188 ? 0.864 ns/op
ArraysHashCode.bytes 1000 avgt 15 2290.265 ? 5.880 2524.649 ? 5.811 ns/op
ArraysHashCode.bytes 10000 avgt 15 22593.288 ? 4.222 25114.007 ? 41.732 ns/op
ArraysHashCode.chars 10 avgt 15 45.736 ? 0.356 40.116 ? 0.043 ns/op
ArraysHashCode.chars 100 avgt 15 261.146 ? 0.383 270.978 ? 0.697 ns/op
ArraysHashCode.chars 1000 avgt 15 2371.921 ? 0.679 2526.244 ? 6.915 ns/op
ArraysHashCode.chars 10000 avgt 15 23421.998 ? 2.523 25095.058 ? 71.641 ns/op
ArraysHashCode.ints 10 avgt 15 45.419 ? 0.007 40.214 ? 0.171 ns/op
ArraysHashCode.ints 100 avgt 15 262.007 ? 1.421 270.151 ? 0.429 ns/op
ArraysHashCode.ints 1000 avgt 15 2371.512 ? 0.402 2525.866 ? 1.160 ns/op
ArraysHashCode.ints 10000 avgt 15 29589.412 ? 13.383 31285.973 ? 163.943 ns/op
ArraysHashCode.multibytes 10 avgt 15 27.079 ? 0.172 22.170 ? 0.114 ns/op
ArraysHashCode.multibytes 100 avgt 15 155.937 ? 0.745 146.639 ? 0.165 ns/op
ArraysHashCode.multibytes 1000 avgt 15 1291.860 ? 2.052 1415.878 ? 2.299 ns/op
ArraysHashCode.multibytes 10000 avgt 15 12777.667 ? 2.627 14123.991 ? 68.454 ns/op
ArraysHashCode.multichars 10 avgt 15 28.005 ? 0.136 22.282 ? 0.077 ns/op
ArraysHashCode.multichars 100 avgt 15 166.277 ? 0.593 151.245 ? 0.524 ns/op
ArraysHashCode.multichars 1000 avgt 15 1432.254 ? 5.252 1513.058 ? 5.612 ns/op
ArraysHashCode.multichars 10000 avgt 15 14125.547 ? 52.368 15030.018 ? 89.649 ns/op
ArraysHashCode.multiints 10 avgt 15 26.678 ? 0.220 22.650 ? 0.260 ns/op
ArraysHashCode.multiints 100 avgt 15 179.278 ? 0.316 165.724 ? 0.606 ns/op
ArraysHashCode.multiints 1000 avgt 15 1605.150 ? 2.885 1684.205 ? 2.334 ns/op
ArraysHashCode.multiints 10000 avgt 15 16517.998 ? 71.869 17220.866 ? 65.161 ns/op
ArraysHashCode.multishorts 10 avgt 15 27.507 ? 0.133 22.270 ? 0.056 ns/op
ArraysHashCode.multishorts 100 avgt 15 166.159 ? 0.377 152.968 ? 0.696 ns/op
ArraysHashCode.multishorts 1000 avgt 15 1430.556 ? 1.569 1509.756 ? 1.608 ns/op
ArraysHashCode.multishorts 10000 avgt 15 14114.634 ? 5.609 14992.519 ? 11.684 ns/op
ArraysHashCode.shorts 10 avgt 15 45.606 ? 0.289 40.080 ? 0.006 ns/op
ArraysHashCode.shorts 100 avgt 15 261.538 ? 0.954 270.748 ? 3.619 ns/op
ArraysHashCode.shorts 1000 avgt 15 2385.091 ? 2.082 2527.360 ? 8.349 ns/op
ArraysHashCode.shorts 10000 avgt 15 23420.647 ? 3.081 25066.912 ? 4.099 ns/op
Let me check which updates for the patch caused such results.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16629#issuecomment-1842778944
More information about the hotspot-dev
mailing list