Skip to content

Commit b7d37ec

Browse files
committed
Port to buildroot
1 parent d3db291 commit b7d37ec

File tree

27 files changed

+280
-2063
lines changed

27 files changed

+280
-2063
lines changed

Diff for: .gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ run
1818
/pkgs/tools/libtool/src/doc/stamp-vti
1919
/pkgs/tools/libtool/src/doc/version.texi
2020

21-
# Unignore leftover present in the tars.
21+
# Ignore leftover present in the tars.
22+
/bin/.#parsecmgmt.1.6
2223
/toolkit/hpt/loggroup1.old/
2324
/toolkit/hpt/loggroup2.old/

Diff for: README.md

+48-15
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,71 @@
11
# Parsec Benchmark
22

3-
<http://parsec.cs.princeton.edu/> 3.0-beta-20150206 ported to Ubuntu 16.04 and with proper version control.
3+
<http://parsec.cs.princeton.edu/> 3.0-beta-20150206 ported to Ubuntu 16.04 and SPLASH2 ported to Buildroot 2017.08 cross compilation (ARM, MIPS, etc.).
44

5-
## Getting started
5+
## Getting started Buildroot cross compilation
6+
7+
See the instructions at: <https://github.com/cirosantilli/linux-kernel-module-cheat#parsec-benchmark> The Buildroot package is in that repo.
8+
9+
Only SPLASH2 was ported currently, not the other benchmarks.
10+
11+
PARSEC's build was designed for multiple archs, this can be seen at [bin/parsecmgmt](bin/parsecmgmt), but not for cross compilation. Some of the changes we've had to make:
12+
13+
- use `CC` everywhere instead of hardcoded `gcc`
14+
- use `HOST_CC` for `.c` utilities used during compilation
15+
- remove absolute paths, e.g. `-I /usr/include`
16+
17+
## Getting started Ubuntu 16.04
618

719
./configure
820

9-
Build all:
21+
Before doing anything else, you must get the `parecmgmt` command with:
1022

1123
. env.sh
12-
parsecmgmt -a build -p all
1324

14-
Build just one to save time:
25+
Build all:
1526

16-
parsecmgmt -a build -p splash2
27+
parsecmgmt -a build -p all
1728

18-
Run all:
29+
Build all SPLASH2 benchmarks:
1930

20-
parsecmgmt -a run -p all
31+
parsecmgmt -a build -p splash2x
2132

22-
TODO some tests are broken. We will maintain a list.
33+
Build just one SPLASH2 benchmark:
34+
35+
parsecmgmt -a build -p splash2x.barnes
2336

2437
Run one benchmark with one input size, listed in by increasing size:
2538

26-
parsecmgmt -a run -p splash2 -i simsmall
27-
parsecmgmt -a run -p splash2 -i simmedium
28-
parsecmgmt -a run -p splash2 -i simlarge
29-
parsecmgmt -a run -p splash2 -i native
39+
parsecmgmt -a run -p splash2x.barnes -i test
40+
parsecmgmt -a run -p splash2x.barnes -i simdev
41+
parsecmgmt -a run -p splash2x.barnes -i simsmall
42+
parsecmgmt -a run -p splash2x.barnes -i simmedium
43+
parsecmgmt -a run -p splash2x.barnes -i simlarge
44+
parsecmgmt -a run -p splash2x.barnes -i native
45+
46+
For some reason, the `splash2` version (without the X) does not have any test data besides `-i test`, making it basically useless. So just use the X version instead. TODO why? Can we just remove it then? When running `splash2`, it says:
47+
48+
NOTE: SPLASH-2 only supports "test" input sets.
49+
50+
so likely not a bug.
51+
52+
The tests are distributed separately as:
53+
54+
* `test` tests come with the smallest possible distribution `core`, and are tiny sanity checks as the name suggests. We have however removed them from this repo, since they are still blobs, and blobs are evil.
55+
* `sim*` tests require `parsec-3.0-input-sim.tar.gz` which we install by default
56+
* `native` requires `parsec-3.0-input-native.tar.gz`, which we don't install by default because it is huge. These huge instances are intended for real silicon.
57+
58+
Run all packages with the default `test` input size:
59+
60+
parsecmgmt -a run -p all
61+
62+
TODO some tests are broken. We will maintain a list.
3063

31-
`sim*` tests require `parsec-3.0-input-sim.tar.gz` which we install by default, and `native` requires `parsec-3.0-input-native.tar.gz`, which we don't install by default.
64+
Not every benchmark has every input size, e.g. `splash2.barnes` only has `test` input inside of `core` and `input-sim`
3265

3366
TODO runs all sizes, or just one default size:
3467

35-
parsecmgmt -a run -p splash2
68+
parsecmgmt -a run -p splash2x
3669

3770
TODO how to read run output?
3871

0 commit comments

Comments
 (0)