[Numpy-discussion] Numpy matrix multiplication slow even though ATLAS linked
Charles R Harris
charlesr.harris at gmail.com
Thu Oct 30 14:41:51 EDT 2008
On Thu, Oct 30, 2008 at 5:19 AM, Jan-Willem van de Meent <
vandemeent at damtp.cam.ac.uk> wrote:
> Dear all,
>
> This is my first post to this list. I am having perfomance issues with with
> numpy/atlas. Doing dot(a,a) for a 2000x2000 matrix takes about 1m40s, even
> though numpy is appears to link to my atlas libraries:
>
> I did a quick benchmark by running the following script:
>
> #! /usr/bin/env python
> import numpy
> import time
>
> try:
> import numpy.core._dotblas
> print 'Using ATLAS:'
> except ImportError:
> print 'No ATLAS:'
>
> t = time.time()
> x = numpy.random.random((1000,1000))
> y = numpy.random.random((1000,1000))
> z = numpy.dot(x, y)
>
> print time.time()-t
>
> My laptop is a Dell D620 Core Duo T2300 1.66 Ghz, running Archlinux with
> GCC
> 4.3.2, atlas 3.8.2, python 2.5.2 and numpy 1.2.1. Output of the script
> above
> is:
>
> Using ATLAS:
> 7.99549412727
>
> A department desktop PC, Pentium D 3.00 Ghz, running Scientific Linux, with
> GCC 4.1.2, atlas 3.7.30, python 2.5.1 and numpy 1.1.0, runs this test 24
> times faster:
>
> Using ATLAS:
> 0.337520122528
>
About .40 here with numpy from svn.
>
> So even though _dotblas.so exists, matrix multiplication appears to run at
> pretty much the same speed as if atlas were not available. Running ldd on
> _dotblas.so suggests that numpy is indeed linking to the atlas libs:
>
> ldd /usr/lib/python2.5/site-packages/numpy/core/_dotblas.so
> linux-gate.so.1 => (0xb7fcf000)
> libatlas.so => /usr/lib/libatlas.so (0xb7cb5000)
> liblapack.so => /usr/lib/liblapack.so (0xb77ab000)
> libcblas.so => /usr/lib/libcblas.so (0xb778b000)
> libf77blas.so => /usr/lib/libf77blas.so (0xb776f000)
> libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7630000)
> libpthread.so.0 => /lib/libpthread.so.0 (0xb7618000)
> libc.so.6 => /lib/libc.so.6 (0xb74d6000)
> libm.so.6 => /lib/libm.so.6 (0xb74b0000)
> libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0xb73ff000)
> libdl.so.2 => /lib/libdl.so.2 (0xb73fb000)
> libutil.so.1 => /lib/libutil.so.1 (0xb73f6000)
> /lib/ld-linux.so.2 (0xb7fd0000)
>
What's in /usr/local/lib? Do you have a 64 bit system? What does locate
libatlas return?
Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20081030/3060b76a/attachment.html>
More information about the NumPy-Discussion
mailing list