-
Notifications
You must be signed in to change notification settings - Fork 197
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
Adding FAISS cpu to raft-ann-bench
#1814
Adding FAISS cpu to raft-ann-bench
#1814
Conversation
The big challenge with this change is that I suppose one way to accomplish this would be to accept an option in |
…o enh-ann-bench-faiss-cpu
Ha-ha, I had some drafts on this too, but you beat me to it :) I struggled with the FAISS CPU/GPU builds as well and came up with this solution #1820 . It's not perfect and needs some refinement, but it works. Any thoughts on this? |
include(cmake/modules/FindAVX.cmake) | ||
|
||
# Link against AVX CPU lib if it exists | ||
set(RAFT_FAISS_GLOBAL_TARGETS faiss::faiss) |
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.
You don't need these conditionals around GLOBAL_TARGETS just provide them all and rapids-cmake will first check that they exist before doing any operations on them
@robertmaynard looks like this worked! Thanks so much. Honestly, I had no clue that the FAISS side of the cmake didn't include the same search paths as the raft side of the cmake. I just assumed that part was transitively. So happy to see this building in CI finally. |
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.
Why was it needed to get fmt
and spdlog
for CPU only builds? I know currently RMM brings those, but are we providing them for FAISS?
@@ -107,7 +107,7 @@ class FaissGpu : public ANN<T> { | |||
|
|||
void build(const T* dataset, size_t nrow, cudaStream_t stream = 0) final; | |||
|
|||
void set_search_param(const AnnSearchParam& param) override; | |||
virtual void set_search_param(const FaissGpu<T>::AnnSearchParam& param) {} |
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.
I'm not too sure about this, should this be?
virtual void set_search_param(const FaissGpu<T>::AnnSearchParam& param) {} | |
virtual void set_search_param(const FaissGpu<T>::AnnSearchParam& param) = 0; |
dependencies.yaml
Outdated
- benchmark>=1.8.2 | ||
- faiss-proc=*=cuda | ||
- rmm=23.10.* |
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.
- rmm=23.10.* | |
- rmm=23.12.* |
/merge |
1 similar comment
/merge |
Closes #1813
This PR adds FAISS CPU indexes to the raft-Ann-bench benchmarks, and adjusts the build accordingly. In addition, this PR also updated the FAISS version to include the RAFT-enabled version, which required removing the FAISS conda packages and building FAISS from source.