Skip to content

A benchmark and test suite for evaluating different scheduling strategies in the FAUST compiler

License

Notifications You must be signed in to change notification settings

Minos/faust-scheduling-tools

Repository files navigation

Faust Scheduling Test Suite

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.

Overview

Benchmarking

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.

Testing

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>

Examples

The dsp folder contains a bunch of examples, taken from the faust repository, that produce particularly significant differences between the available scheduling policies.

About

A benchmark and test suite for evaluating different scheduling strategies in the FAUST compiler

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published