Example fbench

From wiki.emacinc.com
Revision as of 13:08, 3 December 2013 by Jgreene (talk | contribs)
Jump to: navigation, search
TODO: {{#todo:InProgress(11.14.13-09:25->JG+)|Jgreene|oe 4,oe 5,jg,md,InProgress}}

This is a guide to the fbench C example project included in the EMAC OE SDK.

How fast does your machine execute floating point operations? How accurate are those operations? This project is a floating point benchmark and accuracy testing application that utilizes ray tracing algorithms. It is provided here mainly as an example of a method of processor performance comparison and compiler optimization testing. It's an excerpt from the fbench project by John Walker of Fourmilab. See John Walker's Floating Point Benchmarks project homepage for more information.

The fbench project builds two executables: fbench and ffbench.

fbench is a floating point benchmark. It's actually a complete optical design raytracing algorithm based on the Marinchip Interactive Lens Design System. See John Walker's fbench project homepage for more information.

ffbench is a Fast Fourier Transform benchmark. It loops through a fast Fourier transform of a square matrix of complex numbers, reverses the transform and then checks the results. See John Walker's ffbench project homepage for more information.

Opening, Building and Uploading the Project Files

1. Open the C/C++ editing perspective.

stub

2. Open the fbench project files.

stub

3. Build the fbench project.

stub

4. Upload the fbench and ffbench executables to the target machine.

stub

Usage and Behavior

Hardware Requirements

The fbench project is intended for use on C implementations that define int as 32 bits or longer and permit allocation and direct addressing of arrays larger than one megabyte. If your target does not meet these requirements then you're going to have a bad time.

Using fbench

The fbench program is executed from the console. It takes a single optional parameter.

./fbench <itercount>

Where <itercount> specifies the number of iterations to be performed, 1000 being the default.

Usage Example

root@som9g20:/tmp# ./fbench 123
Ready to begin John Walker's floating point accuracy
and performance benchmark.  123 iterations will be made.


Measured run time in seconds should be divided by 0
to normalise for reporting results.  For archival results,
adjust iteration count so the benchmark runs about five minutes.

Press return to begin benchmark:

i.e. : ./fbench 123

It runs until it is finished and then outputs the results to the terminal. hey mike fbench appears to have a bug or something. It's supposed to finish and output some results but it just keeps running until you tell it to "stop the timer". It also gives me a funny message at one point "Measured run time in seconds should be divided by 0". Strange. maybe the board is just slow, I dunno. You want me to track down the problem in the code?

Usage for ffbench:

ffbench i.e. : ./ffbench

It runs until it is finished and then outputs to the terminal whether or not errors were detected in it's results.