Selaa lähdekoodia

Rename the vec module to better reflect that it provides SIMD optimized vector scorers (#109661)

This commit renames the vector module to better reflect its intent - to provide SIMD optimized vector scorer implementations.
Chris Hegarty 1 vuosi sitten
vanhempi
commit
fa364bfcaf
35 muutettua tiedostoa jossa 35 lisäystä ja 35 poistoa
  1. 1 1
      benchmarks/build.gradle
  2. 3 3
      benchmarks/src/main/java/org/elasticsearch/benchmark/vector/VectorScorerBenchmark.java
  3. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionModuleCheckTaskProvider.java
  4. 2 2
      libs/native/src/main/java/module-info.java
  5. 0 0
      libs/simdvec/build.gradle
  6. 0 0
      libs/simdvec/includes.txt
  7. 0 0
      libs/simdvec/licenses/lucene-core-LICENSE.txt
  8. 0 0
      libs/simdvec/licenses/lucene-core-NOTICE.txt
  9. 0 0
      libs/simdvec/native/Dockerfile
  10. 0 0
      libs/simdvec/native/build.gradle
  11. 0 0
      libs/simdvec/native/gradle/wrapper/gradle-wrapper.jar
  12. 0 0
      libs/simdvec/native/gradle/wrapper/gradle-wrapper.properties
  13. 0 0
      libs/simdvec/native/gradlew
  14. 0 0
      libs/simdvec/native/gradlew.bat
  15. 0 0
      libs/simdvec/native/publish_vec_binaries.sh
  16. 0 0
      libs/simdvec/native/settings.gradle
  17. 0 0
      libs/simdvec/native/src/vec/c/aarch64/vec.c
  18. 0 0
      libs/simdvec/native/src/vec/c/amd64/vec.c
  19. 0 0
      libs/simdvec/native/src/vec/headers/vec.h
  20. 2 2
      libs/simdvec/src/main/java/module-info.java
  21. 1 1
      libs/simdvec/src/main/java/org/elasticsearch/simdvec/VectorScorerFactory.java
  22. 1 1
      libs/simdvec/src/main/java/org/elasticsearch/simdvec/VectorScorerFactoryImpl.java
  23. 1 1
      libs/simdvec/src/main/java/org/elasticsearch/simdvec/VectorSimilarityType.java
  24. 5 5
      libs/simdvec/src/main21/java/org/elasticsearch/simdvec/VectorScorerFactoryImpl.java
  25. 1 1
      libs/simdvec/src/main21/java/org/elasticsearch/simdvec/internal/Int7SQVectorScorer.java
  26. 1 1
      libs/simdvec/src/main21/java/org/elasticsearch/simdvec/internal/Int7SQVectorScorerSupplier.java
  27. 1 1
      libs/simdvec/src/main21/java/org/elasticsearch/simdvec/internal/Similarities.java
  28. 3 3
      libs/simdvec/src/main22/java/org/elasticsearch/simdvec/internal/Int7SQVectorScorer.java
  29. 1 1
      libs/simdvec/src/test/java/org/elasticsearch/simdvec/AbstractVectorTestCase.java
  30. 5 5
      libs/simdvec/src/test/java/org/elasticsearch/simdvec/VectorScorerFactoryTests.java
  31. 1 1
      server/build.gradle
  32. 1 1
      server/src/main/java/module-info.java
  33. 2 2
      server/src/main/java/org/elasticsearch/index/codec/vectors/ES814ScalarQuantizedVectorsFormat.java
  34. 1 1
      server/src/main/resources/org/elasticsearch/bootstrap/security.policy
  35. 1 1
      test/framework/src/main/java/org/elasticsearch/bootstrap/BootstrapForTesting.java

+ 1 - 1
benchmarks/build.gradle

@@ -41,7 +41,7 @@ dependencies {
   api(project(':x-pack:plugin:esql-core'))
   api(project(':x-pack:plugin:esql'))
   api(project(':x-pack:plugin:esql:compute'))
-  implementation project(path: ':libs:elasticsearch-vec')
+  implementation project(path: ':libs:elasticsearch-simdvec')
   expression(project(path: ':modules:lang-expression', configuration: 'zip'))
   painless(project(path: ':modules:lang-painless', configuration: 'zip'))
   api "org.openjdk.jmh:jmh-core:$versions.jmh"

+ 3 - 3
benchmarks/src/main/java/org/elasticsearch/benchmark/vector/VectorScorerBenchmark.java

@@ -22,7 +22,7 @@ import org.apache.lucene.util.quantization.RandomAccessQuantizedByteVectorValues
 import org.apache.lucene.util.quantization.ScalarQuantizer;
 import org.elasticsearch.common.logging.LogConfigurator;
 import org.elasticsearch.core.IOUtils;
-import org.elasticsearch.vec.VectorScorerFactory;
+import org.elasticsearch.simdvec.VectorScorerFactory;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.BenchmarkMode;
 import org.openjdk.jmh.annotations.Fork;
@@ -41,8 +41,8 @@ import java.nio.file.Files;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeUnit;
 
-import static org.elasticsearch.vec.VectorSimilarityType.DOT_PRODUCT;
-import static org.elasticsearch.vec.VectorSimilarityType.EUCLIDEAN;
+import static org.elasticsearch.simdvec.VectorSimilarityType.DOT_PRODUCT;
+import static org.elasticsearch.simdvec.VectorSimilarityType.EUCLIDEAN;
 
 @Fork(value = 1, jvmArgsPrepend = { "--add-modules=jdk.incubator.vector" })
 @Warmup(iterations = 3, time = 3)

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionModuleCheckTaskProvider.java

@@ -62,8 +62,8 @@ public class InternalDistributionModuleCheckTaskProvider {
         "org.elasticsearch.preallocate",
         "org.elasticsearch.securesm",
         "org.elasticsearch.server",
+        "org.elasticsearch.simdvec",
         "org.elasticsearch.tdigest",
-        "org.elasticsearch.vec",
         "org.elasticsearch.xcontent"
     );
 

+ 2 - 2
libs/native/src/main/java/module-info.java

@@ -19,8 +19,8 @@ module org.elasticsearch.nativeaccess {
         to
             org.elasticsearch.nativeaccess.jna,
             org.elasticsearch.server,
-            org.elasticsearch.systemd,
-            org.elasticsearch.vec;
+            org.elasticsearch.simdvec,
+            org.elasticsearch.systemd;
     // allows jna to implement a library provider, and ProviderLocator to load it
     exports org.elasticsearch.nativeaccess.lib to org.elasticsearch.nativeaccess.jna, org.elasticsearch.base;
 

+ 0 - 0
libs/vec/build.gradle → libs/simdvec/build.gradle


+ 0 - 0
libs/vec/includes.txt → libs/simdvec/includes.txt


+ 0 - 0
libs/vec/licenses/lucene-core-LICENSE.txt → libs/simdvec/licenses/lucene-core-LICENSE.txt


+ 0 - 0
libs/vec/licenses/lucene-core-NOTICE.txt → libs/simdvec/licenses/lucene-core-NOTICE.txt


+ 0 - 0
libs/vec/native/Dockerfile → libs/simdvec/native/Dockerfile


+ 0 - 0
libs/vec/native/build.gradle → libs/simdvec/native/build.gradle


+ 0 - 0
libs/vec/native/gradle/wrapper/gradle-wrapper.jar → libs/simdvec/native/gradle/wrapper/gradle-wrapper.jar


+ 0 - 0
libs/vec/native/gradle/wrapper/gradle-wrapper.properties → libs/simdvec/native/gradle/wrapper/gradle-wrapper.properties


+ 0 - 0
libs/vec/native/gradlew → libs/simdvec/native/gradlew


+ 0 - 0
libs/vec/native/gradlew.bat → libs/simdvec/native/gradlew.bat


+ 0 - 0
libs/vec/native/publish_vec_binaries.sh → libs/simdvec/native/publish_vec_binaries.sh


+ 0 - 0
libs/vec/native/settings.gradle → libs/simdvec/native/settings.gradle


+ 0 - 0
libs/vec/native/src/vec/c/aarch64/vec.c → libs/simdvec/native/src/vec/c/aarch64/vec.c


+ 0 - 0
libs/vec/native/src/vec/c/amd64/vec.c → libs/simdvec/native/src/vec/c/amd64/vec.c


+ 0 - 0
libs/vec/native/src/vec/headers/vec.h → libs/simdvec/native/src/vec/headers/vec.h


+ 2 - 2
libs/vec/src/main/java/module-info.java → libs/simdvec/src/main/java/module-info.java

@@ -6,9 +6,9 @@
  * Side Public License, v 1.
  */
 
-module org.elasticsearch.vec {
+module org.elasticsearch.simdvec {
     requires org.elasticsearch.nativeaccess;
     requires org.apache.lucene.core;
 
-    exports org.elasticsearch.vec to org.elasticsearch.server;
+    exports org.elasticsearch.simdvec to org.elasticsearch.server;
 }

+ 1 - 1
libs/vec/src/main/java/org/elasticsearch/vec/VectorScorerFactory.java → libs/simdvec/src/main/java/org/elasticsearch/simdvec/VectorScorerFactory.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec;
+package org.elasticsearch.simdvec;
 
 import org.apache.lucene.index.VectorSimilarityFunction;
 import org.apache.lucene.store.IndexInput;

+ 1 - 1
libs/vec/src/main/java/org/elasticsearch/vec/VectorScorerFactoryImpl.java → libs/simdvec/src/main/java/org/elasticsearch/simdvec/VectorScorerFactoryImpl.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec;
+package org.elasticsearch.simdvec;
 
 import org.apache.lucene.index.VectorSimilarityFunction;
 import org.apache.lucene.store.IndexInput;

+ 1 - 1
libs/vec/src/main/java/org/elasticsearch/vec/VectorSimilarityType.java → libs/simdvec/src/main/java/org/elasticsearch/simdvec/VectorSimilarityType.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec;
+package org.elasticsearch.simdvec;
 
 import org.apache.lucene.index.VectorSimilarityFunction;
 

+ 5 - 5
libs/vec/src/main21/java/org/elasticsearch/vec/VectorScorerFactoryImpl.java → libs/simdvec/src/main21/java/org/elasticsearch/simdvec/VectorScorerFactoryImpl.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec;
+package org.elasticsearch.simdvec;
 
 import org.apache.lucene.index.VectorSimilarityFunction;
 import org.apache.lucene.store.FilterIndexInput;
@@ -16,10 +16,10 @@ import org.apache.lucene.util.hnsw.RandomVectorScorer;
 import org.apache.lucene.util.hnsw.RandomVectorScorerSupplier;
 import org.apache.lucene.util.quantization.RandomAccessQuantizedByteVectorValues;
 import org.elasticsearch.nativeaccess.NativeAccess;
-import org.elasticsearch.vec.internal.Int7SQVectorScorer;
-import org.elasticsearch.vec.internal.Int7SQVectorScorerSupplier.DotProductSupplier;
-import org.elasticsearch.vec.internal.Int7SQVectorScorerSupplier.EuclideanSupplier;
-import org.elasticsearch.vec.internal.Int7SQVectorScorerSupplier.MaxInnerProductSupplier;
+import org.elasticsearch.simdvec.internal.Int7SQVectorScorer;
+import org.elasticsearch.simdvec.internal.Int7SQVectorScorerSupplier.DotProductSupplier;
+import org.elasticsearch.simdvec.internal.Int7SQVectorScorerSupplier.EuclideanSupplier;
+import org.elasticsearch.simdvec.internal.Int7SQVectorScorerSupplier.MaxInnerProductSupplier;
 
 import java.util.Optional;
 

+ 1 - 1
libs/vec/src/main21/java/org/elasticsearch/vec/internal/Int7SQVectorScorer.java → libs/simdvec/src/main21/java/org/elasticsearch/simdvec/internal/Int7SQVectorScorer.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec.internal;
+package org.elasticsearch.simdvec.internal;
 
 import org.apache.lucene.index.VectorSimilarityFunction;
 import org.apache.lucene.util.hnsw.RandomVectorScorer;

+ 1 - 1
libs/vec/src/main21/java/org/elasticsearch/vec/internal/Int7SQVectorScorerSupplier.java → libs/simdvec/src/main21/java/org/elasticsearch/simdvec/internal/Int7SQVectorScorerSupplier.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec.internal;
+package org.elasticsearch.simdvec.internal;
 
 import org.apache.lucene.store.MemorySegmentAccessInput;
 import org.apache.lucene.util.hnsw.RandomVectorScorer;

+ 1 - 1
libs/vec/src/main21/java/org/elasticsearch/vec/internal/Similarities.java → libs/simdvec/src/main21/java/org/elasticsearch/simdvec/internal/Similarities.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec.internal;
+package org.elasticsearch.simdvec.internal;
 
 import org.elasticsearch.nativeaccess.NativeAccess;
 import org.elasticsearch.nativeaccess.VectorSimilarityFunctions;

+ 3 - 3
libs/vec/src/main22/java/org/elasticsearch/vec/internal/Int7SQVectorScorer.java → libs/simdvec/src/main22/java/org/elasticsearch/simdvec/internal/Int7SQVectorScorer.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec.internal;
+package org.elasticsearch.simdvec.internal;
 
 import org.apache.lucene.codecs.hnsw.ScalarQuantizedVectorScorer;
 import org.apache.lucene.index.VectorSimilarityFunction;
@@ -21,8 +21,8 @@ import java.io.IOException;
 import java.lang.foreign.MemorySegment;
 import java.util.Optional;
 
-import static org.elasticsearch.vec.internal.Similarities.dotProduct7u;
-import static org.elasticsearch.vec.internal.Similarities.squareDistance7u;
+import static org.elasticsearch.simdvec.internal.Similarities.dotProduct7u;
+import static org.elasticsearch.simdvec.internal.Similarities.squareDistance7u;
 
 public abstract sealed class Int7SQVectorScorer extends RandomVectorScorer.AbstractRandomVectorScorer {
 

+ 1 - 1
libs/vec/src/test/java/org/elasticsearch/vec/AbstractVectorTestCase.java → libs/simdvec/src/test/java/org/elasticsearch/simdvec/AbstractVectorTestCase.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec;
+package org.elasticsearch.simdvec;
 
 import org.apache.lucene.util.quantization.ScalarQuantizedVectorSimilarity;
 import org.elasticsearch.test.ESTestCase;

+ 5 - 5
libs/vec/src/test/java/org/elasticsearch/vec/VectorScorerFactoryTests.java → libs/simdvec/src/test/java/org/elasticsearch/simdvec/VectorScorerFactoryTests.java

@@ -6,7 +6,7 @@
  * Side Public License, v 1.
  */
 
-package org.elasticsearch.vec;
+package org.elasticsearch.simdvec;
 
 import com.carrotsearch.randomizedtesting.generators.RandomNumbers;
 
@@ -38,11 +38,11 @@ import java.util.function.Predicate;
 import java.util.stream.IntStream;
 
 import static org.apache.lucene.codecs.hnsw.ScalarQuantizedVectorScorer.quantizeQuery;
+import static org.elasticsearch.simdvec.VectorSimilarityType.COSINE;
+import static org.elasticsearch.simdvec.VectorSimilarityType.DOT_PRODUCT;
+import static org.elasticsearch.simdvec.VectorSimilarityType.EUCLIDEAN;
+import static org.elasticsearch.simdvec.VectorSimilarityType.MAXIMUM_INNER_PRODUCT;
 import static org.elasticsearch.test.hamcrest.OptionalMatchers.isEmpty;
-import static org.elasticsearch.vec.VectorSimilarityType.COSINE;
-import static org.elasticsearch.vec.VectorSimilarityType.DOT_PRODUCT;
-import static org.elasticsearch.vec.VectorSimilarityType.EUCLIDEAN;
-import static org.elasticsearch.vec.VectorSimilarityType.MAXIMUM_INNER_PRODUCT;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 

+ 1 - 1
server/build.gradle

@@ -37,7 +37,7 @@ dependencies {
   api project(":libs:elasticsearch-plugin-analysis-api")
   api project(':libs:elasticsearch-grok')
   api project(":libs:elasticsearch-tdigest")
-  implementation project(":libs:elasticsearch-vec")
+  implementation project(":libs:elasticsearch-simdvec")
 
   implementation project(':libs:elasticsearch-plugin-classloader')
   // no compile dependency by server, but server defines security policy for this codebase so it i>

+ 1 - 1
server/src/main/java/module-info.java

@@ -32,7 +32,7 @@ module org.elasticsearch.server {
     requires org.elasticsearch.plugin.analysis;
     requires org.elasticsearch.grok;
     requires org.elasticsearch.tdigest;
-    requires org.elasticsearch.vec;
+    requires org.elasticsearch.simdvec;
 
     requires com.sun.jna;
     requires hppc;

+ 2 - 2
server/src/main/java/org/elasticsearch/index/codec/vectors/ES814ScalarQuantizedVectorsFormat.java

@@ -35,8 +35,8 @@ import org.apache.lucene.util.quantization.QuantizedByteVectorValues;
 import org.apache.lucene.util.quantization.QuantizedVectorsReader;
 import org.apache.lucene.util.quantization.RandomAccessQuantizedByteVectorValues;
 import org.apache.lucene.util.quantization.ScalarQuantizer;
-import org.elasticsearch.vec.VectorScorerFactory;
-import org.elasticsearch.vec.VectorSimilarityType;
+import org.elasticsearch.simdvec.VectorScorerFactory;
+import org.elasticsearch.simdvec.VectorSimilarityType;
 
 import java.io.IOException;
 

+ 1 - 1
server/src/main/resources/org/elasticsearch/bootstrap/security.policy

@@ -83,7 +83,7 @@ grant codeBase "${codebase.elasticsearch-preallocate}" {
   permission java.lang.reflect.ReflectPermission "newProxyInPackage.org.elasticsearch.preallocate";
 };
 
-grant codeBase "${codebase.elasticsearch-vec}" {
+grant codeBase "${codebase.elasticsearch-simdvec}" {
   // for access MemorySegmentIndexInput internals
   permission java.lang.RuntimePermission "accessDeclaredMembers";
   permission java.lang.reflect.ReflectPermission "suppressAccessChecks";

+ 1 - 1
test/framework/src/main/java/org/elasticsearch/bootstrap/BootstrapForTesting.java

@@ -223,7 +223,7 @@ public class BootstrapForTesting {
         addClassCodebase(codebases, "elasticsearch-core", "org.elasticsearch.core.Booleans");
         addClassCodebase(codebases, "elasticsearch-cli", "org.elasticsearch.cli.Command");
         addClassCodebase(codebases, "elasticsearch-preallocate", "org.elasticsearch.preallocate.Preallocate");
-        addClassCodebase(codebases, "elasticsearch-vec", "org.elasticsearch.vec.VectorScorerFactory");
+        addClassCodebase(codebases, "elasticsearch-vec", "org.elasticsearch.simdvec.VectorScorerFactory");
         addClassCodebase(codebases, "framework", "org.elasticsearch.test.ESTestCase");
         return codebases;
     }