[Haskell-cafe] Re: fftw bindings

2007-04-19 Thread Al Falloon

Magnus Therning wrote:

On Thu, Apr 19, 2007 at 09:20:36 -0700, David Roundy wrote:

On Thu, Apr 19, 2007 at 05:37:05PM +0200, Fawzi Mohamed wrote:
I was wondering if someone had fftw bindings for haskell, or if I should 
roll my own.

Not that I'm aware of, but if you roll your own, please make them
public, as I'll be interested in fftw bindings before long.


For us less knowledgable, what's fftw?


"Fastest Fourier Transform in the West." http://www.fftw.org/

Its cool, they use generative programming: an OCaml program generates 
"codlets" in C that can be composed and tuned to the specifics of your 
machine, then compiled into a blazingly fast FFT/DFT library.




/M (curious)





___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: fftw bindings

2007-04-19 Thread David Roundy
On Thu, Apr 19, 2007 at 05:46:49PM -0400, Al Falloon wrote:
> >For us less knowledgable, what's fftw?
> 
> "Fastest Fourier Transform in the West." http://www.fftw.org/
> 
> Its cool, they use generative programming: an OCaml program generates 
> "codlets" in C that can be composed and tuned to the specifics of your 
> machine, then compiled into a blazingly fast FFT/DFT library.

But that's only the beginning of the coolness! fftw uses runtime timings to
optimize each fourier transform based on the behavior of the computer on
which it is being run--its cache, memory speed, CPU, etc.  The result being
that fftw using portable C can beat out most hand-optimized fftw libraries
written in assembly! Steven (one of fftw's two authors) has done some
incredible work on optimizations.  The most unbelievable (to me) was that
by eliminating negative constants from the generated code (using
subtraction instead) they sped up the library on a particular architecture
by some some significant margin (I think I recall 20%).
-- 
David Roundy
http://www.darcs.net
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: fftw bindings

2007-04-20 Thread Christian Jaeger
Are you aware of Dan J. Bernstein's library?: http://cr.yp.to/djbfft.html

According to his benchmarks (from 1999?) it is faster than FFTW. I don't
know whether that's still the case, a quick search did turn up
http://projects.scipy.org/pipermail/scipy-dev/2002-August/001107.html
which suggests that this was still the case in 2002. Support for djbfft
seems to have been integrated into scipy.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] Re: fftw bindings

2007-04-20 Thread Bayley, Alistair
> On Thu, Apr 19, 2007 at 05:46:49PM -0400, Al Falloon wrote:
> > >For us less knowledgable, what's fftw?
> > 
> > "Fastest Fourier Transform in the West." http://www.fftw.org/
> > 
> > Its cool, they use generative programming: an OCaml program 
> generates 
> > "codlets" in C that can be composed and tuned to the 
> specifics of your 
> > machine, then compiled into a blazingly fast FFT/DFT library.
> 
> But that's only the beginning of the coolness! fftw uses 
> runtime timings to
> optimize each fourier transform based on the behavior of the 
> computer on
> which it is being run--its cache, memory speed, CPU, etc.  
> The result being
> that fftw using portable C can beat out most hand-optimized 
> fftw libraries
> written in assembly! Steven (one of fftw's two authors) has done some
> incredible work on optimizations.  The most unbelievable (to 
> me) was that
> by eliminating negative constants from the generated code (using
> subtraction instead) they sped up the library on a particular 
> architecture
> by some some significant margin (I think I recall 20%).
> -- 
> David Roundy


Oleg has some related work
http://okmij.org/ftp/Computation/Generative.html#framework

"... The papers discuss in detail the generation of a straight-line C,
Fortran, etc. code for the power-of-two FFT. The papers show that with
the help of Abstract Interpretation we can exactly match the quality of
code generated by the well-known system FFTW. The second paper
demonstrates that our generated power-of-two FFT code has exactly the
same number of floating-point operations as that in codelets of FFTW.
The significant difference from FFTW is that we do not do any
intensional code analysis ... "

I don't know how useful this is.

Alistair
*
Confidentiality Note: The information contained in this message,
and any attachments, may contain confidential and/or privileged
material. It is intended solely for the person(s) or entity to
which it is addressed. Any review, retransmission, dissemination,
or taking of any action in reliance upon this information by
persons or entities other than the intended recipient(s) is
prohibited. If you received this in error, please contact the
sender and delete the material from any computer.
*
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: fftw bindings

2007-04-20 Thread Erik de Castro Lopo
Christian Jaeger wrote:

> Are you aware of Dan J. Bernstein's library?: http://cr.yp.to/djbfft.html
> 
> According to his benchmarks (from 1999?) it is faster than FFTW.

Quite possibly faster, but restricted to Intel and AMD CPUs. FFTW
compiles and runs on anything with a C compiler.

Erik
-- 
+---+
  Erik de Castro Lopo
+---+
"Every time an American goes to a gas station, he is sending money
to America's enemies." -- http://www.meforum.org/article/653
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: fftw bindings

2007-04-20 Thread Christian Jaeger
Erik de Castro Lopo wrote:
> but restricted to Intel and AMD CPUs.

This is wrong. I've just successfully compiled and run it on a PPC G3.

> FFTW
> compiles and runs on anything with a C compiler.
>   

There is no PPC specific code in the sources, so djbfft did compile and
run on PPC just by virtue of a C compiler.

http://cr.yp.to/djbfft/install.html:
"The djbfft installation procedure assumes that you have a UNIX system
with gcc."

That probably means that it won't build on Windows without cygwin or
maybe MinGW; but likely that's just an issue of the build process (which
is depending on make and sh), which isn't a big deal.

Possibly it doesn't run competitively on architectures he hasn't
optimized for. If you have valuable information about this, please
provide it.

Christian.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: fftw bindings

2007-04-20 Thread Fawzi Mohamed

Thanks to everybody for the answers,

For the moment I think that I will try to slightly expand

http://ofb.net/~wnoise/haskell/FFTW/

that was pointed out to me by Patrik Sellin

with respect to Dan J. Bernstein's library http://cr.yp.to/djbfft.html

I was not aware of it, but I would like to have also non power of 2 grids... so 
FFTW.

Fawzi


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: fftw bindings

2007-04-20 Thread Erik de Castro Lopo
Christian Jaeger wrote:

> There is no PPC specific code in the sources, so djbfft did compile and
> run on PPC just by virtue of a C compiler.

I stand corrected. I must admit it was many years ago that I last looked
at djbfft.

Erik
-- 
+---+
  Erik de Castro Lopo
+---+
"A mouse is a device used to point at the xterm you want to type in."
-- Kim Alm, a.s.r 
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe