Enet4 / faiss-rs

Rust language bindings for Faiss

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

new release about faiss 1.6.x ?

gensmusic opened this issue · comments

any plan for that?

No plans on my end, I'm afraid, but pull requests for bringing support to the latest version are welcome!

The steps would be:

  1. Edit the variables in gen_bindings.sh to point to the upstream Faiss 1.6.
  2. Run gen_bindings.sh to update the contents of the faiss-sys crate.
  3. Make the necessary changes in the high-level crate.

Please let me know if you would need more assistance.

@Enet4

All is good except when I tried to build c_api/gpu, I got an error

git clone faiss
./configure --with-cuda=/usr/local/cuda
make
OK
# this only build libfaiss.a and libfaiss.so
make install

make -C demos demo_ivfpq_indexing
LD_LIBRARY_PATH=/usr/local/lib/ ./demos/demo_ivfpq_indexing
OK

# build c_api
cd c_api
make
OK

cd gpu
make
make: *** No rule to make target '../../gpu/libgpufaiss.a', needed by 'libgpufaiss_c.so'.  Stop.

I didn't find where libgpufaiss.a is build. I guess I should remove all ../../gpu/$(LIBNAME).a in c_api/gpu/Makefile and then build done. Is that the right way?

It was good that you brought this to my attention. The build setup in Faiss has changed in v1.5.1 to no longer keep GPU as a separate shared object, and the build scripts for the C API was not yet prepared for this.

I have just sent a PR (facebookresearch/faiss#1296) so that at least this part of the API can be compiled. In the future one might consider having a single _c shared object as well. Please give it a try and see if it works for you.

@Enet4 cool, I'll try soon.

@Enet4 you can assign this to me. I'm on it now.

@Enet4 there is a pull request about this #8

Thank you @gensmusic. I will review the PR once I can. This weekend was particular busy for me.

Take your time, no hurry 🥰

close since it's released.