-
Notifications
You must be signed in to change notification settings - Fork 169
Description
This GitHub issue has been opened to initiate a discussion about raising the minimum required Java version for cuvs-java.
Currently, the cuvs-java API is compiled against Java 21, while its implementation targets Java 22. The implementation is packaged within the Java 22 section of a multi-release JAR (MR-JAR), meaning that cuvs-java requires a Java 22 (or newer) runtime to function properly. This structure was originally chosen to simplify development, as many Java projects prefer to compile against the latest long-term support (LTS) release — which, at the time of writing, is Java 21.
The main reason for reconsidering the minimum Java version is the use of MemorySegment in the cuvs-java API. Incorporating MemorySegment allows users to transfer datasets between the host and GPU directly from host memory — including memory-mapped files or off-heap memory — instead of relying on on-heap memory or temporary files. This capability can lead to significant performance improvements.