summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorAndrew Waterman <aswaterman@gmail.com>2017-01-05 15:14:28 -0500
committerGitHub <noreply@github.com>2017-01-05 15:14:28 -0500
commitd69f4cb8653f4974374f98debf9ce2cc820a2b57 (patch)
treecc6889cdc8877bcf4b1a8e8760c773e9ec0ef76f /README.md
parente641c398daa91d896ce37fbb73015c054a4e0b21 (diff)
parentb8057b191231dea4b973f1d5066f59afa3881dba (diff)
Merge pull request #38 from sifive/benchmarking
Benchmarking
Diffstat (limited to 'README.md')
-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