On 05/12/2012 04:00 PM, Matthieu Brucher wrote:
Does ACML now provide a CBLAS interface?
Matthieu
D'oh!
Very good point, I wasn't aware that numpy needed a CLBAS interface. I
now followed the steps outlined at the end of
http://mail.scipy.org/pipermail/numpy-discussion/2006-February/018379.html
(Basically: I built a libcblas.a for ACML, then tried to build numpy
with that).
However it didn't seem to work. The same 5000x5000 matrix-multiply is
still spinning at 100% CPU usage. I attached to the process after I let
it run for over 3 minutes, and the stacktrace looked like this:
#0 DOUBLE_dot (ip1=<optimized out>, is1=8, ip2=
[...gibberish...], is2=40000, op=0x7f8633086000 "",
n=5000, __NPY_UNUSED_TAGGEDignore=0x23f40f0) at
numpy/core/src/multiarray/arraytypes.c.src:3077
#1 0x00007f864dea1466 in PyArray_MatrixProduct2 (op1=<optimized out>,
op2=<optimized out>, out=<optimized out>)
at numpy/core/src/multiarray/multiarraymodule.c:847
#2 0x00007f864dea18ed in array_matrixproduct
(__NPY_UNUSED_TAGGEDdummy=<optimized out>, args=<optimized out>,
kwds=<optimized out>) at
numpy/core/src/multiarray/multiarraymodule.c:2025
#3 0x000000000042a485 in PyEval_EvalFrameEx ()
#4 0x00000000004317f2 in PyEval_EvalCodeEx ()
#5 0x000000000054bd50 in PyRun_InteractiveOneFlags ()
#6 0x000000000054c045 in PyRun_InteractiveLoopFlags ()
#7 0x000000000054ce9f in Py_Main ()
#8 0x00007f864ec7976d in __libc_start_main () from
/lib/x86_64-linux-gnu/libc.so.6
#9 0x000000000041b931 in _start ()
So either the process needed changed since that message was written in
2006, or I did something wrong (I am absolutely unfamiliar with the
build-system used by numpy) or missed something :(
Thomas
2012/5/12 Thomas Unterthiner <thomas_unterthi...@web.de
<mailto:thomas_unterthi...@web.de>>
On 05/12/2012 03:27 PM, numpy-discussion-requ...@scipy.org
<mailto:numpy-discussion-requ...@scipy.org> wrote:
> 12.05.2012 00:54, Thomas Unterthiner kirjoitti:
> [clip]
>> > The process will have 100% CPU usage and will not show any
activity
>> > under strace. A gdb backtrace looks as follows:
>> >
>> > (gdb) bt
>> > #0 0x00007fdcc000e524 in ?? ()
>> > from
/usr/lib/python2.7/dist-packages/numpy/core/multiarray.so
> [clip]
>
> The backtrace looks like it does not use ACML. Does
>
> from numpy.core._dotblas import dot
>
> work?
>
Thanks for having a look at this. The following was tried with the
numpy that comes from the Ubuntu repo and symlinked ACML:
$ python
Python 2.7.3 (default, Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from numpy.core._dotblas import dot
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /usr/lib/python2.7/dist-packages/numpy/core/_dotblas.so:
undefined symbol: cblas_cdotc_sub
>>>
Following up:
$ ldd /usr/lib/python2.7/dist-packages/numpy/core/_dotblas.so
linux-vdso.so.1 => (0x00007fff3de00000)
libblas.so.3gf => /usr/lib/libblas.so.3gf (0x00007f10965f8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1096238000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
(0x00007f1096030000)
libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3
(0x00007f1095d18000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1095a18000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1098a88000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f10957f8000)
libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0
(0x00007f10955c0000)
$ ls -lh /usr/lib/libblas.so.3gf
lrwxrwxrwx 1 root root 32 May 11 22:27 /usr/lib/libblas.so.3gf ->
/etc/alternatives/libblas.so.3gf
$ ls -lh /etc/alternatives/libblas.so.3gf
lrwxrwxrwx 1 root root 45 May 11 22:36
/etc/alternatives/libblas.so.3gf
-> /opt/acml5.1.0/gfortran64_fma4/lib/libacml.so
Cheers
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion