clintropolis opened a new pull request, #19512:
URL: https://github.com/apache/druid/pull/19512

   ### Description
   This PR adds a new config `druid.expressions.useVectorApi` to allow using 
the incubating JDK Vector API ((also requires running Druid with flags 
`--add-modules jdk.incubator.vector`).
   
   The measurements look pretty nice, though I think perhaps some of the 
simpler expressions I measured might have already been eligible for 
auto-vectorization given that the numbers look approximately the same:
   ```
   Benchmark                        (complexCompression)  
(deferExpressionDimensions)  (jsonObjectStorageEncoding)  (query)  
(rowsPerSegment)  (schemaType)  (storageType)  (stringEncoding)  (useVectorApi) 
 (vectorize)  Mode  Cnt   Score   Error  Units
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE        7           1500000      
explicit           MMAP              UTF8           false        force  avgt    
5  14.404 ± 0.699  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE        7           1500000      
explicit           MMAP              UTF8            true        force  avgt    
5  14.647 ± 0.866  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE        8           1500000      
explicit           MMAP              UTF8           false        force  avgt    
5  24.437 ± 0.973  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE        8           1500000      
explicit           MMAP              UTF8            true        force  avgt    
5  24.367 ± 1.530  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE        9           1500000      
explicit           MMAP              UTF8           false        force  avgt    
5  26.923 ± 0.841  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE        9           1500000      
explicit           MMAP              UTF8            true        force  avgt    
5  26.668 ± 1.180  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE       10           1500000      
explicit           MMAP              UTF8           false        force  avgt    
5  43.108 ± 2.033  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE       10           1500000      
explicit           MMAP              UTF8            true        force  avgt    
5  38.607 ± 0.690  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE       11           1500000      
explicit           MMAP              UTF8           false        force  avgt    
5  61.805 ± 0.641  ms/op
   SqlExpressionBenchmark.querySql                  NONE                 
singleString                        SMILE       11           1500000      
explicit           MMAP              UTF8            true        force  avgt    
5  35.907 ± 0.516  ms/op
   ```
   
   I just did add/subtract/multiply implmenetations so far, but there are a few 
other easy wins that I'll probably add over a few follow-up PRs.
   
   


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

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to