mirror of
https://github.com/facebookresearch/faiss.git
synced 2026-10-12 02:13:36 +00:00
Summary: Pull Request resolved: https://github.com/facebookresearch/faiss/pull/4876 Reviewed By: alibeklfc Differential Revision: D95420200 fbshipit-source-id: b30d0c9c0342460187c3b8dcffbbc3df88f4a11d
114 lines
4.6 KiB
YAML
114 lines
4.6 KiB
YAML
name: Conda build
|
|
description: Builds Faiss inside a Conda environment and uploads to repository when label is provided.
|
|
inputs:
|
|
label:
|
|
description: "The label to be used for uploads to Conda."
|
|
default: ""
|
|
required: false
|
|
cuda:
|
|
description: "CUDA toolkit version to use."
|
|
default: ""
|
|
required: false
|
|
cuvs:
|
|
description: "Enable cuVS support."
|
|
default: ""
|
|
required: false
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Choose shell
|
|
shell: bash
|
|
id: choose_shell
|
|
run: |
|
|
# Use pwsh on Windows; bash everywhere else
|
|
if [ "${{ runner.os }}" != "Windows" ]; then
|
|
echo "shell=bash" >> "$GITHUB_OUTPUT"
|
|
else
|
|
echo "shell=pwsh" >> "$GITHUB_OUTPUT"
|
|
fi
|
|
- name: Setup miniconda
|
|
uses: conda-incubator/setup-miniconda@v3
|
|
with:
|
|
python-version: '3.12'
|
|
miniforge-version: latest # ensures conda-forge channel is used.
|
|
channels: conda-forge
|
|
conda-remove-defaults: 'true'
|
|
# Set to runner.arch=aarch64 if we're on arm64 because
|
|
# there's no miniforge ARM64 package, just aarch64.
|
|
# They are the same thing, just named differently.
|
|
# However there is an ARM64 for macOS, so exclude that.
|
|
architecture: ${{ (runner.arch == 'ARM64' && runner.os != 'macOS') && 'aarch64' || runner.arch }}
|
|
- name: Install conda build tools
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
run: |
|
|
# Ensure starting packages are from conda-forge.
|
|
conda list --show-channel-urls
|
|
conda install -y -q "conda!=24.11.0,<=25.07"
|
|
conda install -y -q "conda-build=25.3.1" "liblief=0.14.1"
|
|
- name: Enable anaconda uploads
|
|
if: inputs.label != ''
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
env:
|
|
PACKAGE_TYPE: ${{ inputs.label }}
|
|
run: |
|
|
conda list --show-channel-urls
|
|
conda install -y -q anaconda-client
|
|
conda config --set anaconda_upload yes
|
|
- name: Conda build (CPU)
|
|
if: inputs.label == '' && inputs.cuda == ''
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
working-directory: conda
|
|
run: |
|
|
conda list --show-channel-urls
|
|
conda build faiss --python 3.12 -c pytorch
|
|
- name: Conda build (CPU) w/ anaconda upload
|
|
if: inputs.label != '' && inputs.cuda == ''
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
working-directory: conda
|
|
env:
|
|
PACKAGE_TYPE: ${{ inputs.label }}
|
|
run: |
|
|
conda list --show-channel-urls
|
|
conda build faiss --python 3.12 --user pytorch --label ${{ inputs.label }} -c pytorch
|
|
- name: Conda build (GPU)
|
|
if: inputs.label == '' && inputs.cuda != '' && inputs.cuvs == ''
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
working-directory: conda
|
|
run: |
|
|
conda list --show-channel-urls
|
|
conda build faiss-gpu --variants '{ "cudatoolkit": "${{ inputs.cuda }}" }' \
|
|
-c pytorch -c nvidia/label/cuda-${{ inputs.cuda }} -c nvidia
|
|
- name: Conda build (GPU) w/ anaconda upload
|
|
if: inputs.label != '' && inputs.cuda != '' && inputs.cuvs == ''
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
working-directory: conda
|
|
env:
|
|
PACKAGE_TYPE: ${{ inputs.label }}
|
|
run: |
|
|
conda list --show-channel-urls
|
|
conda build faiss-gpu --python 3.12 --variants '{ "cudatoolkit": "${{ inputs.cuda }}" }' \
|
|
--user pytorch --label ${{ inputs.label }} -c pytorch -c nvidia/label/cuda-${{ inputs.cuda }} -c nvidia
|
|
- name: Conda build (GPU w/ cuVS)
|
|
if: inputs.label == '' && inputs.cuda != '' && inputs.cuvs != ''
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
working-directory: conda
|
|
run: |
|
|
conda list --show-channel-urls
|
|
conda build faiss-gpu-cuvs --variants '{ "cudatoolkit": "${{ inputs.cuda }}" }' \
|
|
-c pytorch -c rapidsai -c rapidsai-nightly -c conda-forge -c nvidia
|
|
- name: Conda build (GPU w/ cuVS) w/ anaconda upload
|
|
if: inputs.label != '' && inputs.cuda != '' && inputs.cuvs != ''
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
working-directory: conda
|
|
env:
|
|
PACKAGE_TYPE: ${{ inputs.label }}
|
|
run: |
|
|
conda list --show-channel-urls
|
|
conda build faiss-gpu-cuvs --python 3.12 --variants '{ "cudatoolkit": "${{ inputs.cuda }}" }' \
|
|
--user pytorch --label ${{ inputs.label }} -c pytorch -c rapidsai -c rapidsai-nightly -c conda-forge -c nvidia
|
|
- name: Check installed packages channel
|
|
shell: ${{ steps.choose_shell.outputs.shell }}
|
|
run: |
|
|
# Shows that all installed packages are from conda-forge.
|
|
conda list --show-channel-urls
|