building numpy20 on native blas/lapack
David M. Cooke
cookedm+news at physics.mcmaster.ca
Wed Apr 25 18:45:36 EDT 2001
At some point, Benyang Tang <btang at pacific.jpl.nasa.gov> wrote:
> Thanks. I added the lapack library to setup.py. It worked. The setup.py now looks like this:
>
> # delete all but the first one in this list if using your own LAPACK/BLAS
> sourcelist = ['Src/lapack_litemodule.c',]
> # set these to use your own BLAS
> library_dirs_list = ['/usr/lib','/usr/local/lib','/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66']
> libraries_list = ['blas','lapack','g2c','m']
>
> However, numpy does not get any speed gain by linking to the native blas/lapack. Here I tested the multiplication of 2 real*4 matrixes:
> Multiplication of 100X100 matrixes takes 0.01
> Multiplication of 200X200 matrixes takes 0.11
> Multiplication of 300X300 matrixes takes 0.41
> Multiplication of 400X400 matrixes takes 1.47
> Multiplication of 500X500 matrixes takes 3.10
> Multiplication of 600X600 matrixes takes 5.51
>
> The timing is roughly the same as that when linking to the compiled blas_lite.
>
Gee, really? Guess what: NumPy doesn't use BLAS for multiplying
matrices :-(. It uses it's own implementation, which (on my machine)
is about six times slower for 600x600 matrices. You'll have to write
your own wrapper around BLAS for matrix multiplication.
--
|>|\/|<
/--------------------------------------------------------------------------\
|David M. Cooke
|cookedm(at)physics(dot)mcmaster(dot)ca
More information about the Python-list
mailing list