Dandandan opened a new pull request #8900:
URL: https://github.com/apache/arrow/pull/8900


   This PR shows that there is still about a ~2x performance (compared to ~8x 
earlier) difference between using a builder vs using a mutable buffer directly 
after https://github.com/apache/arrow/pull/8842 .
   This also account for a ~5% difference on some queries (when not using the 
simd feature, where the implementation doesn't use the buffer). Also the bounds 
checks are a bit expensive. In some `value` functions they are explicitly not 
there whereas in other (like for string) they are there.
   
   I guess there will be always _some_ overhead in the builder as it does need 
to do some bookkeeping, but I think it's a good idea to see how we can write 
kernels while not losing too much performance.
   
   FYI @jorgecarleitao 
   
   ```
   Gnuplot not found, using plotters backend
   eq Float32              time:   [107.02 us 107.29 us 107.60 us]              
         
                           change: [-54.994% -54.839% -54.681%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     1 (1.00%) high mild
     1 (1.00%) high severe
   
   eq scalar Float32       time:   [70.271 us 70.356 us 70.446 us]              
                
                           change: [-48.540% -48.392% -48.258%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 4 outliers among 100 measurements (4.00%)
     2 (2.00%) high mild
     2 (2.00%) high severe
   
   neq Float32             time:   [71.580 us 71.655 us 71.732 us]              
          
                           change: [-58.072% -58.001% -57.931%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     1 (1.00%) low mild
     4 (4.00%) high mild
     2 (2.00%) high severe
   
   neq scalar Float32      time:   [70.011 us 70.079 us 70.155 us]              
                 
                           change: [-59.055% -58.980% -58.908%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 5 outliers among 100 measurements (5.00%)
     2 (2.00%) low severe
     3 (3.00%) high mild
   
   lt Float32              time:   [70.945 us 70.991 us 71.038 us]              
         
                           change: [-55.834% -55.757% -55.683%] (p = 0.00 < 
0.05)
                           Performance has improved.
   
   lt scalar Float32       time:   [50.708 us 50.789 us 50.882 us]              
                 
                           change: [-62.939% -62.825% -62.689%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 5 outliers among 100 measurements (5.00%)
     3 (3.00%) high mild
     2 (2.00%) high severe
   
   lt_eq Float32           time:   [106.29 us 106.40 us 106.52 us]              
            
                           change: [-42.593% -42.470% -42.350%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     1 (1.00%) low severe
     1 (1.00%) low mild
     2 (2.00%) high mild
     2 (2.00%) high severe
   
   lt_eq scalar Float32    time:   [71.089 us 71.170 us 71.261 us]              
                   
                           change: [-52.021% -51.941% -51.857%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     1 (1.00%) high mild
     1 (1.00%) high severe
   
   gt Float32              time:   [71.759 us 71.939 us 72.131 us]              
         
                           change: [-58.319% -58.190% -58.067%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     5 (5.00%) high mild
     2 (2.00%) high severe
   
   gt scalar Float32       time:   [38.748 us 38.782 us 38.821 us]              
                 
                           change: [-73.757% -73.691% -73.624%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 5 outliers among 100 measurements (5.00%)
     4 (4.00%) high mild
     1 (1.00%) high severe
   
   gt_eq Float32           time:   [102.79 us 102.87 us 102.96 us]              
            
                           change: [-53.103% -52.953% -52.805%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 8 outliers among 100 measurements (8.00%)
     1 (1.00%) low severe
     4 (4.00%) high mild
     3 (3.00%) high severe
   
   gt_eq scalar Float32    time:   [55.034 us 55.109 us 55.201 us]              
                   
                           change: [-59.706% -59.544% -59.381%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     7 (7.00%) high mild
   ```


----------------------------------------------------------------
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