You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2021/01/29 07:06:39 UTC

[GitHub] [arrow] cyb70289 commented on pull request #9358: ARROW-11425: [C++][Compute] Optimize quantile kernel for integers

cyb70289 commented on pull request #9358:
URL: https://github.com/apache/arrow/pull/9358#issuecomment-769622477


   Tested on Xeon Gold 5218, clang-9.
   Up to 2x improvements for integers with limited value range, minor drop for 50% nulls.
   
   Before
   ```
   QuantileKernelInt32/1048576/10000        2058 us         2058 us          340 bytes_per_second=485.836M/s null_percent=0.01 size=1048.58k
   QuantileKernelInt32/1048576/100          1279 us         1279 us          551 bytes_per_second=781.752M/s null_percent=1 size=1048.58k
   QuantileKernelInt32/1048576/10           1719 us         1719 us          408 bytes_per_second=581.835M/s null_percent=10 size=1048.58k
   QuantileKernelInt32/1048576/2            1631 us         1631 us          429 bytes_per_second=613.259M/s null_percent=50 size=1048.58k
   QuantileKernelInt32/1048576/1           0.601 us        0.601 us      1164926 bytes_per_second=1.58694T/s null_percent=100 size=1048.58k
   QuantileKernelInt32/1048576/0            1864 us         1864 us          376 bytes_per_second=536.431M/s null_percent=0 size=1048.58k
   
   QuantileKernelInt64/1048576/10000         944 us          944 us          741 bytes_per_second=1059.49M/s null_percent=0.01 size=1048.58k
   QuantileKernelInt64/1048576/100          1189 us         1189 us          594 bytes_per_second=840.822M/s null_percent=1 size=1048.58k
   QuantileKernelInt64/1048576/10            889 us          889 us          786 bytes_per_second=1124.47M/s null_percent=10 size=1048.58k
   QuantileKernelInt64/1048576/2             812 us          812 us          863 bytes_per_second=1.20332G/s null_percent=50 size=1048.58k
   QuantileKernelInt64/1048576/1           0.601 us        0.601 us      1162030 bytes_per_second=1.58732T/s null_percent=100 size=1048.58k
   QuantileKernelInt64/1048576/0             935 us          935 us          749 bytes_per_second=1069.31M/s null_percent=0 size=1048.58k
   
   QuantileKernelDouble/1048576/10000       1116 us         1116 us          629 bytes_per_second=895.788M/s null_percent=0.01 size=1048.58k
   QuantileKernelDouble/1048576/100         1222 us         1222 us          573 bytes_per_second=818.343M/s null_percent=1 size=1048.58k
   QuantileKernelDouble/1048576/10           902 us          902 us          775 bytes_per_second=1108.27M/s null_percent=10 size=1048.58k
   QuantileKernelDouble/1048576/2            878 us          878 us          797 bytes_per_second=1.1117G/s null_percent=50 size=1048.58k
   QuantileKernelDouble/1048576/1          0.617 us        0.617 us      1134788 bytes_per_second=1.54598T/s null_percent=100 size=1048.58k
   QuantileKernelDouble/1048576/0           1214 us         1214 us          577 bytes_per_second=823.777M/s null_percent=0 size=1048.58k
   
   ```
   
   After
   ```
   QuantileKernelInt32/1048576/10000         641 us          641 us         1091 bytes_per_second=1.52317G/s null_percent=0.01 size=1048.58k
   QuantileKernelInt32/1048576/100           745 us          745 us          935 bytes_per_second=1.31037G/s null_percent=1 size=1048.58k
   QuantileKernelInt32/1048576/10           1277 us         1277 us          549 bytes_per_second=783.305M/s null_percent=10 size=1048.58k
   QuantileKernelInt32/1048576/2            1856 us         1856 us          377 bytes_per_second=538.889M/s null_percent=50 size=1048.58k
   QuantileKernelInt32/1048576/1           0.627 us        0.627 us      1074304 bytes_per_second=1.52125T/s null_percent=100 size=1048.58k
   QuantileKernelInt32/1048576/0             632 us          632 us         1109 bytes_per_second=1.54554G/s null_percent=0 size=1048.58k
   
   QuantileKernelInt64/1048576/10000         370 us          370 us         1888 bytes_per_second=2.6384G/s null_percent=0.01 size=1048.58k
   QuantileKernelInt64/1048576/100           414 us          414 us         1681 bytes_per_second=2.36152G/s null_percent=1 size=1048.58k
   QuantileKernelInt64/1048576/10            686 us          686 us         1021 bytes_per_second=1.42442G/s null_percent=10 size=1048.58k
   QuantileKernelInt64/1048576/2             906 us          906 us          774 bytes_per_second=1104.26M/s null_percent=50 size=1048.58k
   QuantileKernelInt64/1048576/1           0.607 us        0.607 us      1155137 bytes_per_second=1.57133T/s null_percent=100 size=1048.58k
   QuantileKernelInt64/1048576/0             364 us          364 us         1920 bytes_per_second=2.6835G/s null_percent=0 size=1048.58k
   
   QuantileKernelDouble/1048576/10000       1115 us         1115 us          629 bytes_per_second=897.137M/s null_percent=0.01 size=1048.58k
   QuantileKernelDouble/1048576/100         1244 us         1244 us          564 bytes_per_second=804.11M/s null_percent=1 size=1048.58k
   QuantileKernelDouble/1048576/10           914 us          914 us          767 bytes_per_second=1093.93M/s null_percent=10 size=1048.58k
   QuantileKernelDouble/1048576/2            900 us          900 us          778 bytes_per_second=1111.09M/s null_percent=50 size=1048.58k
   QuantileKernelDouble/1048576/1          0.618 us        0.618 us      1079708 bytes_per_second=1.54343T/s null_percent=100 size=1048.58k
   QuantileKernelDouble/1048576/0           1221 us         1221 us          573 bytes_per_second=819.062M/s null_percent=0 size=1048.58k
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org