Chris@82: Chris@82: Chris@82: Chris@82: Chris@82:
Chris@82:Chris@82: Next: Generating your own code, Previous: Installation on non-Unix systems, Up: Installation and Customization [Contents][Index]
Chris@82:FFTW’s planner actually executes and times different possible FFT Chris@82: algorithms in order to pick the fastest plan for a given n. In Chris@82: order to do this in as short a time as possible, however, the timer must Chris@82: have a very high resolution, and to accomplish this we employ the Chris@82: hardware cycle counters that are available on most CPUs. Chris@82: Currently, FFTW supports the cycle counters on x86, PowerPC/POWER, Alpha, Chris@82: UltraSPARC (SPARC v9), IA64, PA-RISC, and MIPS processors. Chris@82:
Chris@82: Chris@82:Access to the cycle counters, unfortunately, is a compiler and/or
Chris@82: operating-system dependent task, often requiring inline assembly
Chris@82: language, and it may be that your compiler is not supported. If you are
Chris@82: not supported, FFTW will by default fall back on its estimator
Chris@82: (effectively using FFTW_ESTIMATE
for all plans).
Chris@82:
Chris@82:
You can add support by editing the file kernel/cycle.h
; normally,
Chris@82: this will involve adapting one of the examples already present in order
Chris@82: to use the inline-assembler syntax for your C compiler, and will only
Chris@82: require a couple of lines of code. Anyone adding support for a new
Chris@82: system to cycle.h
is encouraged to email us at fftw@fftw.org.
Chris@82:
If a cycle counter is not available on your system (e.g. some embedded
Chris@82: processor), and you don’t want to use estimated plans, as a last resort
Chris@82: you can use the --with-slow-timer
option to configure
(on
Chris@82: Unix) or #define WITH_SLOW_TIMER
in config.h
(elsewhere).
Chris@82: This will use the much lower-resolution gettimeofday
function, or even
Chris@82: clock
if the former is unavailable, and planning will be
Chris@82: extremely slow.
Chris@82:
Chris@82: Next: Generating your own code, Previous: Installation on non-Unix systems, Up: Installation and Customization [Contents][Index]
Chris@82: