Faiss GPU: bfloat16 brute-force kNN support (#4014) #1666
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
workflow_dispatch: | |
pull_request: | |
branches: | |
- main | |
push: | |
tags: | |
- 'v*' | |
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-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 | |
linux-x86_64-packages: | |
name: Linux x86_64 packages | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
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 | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main | |
linux-x86_64-GPU-packages-CUDA-11-4-4: | |
name: Linux x86_64 GPU packages (CUDA 11.4.4) | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
runs-on: 4-core-ubuntu-gpu-t4 | |
env: | |
CUDA_ARCHS: "60-real;61-real;62-real;70-real;72-real;75-real;80;86-real" | |
FAISS_FLATTEN_CONDA_INCLUDES: "1" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Build and Package (conda) | |
uses: ./.github/actions/build_conda | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main | |
cuda: "11.4.4" | |
linux-x86_64-GPU-CUVS-packages-CUDA11-8-0: | |
name: Linux x86_64 GPU w/ cuVS packages (CUDA 11.8.0) | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
runs-on: 4-core-ubuntu-gpu-t4 | |
env: | |
CUDA_ARCHS: "70-real;72-real;75-real;80;86-real" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Build and Package (conda) | |
uses: ./.github/actions/build_conda | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main | |
cuvs: "ON" | |
cuda: "11.8.0" | |
linux-x86_64-GPU-packages-CUDA-12-1-1: | |
name: Linux x86_64 GPU packages (CUDA 12.1.1) | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
runs-on: 4-core-ubuntu-gpu-t4 | |
env: | |
CUDA_ARCHS: "70-real;72-real;75-real;80;86-real" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Build and Package (conda) | |
uses: ./.github/actions/build_conda | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main | |
cuda: "12.1.1" | |
linux-x86_64-GPU-CUVS-packages-CUDA12-1-1: | |
name: Linux x86_64 GPU w/ cuVS packages (CUDA 12.1.1) | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
runs-on: 4-core-ubuntu-gpu-t4 | |
env: | |
CUDA_ARCHS: "70-real;72-real;75-real;80;86-real" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Build and Package (conda) | |
uses: ./.github/actions/build_conda | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main | |
cuvs: "ON" | |
cuda: "12.1.1" | |
windows-x86_64-packages: | |
name: Windows x86_64 packages | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
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 | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main | |
osx-arm64-packages: | |
name: OSX arm64 packages | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Build and Package (conda) | |
uses: ./.github/actions/build_conda | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main | |
linux-arm64-packages: | |
name: Linux arm64 packages | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
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 | |
env: | |
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | |
with: | |
label: main |