10.3.2. Member-by-Member Guide - 5.2 English - 57404

AOCL User Guide (57404)

Document ID
57404
Release Date
2025-12-29
Version
5.2 English

1. Buffers (`in`, `out`)

  • in: Points to the input data (signal for forward FFT, frequency for backward FFT).

  • out: Points to the output data (frequency for forward FFT, signal for backward FFT).

  • Constraints:

    • Must not be NULL.

    • For in-place transforms (flags.fft_placement == 0), in and out must be the same pointer.

    • For out-of-place transforms (flags.fft_placement == 1), in and out must be different pointers.

2. Ranks (`vec_rank`, `dim_rank`)

  • vec_rank: Number of batch dimensions (length of vecs array). Must be \(\geq 1\).

  • dim_rank: Number of signal/frequency dimensions (length of dims array). Must be \(\geq 1\).

3. Dimension Arrays (`dims`, `vecs`)

  • dims: Array of aoclfftz_dim_t describing each signal/frequency dimension.

  • vecs: Array of aoclfftz_dim_t describing each batch dimension.

  • Constraints for each element:

    • n (size): Must be > 0.

    • in_stride, out_stride: Must be > 0.

    • For in-place transforms, in_stride must equal out_stride for each dimension.

    • For real transforms (R2C/C2R), only 1D is supported (dim_rank == 1) in this release, and special stride rules apply (see Stride Setting).

4. Flags (`flags`)

  • fft_type: Complex (0) or Real (1).

  • fft_direction: Forward (0) or Backward (1).

  • storage_order: Must be 0 (in-order only; out-of-order not supported).

  • fft_placement: In-place (0) or Out-of-place (1).

  • transpose_mode: Must be 0 (standalone transpose not supported).

5. Parallel FFT (`pthr_fft`)

  • num_threads: Number of threads (\(\geq 1\)). If greater than available CPUs, defaults to max CPUs. If less than 1, defaults to single-threaded execution.

  • dynamic_load_model: 0 (fixed threads) or 1 (dynamic threads - not supported in this release). Invalid values default to 0.

6. Control Parameters (`cntrl_params`)

  • opt_level: 0-3 (optimization level). Out-of-range values default to maximum opt level - 3.

  • opt_off: 0 (optimizations enabled) or 1 (disabled).

  • logger_mode: 0-3. Out-of-range values default to 0. Error logs are always enabled despite logger_mode setting.

  • measure_stats: Must be 0 (not supported).

Note

  • opt-off takes precedence over opt-level.

  • Setting opt_level to 3 on a non-AVX512 CPU will put dynamic dispatcher in action, where the next highest possible ISA will be chosen.