On Thu, Jul 8, 2021 at 11:47 PM Jerry Morrison <jerry.morrison+numpy@gmail.com> wrote:

On Wed, Jul 7, 2021 at 10:14 PM Matti Picus <matti.picus@gmail.com> wrote:

On 8/7/21 2:23 am, Jerry Morrison wrote:
> Got it!
>
> *Summary:*
> * Installing a numpy wheel (e.g. `pip install numpy==1.21.0`) uses its
> embedded OpenBLAS on every platform that has a wheel.
>   That OpenBLAS is always compiled with gcc/gfortran.
>   In this case, `np.show_config()` reports `library_dirs =
> ['/usr/local/lib']` even though there's no libblas in that directory.
>
> * Installing numpy from source (e.g. `pip install numpy==1.21.0
> --no-binary numpy)` looks for BLAS & LAPACK libraries at build time as
> influenced by the environment vars NPY_BLAS_ORDER/NPY_LAPACK_ORDER or
> by the file ~/.numpy-site.cfg.
>   On macOS, 'accelerate' is in the default search order after 'openblas'.
>   On macOS < 11.3, importing numpy that's linked to Accelerate will
> detect an Accelerate bug and raise a RuntimeError.


That seems correct, although admittedly show_config could do a better
job. The problem is that not every BLAS implementation provides a
convenient method to self-report.

For implementations that don't self-report, could show_config detect that it's using embedded OpenBLAS or a system Accelerate library?

It's not about "self reporting". What `show_config` shows for BLAS/LAPACK is the build time configuration, not the one at runtime. The paths are present in `numpy/__config.py__`, which is a file generated by the build process.
 

It might be nice to document all this somewhere more permanent, the
docstring for show_config might be a good place to start.

Agreed. On the https://numpy.org/install/ installation page?
Do you want a PR? (How to get the translations?)

Thanks, a PR would be nice. It's too detailed for the website; Matti's suggestion was in the docstring of `show_config`, which is defined at https://github.com/numpy/numpy/blob/main/numpy/distutils/misc_util.py#L2332

Cheers,
Ralf



_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion