The benchmark suite is divided into two classes of programs: kernels and applications. DSP kernels are simply small code fragments that represent important calculations in DSP applications. Examples of DSP kernels are: filters of various kinds, fast Fourier transform, matrix multiply, etc. DSP applications, on the other hand, are entire programs that would be executed on a DSP in a commercial product. Examples of DSP applications are: linear predictive coding, image compression, an implementation of the G.721 modem protocol, etc.
For each kernel and application, the suite provides several versions written in different coding styles. All versions for a particular kernel or application provide the same functionality. The coding styles vary in the use of pointer or array notation and software pipelining. The purpose of having several versions is to evaluate the ability of a compiler to generate comparable code for all versions. For example, code generated for the array-based version of a benchmark should execute as fast as code generated for the pointer-based version.
We are distributing the benchmark suite for research and commercial uses. A copy of the license agreements is available in PostScript. Once you have read the agreements, contact me to receive the distribution package.