gf2121 opened a new pull request, #14176: URL: https://github.com/apache/lucene/pull/14176
**Background** * https://github.com/apache/lucene/pull/541 tried to introduce the vectorized decoding for BKD leaf blocks * https://github.com/apache/lucene/pull/706 reverted the PR since we see a regression in nightly benchmark. * https://github.com/apache/lucene/pull/797 introduced the bpv16 and bpv32 bulk decoding again. We find the regression mainly comes from bpv24 decoding because one pass loop is faster than simd decoding + loop (more detail can be found in [LUCENE-10315](https://issues.apache.org/jira/browse/LUCENE-10315)) This PR tries to introduce the bpv24 vectorized decoding again and use the new bulk visit method to reduce virtual call, in favor of https://github.com/apache/lucene/pull/13149 and https://github.com/apache/lucene/pull/14138. Luceneutil now can load 3 implementors of IntersectVisitor: RangeQuery Visitor, RangeQuery InverseVisitor and DynamicPruning Visitor. Here is the result on `wikimediumall` and `taskCountPerCat=5` ``` TaskQPS baseline StdDevQPS my_modified_version StdDev Pct diff p-value PKLookup 279.23 (4.7%) 277.50 (6.0%) -0.6% ( -10% - 10%) 0.716 TermDayOfYearSort 265.44 (7.7%) 271.88 (8.0%) 2.4% ( -12% - 19%) 0.331 TermDTSort 152.89 (8.5%) 235.51 (14.9%) 54.0% ( 28% - 84%) 0.000 FilteredIntNRQ 85.77 (8.6%) 134.84 (6.2%) 57.2% ( 39% - 78%) 0.000 IntNRQ 87.20 (9.4%) 139.78 (6.7%) 60.3% ( 40% - 84%) 0.000 ``` -- 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: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org