An open API service indexing awesome lists of open source software.

https://github.com/kfrlib/fft-benchmark

A benchmark for comparison of FFT algorithms performance
https://github.com/kfrlib/fft-benchmark

Last synced: 10 months ago
JSON representation

A benchmark for comparison of FFT algorithms performance

Awesome Lists containing this project

README

          

# FFT benchmark
A benchmark for comparison of FFT algorithms performance.

Currently supports
* [KFR](https://github.com/kfrlib/kfr)
* Intel IPP
* Intel MKL
* FFTW

`CMAKE_PREFIX_PATH` should contain the paths to cmake configs of used libraries.
Example:
```
C:/vcpkg/installed/x64-windows-static-md/share
C:/Program Files (x86)/Intel/oneAPI/ipp/2021.9.0/lib/cmake/ipp
C:/Program Files (x86)/Intel/oneAPI/mkl/2024.0/lib/cmake/mkl
kfr-install-dir/lib/cmake
```

Requires:
* Clang 12.0+
* CMake 3.12 or newer
* AVX2-capable cpu
* Python 3.5 or newer
* matplotlib module
* numpy module

## Options

| Option | Description |
|--------------------|-----------------------------------------------------------------|
| `SIZE` | 1D FFT |
| `SIZExSIZE` | 2D FFT. Example: `64x32` |
| `SIZExSIZExSIZE` | 3D FFT. Example: `64x32x16` |
| `--complex flags` | `y` (complex tests), `yn` (all tests), `n` (real tests) |
| `--inverse flags` | `y` (IDFT tests), `ny` (DFT/IDFT tests), `n` (DFT tests) |
| `--inplace flags` | `y` (inplace tests), `ny` (all tests), `n` (out-of-place tests) |
| `--save data.json` | Save results in JSON |
| `--save -` | Print resulting JSON to stdout |
| `--avx2-only` | Enable only AVX2 (supported in KFR, IPP, MKL) |
| `--no-progress` | Disable verbose progress output |
| `--no-banner` | Disable banner |

## Benchmark code license

MIT