FIRBenchmarks
FIRBenchmarks copied to clipboard
A minimal JUCE console app to compare the performance of FIR filtering algorithms
FIR Filter Benchmarks
This repository contains benchmarks validating the performance of various FIR filtering algorithms. Current algorithms include:
- JUCE FIR Filter
- JUCE Convolution
- std::inner_product
- SIMD-acclerated inner product
For further explanation of each algorithm, please see this writeup.
Results
So far, I have the results of the benchmarks from a Windows machine (a 2017 Dell laptop with an Intel i7 CPU), and a Mac machine (a 2019 MacBook Pro with an Intel i9 CPU).
For more results, see the ./results/figures/
directory.
Benchmark results and algorithm optimization from the community is greatly appreciated!
Running
If you wish to build and run the benchmarks for yourself, use
the following steps (requires cmake
):
# clone repository
$ git clone https://github.com/FIRBenchmarks
$ cd FIRBenchmarks/
# update submodules
$ git submodule update --init
# build with CMake
$ cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
$ cmake --build build --config Release
# run benchmarks
$ ./build/FIRTesting_artefacts/FIRTesting
# On Windows use this instead: ./build/FIRTesting_artefacts/Release/FIRTesting.exe
License
The code in this repository is licensed under the BSD 3-clause license. Enjoy!