This test suite is a utility to test various scheduling strategies produced by the Faust compiler. It is heavily inspired from Faust Compiler Benchmark Tools.
Benchmarking works by using libpfm to measure various CPU events over 1000 executions of your DSP program's main loop. The use of libpfm means that currently, this benchmarking tool only works on a Linux kernel.
To obtain a detailed plot of instructions and stalled cycles in all strategies compiled with default settings, run :
fcschedtool plot <process.dsp>
This mode relies on Intel Skylake events that might not be available for your architecture.
To plot the evolution of a custom list of perf events, run :
fschedtool plot <process.dsp> -e perf_event[,other_perf_event]
Use perf list to get a list of perf events that work on your system.
Run fcschedtool plot --help for a detailed list of options.
The testing feature works by sending an impulse in every input of a DSP and checking the response in its outputs. The test passes if all scheduling strategies produce the same impulse response in every output (within an acceptable floating-point margin of error).
To run tests on a given DSP, run :
fcschedtool test <process.dsp>
The dsp folder contains a bunch of examples, taken from the faust repository, that produce
particularly significant differences between the available scheduling policies.