Enet4 / faiss-rs

Rust language bindings for Faiss
Apache License 2.0
202 stars 36 forks source link

Support for mac m1? #74

Open vvbae opened 1 year ago

vvbae commented 1 year ago

I successfully installed faiss via brew with command: brew reinstall faiss --build-from-source it runs cmake -B build . -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_PYTHON=OFF -DFAISS_ENABLE_C_API=ON -DBUILD_SHARED_LIBS=ON. I could add to my project faiss = "0.12.1", but when I try to run it it says note: ld: library not found for -lfaiss_c

ava57r commented 1 year ago

I successfully installed faiss via brew with command: brew reinstall faiss --build-from-source it runs cmake -B build . -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_PYTHON=OFF -DFAISS_ENABLE_C_API=ON -DBUILD_SHARED_LIBS=ON. I could add to my project faiss = "0.12.1", but when I try to run it it says note: ld: library not found for -lfaiss_c

I use + -DBUILD_SHARED_LIBS=ON

after run

make -C build -j8 faiss_c

vvbae commented 1 year ago

I successfully installed faiss via brew with command: brew reinstall faiss --build-from-source it runs cmake -B build . -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_PYTHON=OFF -DFAISS_ENABLE_C_API=ON -DBUILD_SHARED_LIBS=ON. I could add to my project faiss = "0.12.1", but when I try to run it it says note: ld: library not found for -lfaiss_c

I use + -DBUILD_SHARED_LIBS=ON

after run

make -C build -j8 faiss_c

I didn't build from the source like in INSTALL.MD, because the repo says mac m1 is not supported, so I followed the instructions at here which compiles faiss with brew.

The screenshot:

Screenshot 2023-09-18 at 1 54 36 PM

So I didn't run any CMake or make commands myself, as I think they won't run on my machine.

DevinLeamy commented 1 year ago

I successfully installed faiss via brew with command: brew reinstall faiss --build-from-source it runs cmake -B build . -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_PYTHON=OFF -DFAISS_ENABLE_C_API=ON -DBUILD_SHARED_LIBS=ON. I could add to my project faiss = "0.12.1", but when I try to run it it says note: ld: library not found for -lfaiss_c

I use + -DBUILD_SHARED_LIBS=ON after run make -C build -j8 faiss_c

I didn't build from the source like in INSTALL.MD, because the repo says mac m1 is not supported, so I followed the instructions at here which compiles faiss with brew.

The screenshot: Screenshot 2023-09-18 at 1 54 36 PM

So I didn't run any CMake or make commands myself, as I think they won't run on my machine.

You can build from source on an M1 mac.

Give:

git clone https://github.com/Enet4/faiss.git
cd faiss
cmake -B build -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_C_API=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DFAISS_ENABLE_PYTHON=OFF
cmake --build build
make -C build -j8 faiss_c

A try. Then add it to your libraries with, for example,

cp /path/to/faiss/build/c_api/libfaiss_c.dylib /usr/local/bin
ceejatec commented 1 year ago

@DevinLeamy The above doesn't work on M1 (at least, not on the stock faiss package) due to https://github.com/facebookresearch/faiss/issues/2111 . According to that you need to install llvm from brew and then pass several additional arguments to the faiss build to make use of it.

heemin32 commented 4 months ago

~I am also having an issue especially on running python tests which I think -DFAISS_ENABLE_PYTHON=ON is needed during build time.~

Enet4 commented 4 months ago

I am also having an issue especially on running python tests which I think -DFAISS_ENABLE_PYTHON=ON is needed during build time.

It is pretty much outside this crate's intention to run any tests. If you are saying that they are being run by CMake despite the FAISS_ENABLE_PYTHON definition being disabled, then that is unexpected and should be treated as a bug, either from here or the main Faiss project.

heemin32 commented 4 months ago

@Enet4 Sorry for the fuss. I was trying to build faiss from source and I came to a wrong place.