This section describes the Zynq-7000 AP SoC benchmark tests for the ZC702 board. These tests were run on Linux 3.0.0 kernel.
Three tests were run for this benchmark

1) Dhrystone 2.1
2) Whetstone Double Precision 1.2
3) Linpack

Short description of the Benchmarks tests

Dhrystone


Dhrystone benchmark 2.1 designed to test the raw performance of a processor, which is important in non numeric systems programming. This benchmark is calculated by measuring the number of Dhrystones per second then dividing the figure by the VAX 11/780 Dhrystones and normalized to per MHz of CPU clock frequency.

Whetstone


Whetstone benchmark 1.2 designed to measure the processor performance representing double precision floating point numerical applications. The provided benchmark is normalized to per MHz of CPU clock frequency.

Linpack


Linpack benchmark designed to represent a collection of linear algebra subroutines. It tests double precision floating point performance and results are presented in KFlops (Kilo of Floating point instructions per second) and normalized to per MHz of CPU clock frequency.


System Configuration


Product : Z-7020 based ZC702 evaluation platform
Operating System : Linux OS with kernel version 3.0.0
CPU Core frequency : 666 MHz
RAM frequency : 533 MHz
Tool-Chain : Sourcery CodeBench Lite for Xilinx GNU/Linux 2011.09-50
Compiler flags : -O3 –Ofast -mcpu=cortex-a9 -mfp=vfpv3-fp16 –DNDEBUG
CPU freq (in MHz) : 666
DDR freq (in MHz) : 533

Results


ZC702 Linux Dhrystone (DMIPS/MHz) : 2.3
Whetstone (Whetstones/MHz) : 2.19
Linpack (KFLOPS/MHz) : 118.5


This illustrates that the Zynq 7000 AP SoC does not compromise the re-programmability at expense of hardened ARM Cortex-A9 CPU based raw power. This tackles the challenges of today’s CPU architects in providing system design flexibility & scalability for SoC developers in creation of customizable applications platforms.

Source Files


ZC702 Benchmark Source files

Building the application


1) Open sdk

2) Create a empty linux project named Dhrystone
  • If a HW platform is not specified, choose the existing ZC702_hw_platform
3) Add the link to the folder "\ZC702_Benchmark\src\Dhrystone"
  • File->New->Folder->Advanced->Link to alternate location (Linked Folder)
  • Browse to "\ZC702_Benchmark\src\Dhrystone"

4) Add the include directory "ZC702_Benchmark\include"

5) Add the symbol - TIME, ITERATIONS=100000000, NDEBUG

6) Set the optimization flags as "-O3 –Ofast -mcpu=cortex-a9 -mfp=vfpv3-fp16 –DNDEBUG"

7) In the ARM Linux gcc linker settings under the C/C++ build settings, add the "thobjs_lite" library and add the path "\ZC702_Benchmark\libs" for the Libraries section

8) Build the project

Note:

  1. For Whetstone define the symbol "ITERATIONS=1000000"
  2. For Whetstone add the math library "m" to ARM Linux gcc linker
  3. For Linpack define the symbol "ITERATIONS=1000000

Running the application


Follow the standard Linux Application Debugging steps as described in the Zynq CTT guide under section "Linux Booting and Application Debugging Using SDK"

ARM Reference


ARM Reference for the Cortex-A9 core is 2.5 DMIPS/MHz/Core. DMIPS for other processor architectures can be referenced here