Skip to content

Commit b7f42ea

Browse files
committed
DOC: document 64-bit BLAS/LAPACK build-time variables
1 parent 669cd13 commit b7f42ea

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

doc/source/user/building.rst

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -195,23 +195,37 @@ or::
195195
BLAS=None LAPACK=None ATLAS=None python setup.py build
196196

197197

198-
64-bit BLAS and LAPACK with symbol suffix
199-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
198+
64-bit BLAS and LAPACK
199+
~~~~~~~~~~~~~~~~~~~~~~
200+
201+
You can tell Numpy to use 64-bit BLAS/LAPACK libraries by setting the
202+
environment variable::
203+
204+
NPY_USE_BLAS_ILP64=1
205+
206+
when building Numpy. The following 64-bit BLAS/LAPACK libraries are
207+
supported:
208+
209+
1. OpenBLAS ILP64 with ``64_`` symbol suffix (``openblas64_``)
210+
2. OpenBLAS ILP64 without symbol suffix (``openblas_ilp64``)
211+
212+
The order in which they are preferred is determined by
213+
``NPY_BLAS_ILP64_ORDER`` and ``NPY_LAPACK_ILP64_ORDER`` environment
214+
variables, similarly as above.
215+
216+
.. note::
200217

201-
Numpy also supports 64-bit OpenBLAS with ``64_`` symbol suffix. Such
202-
library is obtained by compiling OpenBLAS with settings::
218+
Using non-symbol-suffixed 64-bit BLAS/LAPACK in a program that also
219+
uses 32-bit BLAS/LAPACK can cause crashes under certain conditions
220+
(e.g. with embedded Python interpreters on Linux).
203221

204-
make INTERFACE64=1 SYMBOLSUFFIX=64_
222+
The 64-bit OpenBLAS with ``64_`` symbol suffix is obtained by
223+
compiling OpenBLAS with settings::
205224

206-
To make Numpy use it, set ``NPY_USE_BLAS64_=1`` environment variable
207-
when building Numpy. You may also need to configure the
208-
``[openblas64_]`` section in ``site.cfg``.
225+
make INTERFACE64=1 SYMBOLSUFFIX=64_
209226

210-
The symbol suffix avoids symbol name clashes between 32-bit and 64-bit
211-
BLAS/LAPACK libraries, meaning that you can link to both in the same
212-
program. This avoids potential issues when using 64-bit BLAS/LAPACK in
213-
Numpy while simultaneously using other Python software that uses the
214-
32-bit versions.
227+
The symbol suffix avoids the symbol name clashes between 32-bit and
228+
64-bit BLAS/LAPACK libraries.
215229

216230

217231
Supplying additional compiler flags

0 commit comments

Comments
 (0)