summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2017-01-03 18:55:20 -0800
committerAndrew Waterman <andrew@sifive.com>2017-01-03 20:44:05 -0800
commitb8057b191231dea4b973f1d5066f59afa3881dba (patch)
treeb1af340833e7d848fca717aabb504c6f8231cb80
parent15dc05331b9821cb449e7bf433a24ddfdfa3c295 (diff)
Add benchmarking README
-rw-r--r--README.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/README.md b/README.md
index 58664b0..d0dfc29 100644
--- a/README.md
+++ b/README.md
@@ -42,6 +42,53 @@ cd freedom-e-sdk
make help
```
+### Benchmarking ###
+
+#### Dhrystone ####
+
+After setting up the software and debug toolchains, you can build and
+execute everyone's favorite benchmark as follows:
+
+- Compile the benchmark with the command `make software PROGRAM=dhrystone`.
+- Run on the HiFive1 board with the command `make upload PROGRAM=dhrystone`.
+ This will take a few minutes. Sample output is provided below.
+- Compute DMIPS by dividing the Dhrystones per Second result by 1757, which
+ was the VAX 11/780's performance. In the example below, 729927 / 1757 =
+ 415 DMIPS.
+- Compute DMIPS/MHz by dividing by the clock rate: in the example below,
+ 415 / 260 = 1.60 DMIPS/MHz.
+
+```
+core freq at 259830579 Hz
+
+Dhrystone Benchmark, Version 2.1 (Language: C)
+
+<snip>
+
+Microseconds for one run through Dhrystone: 1.3
+Dhrystones per Second: 729927.0
+```
+
+#### CoreMark ####
+
+We cannot distribute the CoreMark benchmark, but following are instructions
+to download and run the benchmark on the HiFive1 board:
+
+- Download CoreMark from EEMBC's web site and extract the archive from
+ http://www.eembc.org/coremark/download.php.
+- Copy the following files from the extracted archive into the
+ `software/coremark` directory in this repository:
+ - `core_list_join.c`
+ - `core_main.c`
+ - `coremark.h`
+ - `core_matrix.c`
+ - `core_state.c`
+ - `core_util.c`
+- Compile the benchmark with the command `make software PROGRAM=coremark`.
+- Run on the HiFive1 board with the command `make upload PROGRAM=coremark`.
+- Divide the reported Iterations/Sec by the reported core frequency in MHz to
+ obtain a CoreMarks/MHz value.
+
### For More Information ###
Documentation, Forums, and much more available at