forked from numpy/numpy
-
Notifications
You must be signed in to change notification settings - Fork 1
/
site.cfg.example
271 lines (258 loc) · 10.8 KB
/
site.cfg.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# This file provides configuration information about non-Python dependencies for
# numpy.distutils-using packages. Create a file like this called "site.cfg" next
# to your package's setup.py file and fill in the appropriate sections. Not all
# packages will use all sections so you should leave out sections that your
# package does not use.
# To assist automatic installation like pip, the user's home directory
# will also be checked for the file ~/.numpy-site.cfg .
# The format of the file is that of the standard library's ConfigParser module.
# No interpolation is allowed; the RawConfigParser class is being used to load it.
#
# https://docs.python.org/library/configparser.html
#
# Each section defines settings that apply to one particular dependency. Some of
# the settings are general and apply to nearly any section and are defined here.
# Settings specific to a particular section will be defined near their section.
#
# libraries
# Comma-separated list of library names to add to compile the extension
# with. Note that these should be just the names, not the filenames. For
# example, the file "libfoo.so" would become simply "foo".
# libraries = lapack,f77blas,cblas,atlas
# This setting is available for *all* sections.
#
# library_dirs
# List of directories to add to the library search path when compiling
# extensions with this dependency. Use the character given by os.pathsep
# to separate the items in the list. Note that this character is known to
# vary on some unix-like systems; if a colon does not work, try a comma.
# This also applies to include_dirs.
# On UN*X-type systems (OS X, most BSD and Linux systems):
# library_dirs = /usr/lib:/usr/local/lib
# On Windows:
# library_dirs = c:\mingw\lib,c:\atlas\lib
# On some BSD and Linux systems:
# library_dirs = /usr/lib,/usr/local/lib
#
# include_dirs
# List of directories to add to the header file search path.
# include_dirs = /usr/include:/usr/local/include
#
# search_static_first
# Boolean (one of (0, false, no, off) for False or (1, true, yes, on) for
# True) to tell numpy.distutils to prefer static libraries (.a) over
# shared libraries (.so). It is turned off by default.
# search_static_first = false
#
# runtime_library_dirs/rpath
# List of directories that contains the libraries that should be
# used at runtime, thereby disregarding the LD_LIBRARY_PATH variable.
# See 'library_dirs' for formatting on different platforms.
# runtime_library_dirs = /opt/blas/lib:/opt/lapack/lib
# or equivalently
# rpath = /opt/blas/lib:/opt/lapack/lib
#
# extra_compile_args
# Add additional arguments to the compilation of sources.
# Split into arguments in a platform-appropriate way.
# Provide a single line with all complete flags.
# extra_compile_args = -g -ftree-vectorize
#
# extra_link_args
# Add additional arguments when libraries/executables
# are linked.
# Split into arguments in a platform-appropriate way.
# Provide a single line with all complete flags.
# extra_link_args = -lgfortran
#
# Defaults
# ========
# The settings here will apply to all sections as general defaults
# This is a good place to add general library and include directories like
# /usr/local/{lib,include}
# These settings apply when they are not overridden in the sections below.
# Note that the standard paths (e.g. `/usr/lib`) are not searched if you
# override these settings, unless they are explicitly included.
# The ``:`` is os.pathsep, which is ``;`` on windows
#[DEFAULT]
#library_dirs = /usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib
#include_dirs = /usr/local/include:/usr/include
# ATLAS
# -----
# ATLAS is an open source optimized implementation of the BLAS and LAPACK
# routines. NumPy will try to build against ATLAS by default when available in
# the system library dirs. To build NumPy against a custom installation of
# ATLAS you can add an explicit section such as the following. Here we assume
# that ATLAS was configured with ``prefix=/opt/atlas``.
#
# [atlas]
# library_dirs = /opt/atlas/lib
# include_dirs = /opt/atlas/include
# OpenBLAS
# --------
# OpenBLAS is another open source optimized implementation of BLAS and LAPACK
# and can be seen as an alternative to ATLAS. To build NumPy against OpenBLAS
# instead of ATLAS, use this section instead of the above, adjusting as needed
# for your configuration (in the following example we installed OpenBLAS with
# ``make install PREFIX=/opt/OpenBLAS``.
# OpenBLAS is generically installed as a shared library, to force the OpenBLAS
# library linked to also be used at runtime you can utilize the
# runtime_library_dirs variable.
#
# **Warning**: OpenBLAS, by default, is built in multithreaded mode. Due to the
# way Python's multiprocessing is implemented, a multithreaded OpenBLAS can
# cause programs using both to hang as soon as a worker process is forked on
# POSIX systems (Linux, Mac).
# This is fixed in OpenBLAS 0.2.9 for the pthread build, the OpenMP build using
# GNU openmp is as of gcc-4.9 not fixed yet.
# Python 3.4 will introduce a new feature in multiprocessing, called the
# "forkserver", which solves this problem. For older versions, make sure
# OpenBLAS is built using pthreads or use Python threads instead of
# multiprocessing.
# (This problem does not exist with multithreaded ATLAS.)
#
# https://docs.python.org/library/multiprocessing.html#contexts-and-start-methods
# https://github.com/xianyi/OpenBLAS/issues/294
#
# [openblas]
# libraries = openblas
# library_dirs = /opt/OpenBLAS/lib
# include_dirs = /opt/OpenBLAS/include
# runtime_library_dirs = /opt/OpenBLAS/lib
# OpenBLAS (64-bit with suffix)
# -----------------------------
# OpenBLAS can be compiled with 64-bit integer size and symbol suffix '64_'
# (INTERFACE64=1 SYMBOLSUFFIX=64_). OpenBLAS built with this setting are also
# provided by some Linux distributions (e.g. Fedora's 64-bit openblas packages).
# This is an emerging "standard" for 64-bit BLAS/LAPACK, avoiding symbol clashes
# with 32-bit BLAS/LAPACK.
#
# To build Numpy with such 64-bit BLAS/LAPACK, set environment
# variables NPY_USE_BLAS_ILP64=1, NPY_BLAS_ILP64_ORDER=openblas64_,
# NPY_LAPACK_ILP64_ORDER=openblas64_ at build time.
#
# See:
# https://github.com/xianyi/OpenBLAS/issues/646
#
# [openblas64_]
# libraries = openblas64_
# library_dirs = /opt/OpenBLAS/lib
# include_dirs = /opt/OpenBLAS/include
# runtime_library_dirs = /opt/OpenBLAS/lib
# OpenBLAS (64-bit ILP64)
# -----------------------
# It is possible to also use OpenBLAS compiled with 64-bit integer
# size (ILP64) but no symbol name changes. To do that, set the
# environment variables NPY_USE_BLAS_ILP64=1,
# NPY_BLAS_ILP64_ORDER=openblas_ilp64,
# NPY_LAPACK_ILP64_ORDER=openblas_ilp64 at build time.
#
# Note that mixing both 64-bit and 32-bit BLAS without symbol suffixes
# in the same application may cause problems due to symbol name
# clashes, especially with embedded Python interpreters.
#
# The name of the library file may vary on different systems, so you
# may need to check your specific OpenBLAS installation and
# uncomment and e.g. set ``libraries = openblas`` below.
#
# [openblas_ilp64]
# libraries = openblas64
# library_dirs = /opt/OpenBLAS/lib
# include_dirs = /opt/OpenBLAS/include
# runtime_library_dirs = /opt/OpenBLAS/lib
# symbol_prefix =
# symbol_suffix =
# BLIS
# ----
# BLIS (https://github.com/flame/blis) also provides a BLAS interface. It's a
# relatively new library, its performance in some cases seems to match that of
# MKL and OpenBLAS, but it hasn't been benchmarked with NumPy or SciPy yet.
#
# Notes on compiling BLIS itself:
# - the CBLAS interface (needed by NumPy) isn't built by default; define
# BLIS_ENABLE_CBLAS to build it.
# - ``./configure auto`` doesn't support 32-bit builds, see gh-7294 for
# details.
# Notes on compiling NumPy against BLIS:
# - ``include_dirs`` below should be the directory where the BLIS cblas.h
# header is installed.
#
# [blis]
# libraries = blis
# library_dirs = /home/username/blis/lib
# include_dirs = /home/username/blis/include/blis
# runtime_library_dirs = /home/username/blis/lib
# libFLAME
# --------
# libFLAME (https://www.cs.utexas.edu/~flame/web/libFLAME.html) provides a
# LAPACK interface. It's a relatively new library, its performance in some
# cases seems to match that of MKL and OpenBLAS.
# It hasn't been benchmarked with NumPy or SciPy yet.
#
# Notes on compiling libFLAME itself:
# - the LAPACK interface (needed by NumPy) isn't built by default; please
# configure with ``./configure --enable-lapack2flame``.
#
# [flame]
# libraries = flame
# library_dirs = /home/username/flame/lib
# runtime_library_dirs = /home/username/flame/lib
# MKL
#----
# Intel MKL is Intel's very optimized yet proprietary implementation of BLAS and
# LAPACK. Find the latest info on building NumPy with Intel MKL in this article:
# https://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl
# Assuming you installed the mkl in /opt/intel/compilers_and_libraries_2018/linux/mkl,
# for 64 bits code at Linux:
# [mkl]
# library_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/lib/intel64
# include_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/include
# libraries = mkl_rt
#
# For 32 bit code at Linux:
# [mkl]
# library_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/lib/ia32
# include_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/include
# libraries = mkl_rt
#
# On win-64, the following options compiles NumPy with the MKL library
# dynamically linked.
# [mkl]
# include_dirs = C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\mkl\include
# library_dirs = C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\mkl\lib\intel64
# libraries = mkl_rt
# UMFPACK
# -------
# The UMFPACK library is used in scikits.umfpack to factor large sparse matrices.
# It, in turn, depends on the AMD library for reordering the matrices for
# better performance. Note that the AMD library has nothing to do with AMD
# (Advanced Micro Devices), the CPU company.
#
# UMFPACK is not used by NumPy.
#
# https://www.cise.ufl.edu/research/sparse/umfpack/
# https://www.cise.ufl.edu/research/sparse/amd/
# https://scikit-umfpack.github.io/scikit-umfpack/
#
#[amd]
#libraries = amd
#
#[umfpack]
#libraries = umfpack
# FFT libraries
# -------------
# There are two FFT libraries that we can configure here: FFTW (2 and 3) and djbfft.
# Note that these libraries are not used by NumPy or SciPy.
#
# http://fftw.org/
# https://cr.yp.to/djbfft.html
#
# Given only this section, numpy.distutils will try to figure out which version
# of FFTW you are using.
#[fftw]
#libraries = fftw3
#
# For djbfft, numpy.distutils will look for either djbfft.a or libdjbfft.a .
#[djbfft]
#include_dirs = /usr/local/djbfft/include
#library_dirs = /usr/local/djbfft/lib