Created
May 16, 2017 06:35
-
-
Save cynthia/c055a19604f2b9afeb90d9da4bda4c53 to your computer and use it in GitHub Desktop.
FAISS build for OS X + Intel Compiler
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
# -*- makefile -*- | |
# Tested on macOS Sierra (10.12.2) with llvm installed using Homebrew (https://brew.sh) | |
# brew install llvm | |
CC=icpc | |
CFLAGS=-fPIC -m64 -Wall -g -O3 -msse4 -mpopcnt -fopenmp -Wno-sign-compare -Dnullptr=NULL -Doverride= -I/Users/cynthia/anaconda3/include/python3.6m/ | |
LDFLAGS=-g -fPIC -fopenmp | |
# common mac flags | |
SHAREDEXT=dylib | |
SHAREDFLAGS=-Wl,-F. -bundle -undefined dynamic_lookup | |
FAISSSHAREDFLAGS=-dynamiclib | |
# wrapldflags="" | |
# sharedext=dylib | |
# sharedflags="-dynamiclib" | |
# yaelsharedflags="$sharedflags -install_name $yaelprefix/yael/libyael.dylib" | |
########################################################################## | |
# Uncomment one of the 4 BLAS/Lapack implementation options | |
# below. They are sorted # from fastest to slowest (in our | |
# experiments). | |
########################################################################## | |
# | |
# 1. Intel MKL | |
# | |
# This is the fastest BLAS implementation we tested. Unfortunately it | |
# is not open-source and determining the correct linking flags is a | |
# nightmare. See | |
# | |
# https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor | |
# | |
# for a start on setting the link flags. On version IntelComposerXE | |
# 2015.0.090, the following flags work | |
# | |
MKLROOT=/opt/intel/mkl | |
# | |
BLASLDFLAGS=-Wl,--no-as-needed -L$(MKLROOT)/lib/intel64 -lmkl_intel_ilp64 -lmkl_core -lmkl_gnu_thread -ldl -lpthread -DFINTEGER=long | |
# | |
# the ilp64 means that the integers are 64-bit. | |
# | |
#BLASLDFLAGS=-DFINTEGER=long | |
# | |
# you may have to set the LD_LIBRARY_PATH=$MKLROOT/lib/intel64 at runtime | |
# | |
# | |
# 2. Openblas | |
# | |
# The library contains both BLAS and Lapack. Install with port install OpenBLAS | |
# | |
# BLASCFLAGS=-DFINTEGER=int | |
# BLASLDFLAGS=/opt/local/lib/libopenblas.dylib | |
# | |
# | |
# 3. Apple's framework accelerate | |
# | |
# This has the advantage that it does not require to install anything, | |
# as it is provided by default on the mac. It is not very fast, though. | |
# | |
BLASCFLAGS=-DFINTEGER=int | |
BLASLDFLAGS=-framework Accelerate | |
########################################################################## | |
# SWIG and Python flags | |
########################################################################## | |
# SWIG executable. This should be at least version 3.x | |
# brew install swig | |
SWIGEXEC=/usr/local/bin/swig | |
# The Python include directories for the current python executable can | |
# typically be found with | |
# | |
# python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc()" | |
# python -c "import numpy ; print numpy.get_include()" | |
# | |
# the paths below are for the system python (not the macports one) | |
PYTHONCFLAGS=-I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 \ | |
-I/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include | |
########################################################################## | |
# Faiss GPU | |
########################################################################## | |
# As we don't have access to a Mac with nvidia GPUs installed, we | |
# could not validate the GPU compile of Faiss. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment