-
Notifications
You must be signed in to change notification settings - Fork 653
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
Release v0.8.0 #523
Merged
Merged
Release v0.8.0 #523
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#438: fix reordering warning
* Add CMake install targets * Set CMake version range
* Add multithread search for BF index
Add HierarchicalNSW::indexFileSize() function for precise memory footprint control
* Add macos into CI * Fix mac setup * Use macos-13 in CI * Allow asserts, fix checkIntegrity * Revert macos to latest in CI * Fix CI * Windows build warnings
Fix global linkage again
Replace priority_queue::push with emplace.
Fix build warnings.
…efficient AVX512 instruction set
…on consider the size of a Vector that is not divisible by 4
[bruteforce] Fix bruteforce removePoint.
Use unique_ptr to manage visited_list_pool_
Efficient AVX512 implementation in 'InnerProductSIMD16ExtAVX512' Function
Fix memory leak on loadIndex with non-empty HierarchicalNSW object
This patch works around issue #467, also referenced as CVE-2023-37365, by implementing Yury Malkov's suggestion about capping the M value, coding the maximum number of outgoing connections in the graph, to a reasonable enough value of the order of 100000. For the record, the documentation indicates reasonable values for M range from 2 to 100, which are well within the cap; see ALGO_PARAMS.md. The reproducer shown in issue #467 doesn't trigger the double free condition anymore after this change is applied, but completes successfully, although with the below warning popping up on purpose: warning: M parameter exceeds 100000 which may lead to adverse effects. Cap to 100000 will be applied for the rest of the processing. Signed-off-by: Étienne Mollier <[email protected]>
per comment in merge request discussion.
hnswalg.h: cap M to 100000
Fix get_items
Bring back HNSWLIB_NO_NATIVE
Signed-off-by: Étienne Mollier <[email protected]>
python_bindings/bindings.cpp: fix typo.
Fixes linking error when compiling with Visual Studio and including hnswlib.h in several cpp files. before: 2>Tools.lib(Pch.obj) : error LNK2005: "void __cdecl cpuid(int * const,int,int)" (?cpuid@@YAXQEAHHH@Z) already defined in Pch.obj 2>Tools.lib(NearestNeighbors.obj) : error LNK2005: "void __cdecl cpuid(int * const,int,int)" (?cpuid@@YAXQEAHHH@Z) already defined in Pch.obj 2>C:\Users\Rade\Documents\Data Analysis\Code\GenomicsLab Repo\x64\Release\ExpressionDemo.exe : fatal error LNK1169: one or more multiply defined symbols found 2>Done building project "ExpressionDemo.vcxproj" -- FAILED. after: 2>ExpressionDemo.vcxproj -> C:\Users\Rade\Documents\Data Analysis\Code\GenomicsLab Repo\x64\Release\ExpressionDemo.exe
GNU compilers no longer warn with -Wall or -Wreorder that initialisation order does not match declaration order in HierarchicalHNSW
Linking error fix
Provide a macro to override the use of std::cerr
Avoid sign mismatch in loop
Resolve initialisation order warning
* Add stop condition, multivector search, epsilon search * Fix include * Update readme * Update multivector tests * One header file * Add bare_bone_search flag * Fix epsilon search * Refactoring * Adress comments * Fix assert * Add ef to multivector search, return vector, refactoring * Refactoring * Adress comments * Add bare bone search comment Co-authored-by: Yury Malkov <[email protected]> * Remove has_deletions flag --------- Co-authored-by: Yury Malkov <[email protected]>
dyashuni
approved these changes
Dec 2, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Highlights:
get_items
now havereturn_type
parameter, which can be either 'numpy' or 'list'Huge thanks to the contributors: