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

Skipper Seabold jsseabold at gmail.com
Tue Dec 7 11:33:25 EST 2010


On Tue, Dec 7, 2010 at 1:56 AM, Fernando Perez <fperez.net at gmail.com> wrote:
> Hi Skipper,
>
> On Mon, Dec 6, 2010 at 2:34 PM, Skipper Seabold <jsseabold at 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
>

Thanks.  This was my next step and would've taken me some time.

Skipper



More information about the SciPy-User mailing list