[SciPy-User] Modify package dependencies, or issue a runtime warning, if a fast BLAS implementation not found?

Hugh Perkins hughperkins@gmail....
Tue Sep 11 21:12:18 CDT 2012


(Was "How to efficiently do dot(dot( A.T, diag(d) ), A ) ?")

On Wed, Sep 12, 2012 at 2:30 AM, Pauli Virtanen <pav@iki.fi> wrote:
> 11.09.2012 20:15, Pauli Virtanen kirjoitti:
>> Here are results on one (slowish) machine:
>
> Ok, just for completeness: the bad performance for `np.dot` on this
> machine comes from the fact that Numpy is not linked with any BLAS
> library, so it falls back to a slow and naive algorithm. (You can check
> this as follows: if `numpy.dot.__module__` is 'numpy.core._dotblas', you
> have some BLAS.)

Considering the amount of emails and effort that it took in order for
one naive user (ie myself) to find this, perhaps it might be worth
doing one or more of the following? :
- ensure that openblas is a dependency of scipy in the ubuntu packages
(and/or debian, redhat etc packages)
- issue a check for a reasonably performing blas when these functions
are used in scipy, and issue a warning if only reference blas is found

By the way, on a base ubuntu, it seems there is actually a blas, but
it's only the reference blas, and it looks like reference blas
performance is really terrible!  It's perhaps reasonable to assume
that a majority of first-time scipy users will not know that scipy
rubbishy performance is because they are using reference blas, and
will just assume that it is a problem inherent to blas, and run off to
buy a matlab license instead!


More information about the SciPy-User mailing list