Monday, November 22, 2010

Dhrystone benchmark results for the cdot-beagleXM-0-3

After a few weeks of research and tests, I finally gathered enough information about the general processor performance of the cdot-beagleXM-0-3 builder by running a benchmark program named Dhrystone.

Chris Tyler recommended that I start my benchmarking with Dhrystone just to measure the general performance of the beagleXM. The goal is simple:

-Run Dhrystone and record the result
-Optimize Dhrystone for armv5tel/armv7 and compare/record the results.

I thought it was going to be as easy as just downloading the program, running it, and reporting the results. It never came to me why Chris recommended Dhrystone as the benchmark program for the project. As I worked through the 0.1 goal of my project, I was able to get a better understanding about Dhrystone; it's limitations and advantages.

Reasons for using Dhrystone:
  • ARM® recognizes the program and uses it as a performance attribute of their processors.
  • Dhrystone provides a more meaningful MIPS (Million Instructions Per Second) because results are compared to a reference machine.
  • Dhrystone numbers reflect the performance of the C compiler and libraries more so than the performance of the processor itself. (considered as a weakness of the program)

Dhrystone’s execution is largely spent in standard C library functions. The compiler and the C library affects Dhrystone benchmark result, making it suitable for measuring the general performance of cdot-beagleXM-0-3.The cdot-beagleXM-0-3 builder currently uses armv5tel glibc standard library. If an optimized Dhrystone on armv5tel glibc beagleXM is as fast or has insignificant difference against an armv7 glibc (on the same machine), there is little or no need to focus on recompiling glibc and a lot of C library dependent programs/packages for cdot-beagleXM-0-3 builder.

Here is a graph showing the results of the Dhrystone benchmark:
Notice how both optimizations (armv5tel/armv7) resulted in the same number of DMIPS.

Legend:
Normal = 758.869322709 DMIPS
Optimized for armv5tel = 1034.82179852 DMIPS
Optimized for armv7 = 1034.82179852 DMIPS

The gcc optimization options used for compiling Dhrystone are both ARM architecture specific. One good thing about the result of the benchmark is that optimization increased the overall performance of cdot-beagleXM-0-3 by 36%. The results for both armv5tel and armv7 optimizations are the same. It's safe to assume that the armv5tel glibc impacts the performance of C library dependent programs such as Dhrystone.

Next Dhrystone run will be for an armv7 glibc. Results can then be compared to the data I gathered so far. I am also looking at recompiling the kernel as some sort of an "application benchmark".

Useful Links:

Dhrystone and MIPs performance of ARM processors
DMIPS vs MIPS
Download Dhrystone 2.1

White Papers/Guides:

  • ECL Dhrystone White Paper
  • Dhrystone MIPS - Criticsm by ARM
  • Dhrystone 2.1 README notes

1 comments:

:) said...

I want to detect 4th loop iteration, when I run the test for 25 iteration.

How can I incorporate this via C Code?

Please guide me.

Post a Comment