rmuir opened a new pull request, #12681: URL: https://github.com/apache/lucene/pull/12681
This builds on https://github.com/apache/lucene/pull/12680 so please review that one first to make it easier. The advantage there is we split out vector kernels into smaller manageable methods, making it easy to specialize the avx-512 cases. This speeds up all the binary functions on avx-256, without slowing anything down on avx-512 (it explicitly avoids using 512-bit integer multiply). the squareDistance is sped up a bit on avx-512, only because avx-512 users were suffering from downclocking already (already doing 512-bit multiply), but we might as well clean up the other math. 512-bit multiply can't be easily avoided in this function due to the formula. ``` Old: Benchmark (size) Mode Cnt Score Error Units VectorUtilBenchmark.binaryCosineVector 1024 thrpt 5 3.544 ± 0.046 ops/us VectorUtilBenchmark.binaryDotProductVector 1024 thrpt 5 7.268 ± 0.081 ops/us VectorUtilBenchmark.binarySquareVector 1024 thrpt 5 6.387 ± 0.091 ops/us New: Benchmark (size) Mode Cnt Score Error Units VectorUtilBenchmark.binaryCosineVector 1024 thrpt 5 3.704 ± 0.252 ops/us VectorUtilBenchmark.binaryDotProductVector 1024 thrpt 5 8.556 ± 0.145 ops/us VectorUtilBenchmark.binarySquareVector 1024 thrpt 5 7.514 ± 0.048 ops/us ``` We have to think about testing. I don't want to rely upon various hardware for correctness. I think there's a way to alter the code so that we can test the correctness of everything (albeit slowly), e.g. exercise 128, 256, and 512 in our tests. -- 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