Re: Calling Fortran routines on short arrays

Nicolas Neuss <[email protected]> 22 Nov 2003 17:52:45 +0100
Newsgroups gmane.lisp.matlisp.user
Organization IWR
Message-ID <[email protected]>
Hello,

Rereading my mail I see that I expressed myself badly again.  Corrections:

> Hello,
> 
> I am trying to find out if it is possible to call Fortran BLAS routines

Of course, it is possible.  But is it possible without such a tremendeous
performance loss?

> also on short vectors.  I am running in the following problem:
> 
> I have put a test program on
> 
> http://cox.iwr.uni-heidelberg.de/~neuss/misc/mflop-new.lisp
> 
> When I test the Lisp ddot/daxpy code I get:
> 
> DDOT-long: 271.15 MFLOPS
> DDOT-short: 679.58 MFLOPS
> DAXPY-long: 143.55 MFLOPS
> DAXPY-short: 488.06 MFLOPS
> 
> But when I call the Matlisp routines (not via CLOS!), I get
> 
> BLAS-DDOT-long: 267.10 MFLOPS
> BLAS-DDOT-short: 63.31 MFLOPS
> BLAS-DAXPY-long: 149.13 MFLOPS
> BLAS-DAXPY-short: 61.01 MFLOPS
> 
> The reason is probably that the external function call is almost as costly

From the numbers it is obvious that the call is even much more expensive
than a daxpy for 256 double-floats.  How comes?

> as the daxpy for the case +N-short+=256, while calling Lisp functions is
> much faster.  Is it possible to cut down these costs?
> 
> Thanks, Nicolas.
>