Skip to content

Installation of _swigfaiss_avx2.so seems to depend on installation of C++ headers and libraries #3883

@Janosch

Description

@Janosch

Summary

I am compiling FAISS while building an alpine docker image. If I follow the installation steps from INSTALL.md, swigfaiss_avx2.py and _swigfaiss_avx2.so are missing in pythons site-packages/faiss-1.8.0-py3.12.egg/faiss.

If I install the C++ headers and libraries before installing the python package, the AVX2-enabled python module and shared library are copied to site-packages/faiss-1.8.0-py3.12.egg/faiss as expected.

If there is a dependency between step 3 and step 4, it should be reflected in the INSTALL.md.

Platform

OS: alpine:3.20 linux/amd64

Faiss version: 1f42e81

Installed from: Compiled

Faiss compilation options:
FAISS_ENABLE_GPU=OFF
BUILD_TESTING=OFF
CMAKE_BUILD_TYPE=Release
FAISS_OPT_LEVEL=avx2

Running on:

  • CPU
  • GPU

Interface:

  • C++
  • Python

Reproduction instructions

  1. Create docker image using this Dockerfile
  2. docker build --platform linux/amd64 -t missing-avx2 .
  3. docker run -it missing-avx2 sh
  4. ls -lah /usr/lib/python3.12/site-packages/faiss-1.8.0-py3.12.egg/faiss
  5. Verify that swigfaiss_avx2.py is missing

For comparison, see this Dockerfile which reverses steps 3 and 4 from the installation instructions and therefore works.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions