Skip to content

Commit 521981d

Browse files
authored
Move vector jmh around (#138371)
This moves our JMH benchmarks for vector ops vs. quantization steps. This way we can easily run all vector ops with a regex pattern.
1 parent 38fa6d6 commit 521981d

15 files changed

+48
-97
lines changed

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/ComputeNeighboursBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/quantization/ComputeNeighboursBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.benchmark.vector;
10+
package org.elasticsearch.benchmark.vector.quantization;
1111

1212
import org.elasticsearch.common.logging.LogConfigurator;
1313
import org.elasticsearch.index.codec.vectors.cluster.NeighborHood;

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/OptimizedScalarQuantizerBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/quantization/OptimizedScalarQuantizerBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.benchmark.vector;
10+
package org.elasticsearch.benchmark.vector.quantization;
1111

1212
import org.apache.lucene.index.VectorSimilarityFunction;
1313
import org.elasticsearch.common.logging.LogConfigurator;

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/PackAsBinaryBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/quantization/PackAsBinaryBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* your election, the "Elastic License 2.0", the "GNU Affero General Public
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
9-
package org.elasticsearch.benchmark.vector;
9+
package org.elasticsearch.benchmark.vector.quantization;
1010

1111
import org.elasticsearch.common.logging.LogConfigurator;
1212
import org.elasticsearch.index.codec.vectors.BQVectorUtils;

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/TransposeHalfByteBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/quantization/TransposeHalfByteBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* your election, the "Elastic License 2.0", the "GNU Affero General Public
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
9-
package org.elasticsearch.benchmark.vector;
9+
package org.elasticsearch.benchmark.vector.quantization;
1010

1111
import org.elasticsearch.common.logging.LogConfigurator;
1212
import org.elasticsearch.index.codec.vectors.BQVectorUtils;

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/DistanceBulkBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/scorer/VectorScorerDistanceBulkBenchmark.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* your election, the "Elastic License 2.0", the "GNU Affero General Public
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
9-
package org.elasticsearch.benchmark.vector;
9+
package org.elasticsearch.benchmark.vector.scorer;
1010

1111
import org.apache.lucene.util.VectorUtil;
1212
import org.apache.lucene.util.quantization.OptimizedScalarQuantizer;
@@ -38,7 +38,7 @@
3838
@Measurement(iterations = 5, time = 1)
3939
// engage some noise reduction
4040
@Fork(value = 1)
41-
public class DistanceBulkBenchmark {
41+
public class VectorScorerDistanceBulkBenchmark {
4242

4343
static {
4444
LogConfigurator.configureESLogging(); // native access requires logging to be initialized

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/DistanceFunctionBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/scorer/VectorScorerDistanceFunctionBenchmark.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.benchmark.vector;
10+
package org.elasticsearch.benchmark.vector.scorer;
1111

1212
import org.apache.lucene.util.BytesRef;
1313
import org.elasticsearch.common.logging.LogConfigurator;
@@ -49,9 +49,9 @@
4949
@Measurement(iterations = 2)
5050
@BenchmarkMode(Mode.AverageTime)
5151
@OutputTimeUnit(TimeUnit.NANOSECONDS)
52-
@OperationsPerInvocation(DistanceFunctionBenchmark.OPERATIONS)
52+
@OperationsPerInvocation(VectorScorerDistanceFunctionBenchmark.OPERATIONS)
5353
@State(Scope.Benchmark)
54-
public class DistanceFunctionBenchmark {
54+
public class VectorScorerDistanceFunctionBenchmark {
5555

5656
public static final int OPERATIONS = 25000;
5757

@@ -223,7 +223,7 @@ public void findBenchmarkImpl() {
223223
}
224224

225225
@Fork(1)
226-
@Benchmark
226+
// @Benchmark
227227
public void benchmark(Blackhole blackhole) {
228228
for (int i = 0; i < OPERATIONS; ++i) {
229229
blackhole.consume(benchmarkImpl.getAsDouble());

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/Int4ScorerBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/scorer/VectorScorerInt4Benchmark.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* your election, the "Elastic License 2.0", the "GNU Affero General Public
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
9-
package org.elasticsearch.benchmark.vector;
9+
package org.elasticsearch.benchmark.vector.scorer;
1010

1111
import org.apache.lucene.index.VectorSimilarityFunction;
1212
import org.apache.lucene.store.Directory;
@@ -48,7 +48,7 @@
4848
@Measurement(iterations = 5, time = 1)
4949
// engage some noise reduction
5050
@Fork(value = 1)
51-
public class Int4ScorerBenchmark {
51+
public class VectorScorerInt4Benchmark {
5252

5353
static {
5454
LogConfigurator.configureESLogging(); // native access requires logging to be initialized

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/Int7ScorerBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/scorer/VectorScorerInt7Benchmark.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* your election, the "Elastic License 2.0", the "GNU Affero General Public
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
9-
package org.elasticsearch.benchmark.vector;
9+
package org.elasticsearch.benchmark.vector.scorer;
1010

1111
import org.apache.lucene.index.VectorSimilarityFunction;
1212
import org.apache.lucene.store.Directory;
@@ -48,7 +48,7 @@
4848
@Measurement(iterations = 5, time = 1)
4949
// engage some noise reduction
5050
@Fork(value = 1)
51-
public class Int7ScorerBenchmark {
51+
public class VectorScorerInt7Benchmark {
5252

5353
static {
5454
LogConfigurator.configureESLogging(); // native access requires logging to be initialized

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/Int7uScorerBenchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/scorer/VectorScorerInt7uBenchmark.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.benchmark.vector;
10+
package org.elasticsearch.benchmark.vector.scorer;
1111

1212
import org.apache.lucene.codecs.lucene99.Lucene99ScalarQuantizedVectorScorer;
1313
import org.apache.lucene.codecs.lucene99.OffHeapQuantizedByteVectorValues;
@@ -59,12 +59,12 @@
5959
* implementations;: scalar, lucene's panama-ized, and Elasticsearch's native.
6060
* Run with ./gradlew -p benchmarks run --args 'Int7uScorerBenchmark'
6161
*/
62-
public class Int7uScorerBenchmark {
62+
public class VectorScorerInt7uBenchmark {
6363

6464
static {
6565
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
6666
if (supportsHeapSegments() == false) {
67-
final Logger LOG = LogManager.getLogger(Int7uScorerBenchmark.class);
67+
final Logger LOG = LogManager.getLogger(VectorScorerInt7uBenchmark.class);
6868
LOG.warn("*Query targets cannot run on " + "JDK " + Runtime.version());
6969
}
7070
}

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/JDKVectorFloat32Benchmark.java renamed to benchmarks/src/main/java/org/elasticsearch/benchmark/vector/scorer/VectorScorerJDKFloat32Benchmark.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* your election, the "Elastic License 2.0", the "GNU Affero General Public
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
9-
package org.elasticsearch.benchmark.vector;
9+
package org.elasticsearch.benchmark.vector.scorer;
1010

1111
import org.apache.lucene.util.VectorUtil;
1212
import org.elasticsearch.common.logging.LogConfigurator;
@@ -39,7 +39,7 @@
3939
@State(Scope.Benchmark)
4040
@Warmup(iterations = 3, time = 1)
4141
@Measurement(iterations = 5, time = 1)
42-
public class JDKVectorFloat32Benchmark {
42+
public class VectorScorerJDKFloat32Benchmark {
4343

4444
static {
4545
NodeNamePatternConverter.setGlobalNodeName("foo");

0 commit comments

Comments
 (0)