Closed NikhilSehgal123 closed 1 year ago
There are no avx2
CPU instructions in arm64 arch.
@kyamagu does this mean it is not possible right now to use this lib on arm64 computers?
Binary wheels are available. https://pypi.org/project/faiss-cpu/#files
Please post the exact crash log if anything is not working except showing ignorable error messages.
@kyamagu I tried a bunch of wheels but still getting an error:
pip install faiss_cpu-1.7.3-cp311-cp311-macosx_11_0_arm64.whl
ERROR: faiss_cpu-1.7.3-cp311-cp311-macosx_11_0_arm64.whl is not a supported wheel on this platform. (env) (base) admin@Nikhils-MBP Downloads % pip install faiss_cpu-1.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl ERROR: faiss_cpu-1.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl is not a supported wheel on this platform. (env) (base) admin@Nikhils-MBP Downloads % pip install faiss_cpu-1.7.3-cp310-cp310-macosx_11_0_arm64.whl ERROR: faiss_cpu-1.7.3-cp310-cp310-macosx_11_0_arm64.whl is not a supported wheel on this platform. (env) (base) admin@Nikhils-MBP Downloads % pip install faiss_cpu-1.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl ERROR: faiss_cpu-1.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl is not a supported wheel on this platform.
Just a quick check. Are you using x86_64 CPython or arm64 CPython on Apple Silicon?
@kyamagu using arm64 CPython on Apple Silicon
Ok, this will need to investigate why the arch match is not working. Add verbose flag
ERROR: faiss_cpu-1.7.3-cp311-cp311-macosx_11_0_arm64.whl is not a supported wheel on this platform.
ok thanks @kyamagu, let me know
@NikhilSehgal123 You've reported your env is the following
OS: Mac Architecture: arm64 Python: 3.9.16 Version: v1.7.3
You have to use faiss_cpu-1.7.3-cp39-cp39-macosx_11_0_arm64.whl
. Not a cp311 wheel.
@kyamagu this is now installing correctly, but I'm still getting the error: ModuleNotFoundError: No module named 'faiss.swigfaiss_avx2'
When inspecting the package lib, I still see the script "swigfaiss_avx2.py" is missing.
On my other Intel Mac, I can see it successfully installs this script
Is the error message causing a crash? Or, is the program only reporting the error message? Post your log.
@kyamagu my log below:
(env) (base) admin@Nikhils-MBP neo-agent % /Users/admin/Desktop/Repos/ChatMSP/neo-agent/env/bin/python /Users/admin/Desktop/Repos/ChatMSP/neo-agent/neo_agent.py
Traceback (most recent call last):
File "/Users/admin/Desktop/Repos/ChatMSP/neo-agent/neo_agent.py", line 32, in
Looks like the "swigfaiss_avx2.py" script is not included in the package. If i check another PC, it works
I do not know what joblib is doing underneath, but I do not think any faiss component is picklable. If you are including a faiss index in the pickle, use faiss.write_index()
. https://github.com/facebookresearch/faiss/issues/421
@kyamagu that is strange because my script is running on virtual machines which seem to be ok. I will look into this further
Hi @kyamagu when running my script on a i386 arch, it works perfectly. The main difference I'm noticing is what happens when I run
pip install faiss-cpu
On the i386 arch, I see all the python scripts installed including a script called swigfaiss_avx2.py. However on the arm64 arch, this script is missing when you run the pip install.
Can you confirm if this is expected? When you run the pip install, do you also see a script called swigfaiss_avx2.py?
avx2 module is not available in arm64 wheel, because it is not possible to compile.
@kyamagu understood, thank you. I'll close this thread with the understanding this is not possible on arm64 arch
Describe the bug Consistently getting the following error when installing the faiss-cpu==1.7.3 module on Mac OS (Silicon M2 Chip): ModuleNotFoundError: No module named 'faiss.swigfaiss_avx2'
To Reproduce pip install faiss-cpu==1.7.3
Expected behavior When installing the package, it is expected that the package scripts should include a script called:
But this is missing when trying to install the module on my mac and I think this is causing the issue
Desktop (please complete the following information):
Additional context This happens when trying to "joblib.load()"