on: workflow_call: env: OMP_NUM_THREADS: '10' MKL_THREADING_LAYER: GNU jobs: format: name: Format runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install clang-format run: | sudo apt-get update -y sudo apt-get install -y wget sudo apt install -y lsb-release wget software-properties-common gnupg wget https://apt.llvm.org/llvm.sh chmod u+x llvm.sh sudo ./llvm.sh 18 sudo apt-get install -y git-core clang-format-18 - name: Verify clang-format run: | git ls-files | grep -E '\.(cpp|h|cu|cuh)$' | xargs clang-format-18 -i if git diff --quiet; then echo "Formatting OK!" else echo "Formatting not OK!" echo "------------------" git --no-pager diff --color exit 1 fi linux-x86_64-cmake: name: Linux x86_64 (cmake) runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake linux-x86_64-AVX2-cmake: name: Linux x86_64 AVX2 (cmake) needs: linux-x86_64-cmake runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake with: opt_level: avx2 linux-x86_64-AVX512-cmake: name: Linux x86_64 AVX512 (cmake) needs: linux-x86_64-cmake runs-on: faiss-aws-m7i.large steps: - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake with: opt_level: avx512 linux-x86_64-AVX512_SPR-cmake: name: Linux x86_64 AVX512_SPR (cmake) needs: linux-x86_64-cmake runs-on: faiss-aws-m7i.large steps: - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake with: opt_level: avx512_spr linux-x86_64-GPU-cmake: name: Linux x86_64 GPU (cmake) needs: linux-x86_64-cmake runs-on: 4-core-ubuntu-gpu-t4 steps: - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake with: gpu: ON linux-x86_64-GPU-w-CUVS-cmake: name: Linux x86_64 GPU w/ cuVS (cmake) needs: linux-x86_64-cmake runs-on: 4-core-ubuntu-gpu-t4 steps: - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake with: gpu: ON cuvs: ON linux-x86_64-GPU-w-ROCm-cmake: name: Linux x86_64 GPU w/ ROCm (cmake) needs: linux-x86_64-cmake runs-on: faiss-amd-MI200 container: image: ubuntu:22.04 options: --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size 16G --group-add video --cap-add=SYS_PTRACE --cap-add=SYS_ADMIN steps: - name: Container setup run: | if [ -f /.dockerenv ]; then apt-get update && apt-get install -y sudo && apt-get install -y git git config --global --add safe.directory '*' else echo 'Skipping. Current job is not running inside a container.' fi - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake with: gpu: ON rocm: ON linux-arm64-SVE-cmake: name: Linux arm64 SVE (cmake) needs: linux-x86_64-cmake runs-on: faiss-aws-r8g.large steps: - name: Checkout uses: actions/checkout@v4 - name: Build and Test (cmake) uses: ./.github/actions/build_cmake with: opt_level: sve env: # Context: https://github.com/facebookresearch/faiss/wiki/Troubleshooting#surprising-faiss-openmp-and-openblas-interaction OPENBLAS_NUM_THREADS: '1' linux-x86_64-conda: name: Linux x86_64 (conda) needs: linux-x86_64-cmake runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Build and Package (conda) uses: ./.github/actions/build_conda windows-x86_64-conda: name: Windows x86_64 (conda) needs: linux-x86_64-cmake runs-on: windows-2019 steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Build and Package (conda) uses: ./.github/actions/build_conda linux-arm64-conda: name: Linux arm64 (conda) needs: linux-x86_64-cmake runs-on: 2-core-ubuntu-arm steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Build and Package (conda) uses: ./.github/actions/build_conda