FFTW-WISDOM(1) fftw FFTW-WISDOM(1)
NAME
fftwf-wisdom - create wisdom (pre-optimized FFTs)
SYNOPSIS
fftwf-wisdom [
OPTION]... [
SIZE]...
DESCRIPTION
fftwf-wisdom is a utility to generate FFTW
wisdom files, which
contain saved information about how to optimally compute (Fourier)
transforms of various sizes. FFTW is a free library to compute
discrete Fourier transforms in one or more dimensions, for arbitrary
sizes, and of both real and complex data, among other related
operations. More information on FFTW can be found at the FFTW home
page:
http://www.fftw.org Programs using FFTW can be written to load wisdom from an arbitrary
file, string, or other source. Moreover, it is likely that many
FFTW-using programs will load the
system wisdom file, which is stored
in
/etc/fftw/wisdomf by default.
fftwf-wisdom can be used to create
or add to such wisdom files. In its most typical usage, the wisdom
file can be created to pre-plan a canonical set of sizes (see below)
via:
fftwf-wisdom -v -c -o wisdomf
(this will take many hours, which can be limited by the
-t option)
and the output
wisdomf file can then be copied (as root) to
/etc/fftw/ or whatever.
The
fftwf-wisdom program normally writes the wisdom directly to
standard output, but this can be changed via the
-o option, as in the
example above.
If the system wisdom file
/etc/fftw/wisdomf already exists, then
fftwf-wisdom reads this existing wisdom (unless the
-n option is
specified) and outputs both the old wisdom and any newly created
wisdom. In this way, it can be used to add new transform sizes to
the existing system wisdom (or other wisdom file, with the
-w option).
SPECIFYING SIZES
Although a canonical set of sizes to optimize is specified by the
-c option, the user can also specify zero or more non-canonical
transform sizes and types to optimize, via the
SIZE arguments
following the option flags. Alternatively, the sizes to optimize can
be read from standard input (whitespace-separated), if a
SIZE argument of "-" is supplied.
Sizes are specified by the syntax:
<
type><
inplace><
direction><
geometry>
<
type> is either 'c' (complex), 'r' (real, r2c/c2r), or 'k' (r2r,
per-dimension kinds, specified in the geometry, below).
<
inplace> is either 'i' (in place) or 'o' (out of place).
<
direction> is either 'f' (forward) or 'b' (backward). The
<
direction> should be omitted for 'k' transforms, where it is
specified via the geometry instead.
<
geometry> is the size and dimensionality of the transform, where
different dimensions are separated by 'x' (e.g. '16x32' for a two-
dimensional 16 by 32 transform). In the case of 'k' transforms, the
size of each dimension is followed by a "type" string, which can be
one of f/b/h/e00/e01/e10/e11/o00/o01/o10/o11 for
R2HC/HC2R/DHT/REDFT00/.../RODFT11, respectively, as defined in the
FFTW manual.
For example, 'cif12x13x14' is a three-dimensional 12 by 13 x 14
complex DFT operating in-place. 'rob65536' is a one-dimensional
size-65536 out-of-place complex-to-real (backwards) transform
operating on Hermitian-symmetry input. 'ki10hx20e01' is a two-
dimensional 10 by 20 r2r transform where the first dimension is a DHT
and the second dimension is an REDFT01 (DCT-III).
OPTIONS
-h,
--help Display help on the command-line options and usage.
-V,
--version Print the version number and copyright information.
-v,
--verbose Verbose output. (You can specify this multiple times, or
supply a numeric argument greater than 1, to increase the
verbosity level.) Note that the verbose output will be mixed
with the wisdom output (making it impossible to import),
unless you write the wisdom to a file via the
-o option.
-c,
--canonical Optimize/pre-plan a canonical set of sizes: all powers of two
and ten up to 2^20 (1048576), including both real and complex,
forward and backwards, in-place and out-of-place transforms.
Also includes two- and three-dimensional transforms of equal-
size dimensions (e.g. 16x16x16).
-t hours,
--time-limit=
hours Stop after a time of
hours (hours) has elapsed, outputting
accumulated wisdom. (The problems are planned in increasing
order of size.) Defaults to 0, indicating no time limit.
-o file,
--output-file=
file Send wisdom output to
file rather than to standard output (the
default).
-m,
--measure;
-e,
--estimate;
-x,
--exhaustive Normally,
fftwf-wisdom creates plans in FFTW_PATIENT mode, but
with these options you can instead use FFTW_MEASURE,
FFTW_ESTIMATE, or FFTW_EXHAUSTIVE modes, respectively, as
described in more detail by the FFTW manual.
Note that wisdom is tagged with the planning patience level,
and a single file can mix different levels of wisdom (e.g. you
can mostly use the patient default, but plan a few sizes that
you especially care about in
--exhaustive mode).
-n,
--no-system-wisdom Do not import the system wisdom from
/etc/fftw/wisdomf (which
is normally read by default).
-w file,
--wisdom-file=
file Import wisdom from
file (in addition to the system wisdom,
unless
-n is specified). Multiple wisdom files can be read
via multiple
-w options. If
file is "-", then read wisdom
from standard input.
-T N,
--threads=
N Plan with
N threads. This option is only present if FFTW was
configured with thread support.
BUGS
Send bug reports to fftw@fftw.org.
AUTHORS
Written by Steven G. Johnson and Matteo Frigo.
Copyright (c) 2003, 2007-14 Matteo Frigo
Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
SEE ALSO
fftw-wisdom-to-conf(1)fftw February, 2003 FFTW-WISDOM(1)