[SciPy-User] fast small matrix multiplication with cython?

Fernando Perez fperez.net@gmail....
Tue Dec 7 00:56:17 CST 2010


Hi Skipper,

On Mon, Dec 6, 2010 at 2:34 PM, Skipper Seabold <jsseabold@gmail.com> wrote:
> I'm wondering if anyone might have a look at my cython code that does
> matrix multiplication and see where I can speed it up or offer some
> pointers/reading.  I'm new to Cython and my knowledge of C is pretty
> basic based on trial and (mostly) error, so I am sure the code is
> still very naive.

a few years ago I had a similar problem, and I ended up getting a very
significant speedup by hand-coding a very unsafe, but very fast pure C
extension just to compute these inner products.  This was basically a
replacement for dot() that would only work with double precision
inputs of compatible dimensions and would happily segfault with
anything else, but it ran very fast.  The inner loop is implemented
completely naively, but it still beats calls to BLAS (even linked with
ATLAS) for small matrix dimensions (my case was also up to ~ 15x15).

I'm attaching the code in case you find it useful, please keep in mind
I haven't compiled it in years, so it may have bit-rotted a little.

Cheers,

f
-------------- next part --------------
A non-text attachment was scrubbed...
Name: flinalg.c
Type: text/x-csrc
Size: 8657 bytes
Desc: not available
Url : http://mail.scipy.org/pipermail/scipy-user/attachments/20101206/aa5cc7aa/attachment.bin 


More information about the SciPy-User mailing list