-
Notifications
You must be signed in to change notification settings - Fork 153
Port Panama SIMD kernels to C++ using Google Highway #668
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
9e67bad
9317416
02295cc
9f0b67f
f7bf3d3
de8f80f
1551c35
dce8070
369fcb3
cdb7e53
85f267c
b57c437
92789e4
05600e5
ac89981
0fae13f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| [submodule "jvector-native/src/main/c/third_party/highway"] | ||
| path = jvector-native/src/main/c/third_party/highway | ||
| url = https://github.com/google/highway.git | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. seems like you're depending on the main branch of google highway.. would it make sense to pin to a versioned release of highway instead? This will help with version binding with jvector releases. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -59,6 +59,30 @@ a dependency from any Java 11 code. When run on a Java 20+ JVM with the Vector m | |
| providers will be used. In general, the project is structured to be built with JDK 20+, but when `JAVA_HOME` is set to | ||
| Java 11 -> Java 19, certain build features will still be available. | ||
|
|
||
| ### Cloning | ||
|
|
||
| This repository uses a Git submodule for [Google Highway](https://github.com/google/highway), located at | ||
| `jvector-native/src/main/c/third_party/highway`. After cloning, initialise it with: | ||
|
|
||
| ```bash | ||
| git submodule update --init | ||
| ``` | ||
|
|
||
| Or clone with submodules in one step: | ||
|
|
||
| ```bash | ||
| git clone --recurse-submodules <repo-url> | ||
| ``` | ||
|
|
||
| ### Building native libraries | ||
|
|
||
| The native SIMD library (`libjvector.so`) requires **g++ 11+** and is built by the script | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. g++ 11 is an older release of g++, which might be missing out the newer improvements, isa-additions in the library. Why pin to an older version, and not something more recent like 15 or 16?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Its a minimum requirement, not a version pinned to: |
||
| `jvector-native/src/main/c/jextract_vector_simd.sh`. To build and auto-install `g++` on Ubuntu: | ||
|
|
||
| ```bash | ||
| ./jvector-native/src/main/c/jextract_vector_simd.sh --auto-install-g++ | ||
|
r-devulap marked this conversation as resolved.
|
||
| ``` | ||
|
|
||
| Base code is in [jvector-base](./jvector-base) and will be built for Java 11 releases, restricting language features and APIs | ||
| appropriately. Code in [jvector-twenty](./jvector-twenty) will be compiled for Java 20 language features/APIs and included in the final | ||
| multirelease jar targeting supported JVMs. [jvector-multirelease](./jvector-multirelease) packages [jvector-base](./jvector-base) and [jvector-twenty](./jvector-twenty) as a | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.