170 lines
5.0 KiB
YAML
170 lines
5.0 KiB
YAML
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
|