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:
[email protected]


Reply via email to