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.

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


Matti

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

Reply via email to