octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: octave and LLVM google summer of code project


From: Eugene I
Subject: Re: octave and LLVM google summer of code project
Date: Mon, 21 Apr 2008 23:46:36 -0700 (PDT)


John W. Eaton wrote:
> 
> For the above function, how does performance compare to
> 
> 
> I'm not saying that the JIT compiler it isn't useful, or even that my
> semi-vectorized solution is great (it is not really easy to read), I'm
> just curious about the difference.
> 

Under opensuse 10.3 (running in a virtual machine - bad setup for
benchmarking so treat the timing results as order of magnitude estimates)
Original code:
Octave 3.0 (from suse build service) ~2.3 sec
FreeMat interpreter ~2.7 sec
FreeMat jit compiled (including compile time) ~ 0.02 sec

Vectorized code under FreeMat less than 0.005 sec. 
No surprises here. 



> Just when the array indices are scalars or any values?  If they are
> any values, doesn't that mean relying on some library code to do the
> indexing?  In Octave, that code is fairly complicated to handle
> logical indexing, array indexing, indexing when there are more or
> fewer indices than array dimensions, etc.
> 

For now just when array indices are scalars. We can speedup other
expressions later on.



> I assume we are talking about the LLVM JIT compiler.  Looking at the
> LLVM web page, the JIT compiler apparently supports X86, X86-64,
> PowerPC and PowerPC-64 systems.  This may be the majority of systems
> today, but what about other systems?  For example users of Octave on
> SPARC or Itanium systems might want to see the improved performance as
> well (I'm not saying that it is not worth doing even if only a limited
> number of systems are supported, just that there may be some
> limitations).
> 

As I understand the plan is that LLVM is to become part of gcc suite as part
of link-time optimization implementation. So, I hope that support for more
cpus is coming. We looked at other options (Java JIT, Mono JIT, libjit) but
LLVM was by far the best one.


-- 
View this message in context: 
http://www.nabble.com/octave-and-LLVM-google-summer-of-code-project-tp16565922p16822709.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]