# Maintainer: otaj # If you want to set only one GPU target compute capability, set _GPU_TARGET, # otherwise leave it commented out and it will build default targets (52, 60, 61, 70 and 75). # You can also set multiple targets separated by a space # If you want the python package to work with MKL, you need to have python-numpy-mkl installed! # See https://github.com/facebookresearch/faiss/issues/1393 _GPU_TARGET="75" _pkgname=faiss pkgbase=faiss-cuda-git pkgname=('faiss-cuda-git' 'python-faiss-cuda-git') arch=('i686' 'x86_64') url="https://github.com/facebookresearch/faiss" license=('MIT') pkgver=v1.7.0.r13.g43ce2c93 pkgrel=1 source=(${_pkgname}::git+https://github.com/facebookresearch/faiss.git) sha256sums=('SKIP') depends=('blas' 'lapack' 'cuda' 'openmp') makedepends=('git' 'python' 'python-numpy' 'swig' 'python-setuptools') optdepends=('intel-mkl: To use MKL blas implemenetation' 'python-numpy-mkl: To use MKL blas implementation.') pkgver() { cd "${_pkgname}" git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { cd "${srcdir}/${_pkgname}" mkdir -p build cd build _CMAKE_FLAGS="\ -DFAISS_ENABLE_GPU=ON \ -DFAISS_ENABLE_PYTHON=ON \ -DCUDAToolkit_ROOT=/opt/cuda \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING=ON \ -DCMAKE_INSTALL_PREFIX=/usr " if ! [ -z "$_GPU_TARGET" ] then _CMAKE_FLAGS=$_CMAKE_FLAGS"-DCMAKE_CUDA_ARCHITECTURES=\""$_GPU_TARGET"\"" else _CMAKE_FLAGS=$_CMAKE_FLAGS"-DCMAKE_CUDA_ARCHITECTURES=\"\"52 60 61 70 75\"\"" fi # echo $_CMAKE_FLAGS cmake $_CMAKE_FLAGS .. } check() { cd "${srcdir}/${_pkgname}/build" make test PYTHONPATH="${srcdir}/${_pkgname}/build/${_pkgname}/python" python -c "import faiss; import faiss.contrib" cd "${srcdir}/${_pkgname}/tests" PYTHONPATH="${srcdir}/${_pkgname}/build/${_pkgname}/python" pytest } build() { cd "${srcdir}/${_pkgname}/build" make cd faiss/python python setup.py build } package_faiss-cuda-git() { pkgdesc='A library for efficient similarity search and clustering of dense vectors, CUDA version.' provides=('faiss') conflicts=('faiss') cd "${srcdir}/${_pkgname}/build" make DESTDIR="$pkgdir" install cd .. install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" } package_python-faiss-cuda-git() { pkgdesc='A library for efficient similarity search and clustering of dense vectors, CUDA version. Python wrappers' provides=('python-faiss') conflicts=('python-faiss') depends=('python' 'python-numpy') cd "${srcdir}/${_pkgname}/build/faiss/python" python setup.py install --root="$pkgdir/" --optimize=1 --skip-build cd ../../.. install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" }