[Numpy-discussion] NumPy speed tests by NASA

Pauli Virtanen pav@iki...
Tue Feb 22 15:54:45 CST 2011


On Tue, 22 Feb 2011 16:44:56 -0500, Alan G Isaac wrote:
[clip]
> I don't believe the matrix multiplication results. Maybe I misunderstand
> them ...
> 
>      >>> t = timeit.Timer("np.dot(A,B)","import numpy as
>      >>> np;N=1500;A=np.random.random((N,N));B=np.random.random((N,N))")
>      >>> print t.timeit(number=10)/10.
>      1.09043075307
> 
> I'm using the precompiled Windows binaries.

... which are linked with BLAS. Compare:

In [2]: A=np.ones((1000,1000))

In [3]: B=np.ones((1000,1000))

In [4]: %timeit np.dot(A, B)
1 loops, best of 3: 236 ms per loop

In [6]: %timeit np.core.multiarray.dot(A, B)
1 loops, best of 3: 8.21 s per loop

If not BLAS is available at compile time, it falls back to using the 
latter `dot` --- which is 35 x slower. The reason for the difference is 
that the non-BLAS version can work also with object arrays etc. and so 
does indirect function calls for the operations.



More information about the NumPy-Discussion mailing list