diff --git a/README.adoc b/README.adoc index 372ce07..e5335be 100644 --- a/README.adoc +++ b/README.adoc @@ -2345,7 +2345,7 @@ sgemm_kernel.o: No such file or directory ===== PARSEC benchmark -We have ported parts of the link:http://parsec.cs.princeton.edu[PARSEC benchmark] for cross compilation at: https://github.com/cirosantilli/parsec-benchmark See the documentation on that repo to find out which benchmarks have been ported. Furthermore, some of the benchmarks were are segfaulting, see link:parsec-benchmark/test.sh[] +We have ported parts of the link:http://parsec.cs.princeton.edu[PARSEC benchmark] for cross compilation at: https://github.com/cirosantilli/parsec-benchmark See the documentation on that repo to find out which benchmarks have been ported. Some of the benchmarks were are segfaulting, they are documented in that repo. There are two ways to run PARSEC with this repo: @@ -2367,7 +2367,7 @@ cd /parsec/ext/splash2x/apps/fmm/run To find out how to run many of the benchmarks, you can either: -* have a look at: link:parsec-benchmark/test.sh[] +* have a look at the `test.sh` script of the `parse-benchmark` repo * do a search on the build stdout on your terminal for a line of type: + .... diff --git a/parsec-benchmark/external.mk b/parsec-benchmark/external.mk index ab80e64..682c574 100644 --- a/parsec-benchmark/external.mk +++ b/parsec-benchmark/external.mk @@ -16,6 +16,8 @@ define PARSEC_BENCHMARK_BUILD_CMDS # We run the benchmarks with the wrong arch here to generate the inputs on the host. # This is because on gem5 this takes too long to do. cd $(@D) && . env.sh && for pkg in $(BR2_PACKAGE_PARSEC_BENCHMARK_BUILD_LIST); do \ + export GNU_TARGET_NAME='$(GNU_TARGET_NAME)'; \ + export GNU_HOST_NAME='$(GNU_HOST_NAME)'; \ export HOSTCC='$(HOSTCC)'; \ export M4='$(HOST_DIR)/usr/bin/m4'; \ export MAKE='$(MAKE)'; \ @@ -23,7 +25,7 @@ define PARSEC_BENCHMARK_BUILD_CMDS export TARGET_CROSS='$(TARGET_CROSS)'; \ export HOSTTYPE='$(BR2_ARCH)'; \ parsecmgmt -a build -p $$pkg; \ - if [ ! '$(BR2_PACKAGE_PARSEC_BENCHMARK_PARSECMGMT)' = y ]; then \ + if [ ! '$(BR2_PACKAGE_PARSEC_BENCHMARK_PARSECMGMT)' = y ]; then \ parsecmgmt -a run -p $$pkg -i $(BR2_PACKAGE_PARSEC_BENCHMARK_INPUT_SIZE); \ fi \ done @@ -31,7 +33,7 @@ endef define PARSEC_BENCHMARK_INSTALL_TARGET_CMDS mkdir -p '$(TARGET_DIR)/parsec/' - $(INSTALL) -D -m 0755 '$(PARSEC_BENCHMARK_PKGDIR)/test.sh' '$(TARGET_DIR)/parsec/' + $(INSTALL) -D -m 0755 '$(D)/test.sh' '$(TARGET_DIR)/parsec/' if [ '$(BR2_PACKAGE_PARSEC_BENCHMARK_PARSECMGMT)' = y ]; then \ rsync -am $(if $(filter $(V),1),-v,) \ --exclude '**/obj/' \ diff --git a/parsec-benchmark/parsec-benchmark b/parsec-benchmark/parsec-benchmark index bdc6307..6946dbf 160000 --- a/parsec-benchmark/parsec-benchmark +++ b/parsec-benchmark/parsec-benchmark @@ -1 +1 @@ -Subproject commit bdc6307a2709b8d4058a9dc4b1d3b67f163844cf +Subproject commit 6946dbf03c5a5b7d3f2f1cfe88eac90dc546bfdc diff --git a/parsec-benchmark/test.sh b/parsec-benchmark/test.sh deleted file mode 100755 index 9250c59..0000000 --- a/parsec-benchmark/test.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh - -# Since Parsec does not stop on errors and we need some raw commands for gem5, -# let's do some of our own unit tests here. Thses should be run on QEMU -# to be reasonably fast. -# -# Must be run with BR2_PACKAGE_PARSEC_BENCHMARK_INPUT_SIZE=test - -set -ex - -ncpus="${1:-1}" - -## apps - -# TODO segfaulting. -#cd /parsec/ext/splash2x/apps/barnes/run -#../inst/*/bin/barnes 1 < input_1 - -cd /parsec/ext/splash2x/apps/fmm/run -../inst/*/bin/fmm "$ncpus" < input_1 - -cd /parsec/ext/splash2x/apps/ocean_cp/run -../inst/*/bin/ocean_cp -n258 -p"$ncpus" -e1e-07 -r20000 -t28800 - -# TODO segfaulting. -# cd /parsec/ext/splash2x/apps/ocean_ncp/run -# ../inst/*/bin/ocean_ncp -n258 -p"$ncpus" -e1e-07 -r20000 -t28800 - -cd /parsec/ext/splash2x/apps/radiosity/run -../inst/*/bin/radiosity -bf 1.5e-1 -batch -room -p "$ncpus" - -cd /parsec/ext/splash2x/apps/raytrace/run -../inst/*/bin/raytrace -s -p"$ncpus" -a4 teapot.env - -cd /parsec/ext/splash2x/apps/volrend/run -../inst/*/bin/volrend "$ncpus" head-scaleddown4 4 - -cd /parsec/ext/splash2x/apps/water_nsquared/run -../inst/*/bin/water_nsquared "$ncpus" < input_1 - -cd /parsec/ext/splash2x/apps/water_spatial/run -../inst/*/bin/water_spatial "$ncpus" < input_1 - -## kernels - -cd /parsec/ext/splash2x/kernels/cholesky/run -../inst/*/bin/cholesky -p"$ncpus" < tk14.O - -cd /parsec/ext/splash2x/kernels/cholesky/run -../inst/*/bin/cholesky "$ncpus" test - -cd /parsec/ext/splash2x/kernels/fft/run -../inst/*/bin/fft -m18 -p"$ncpus" - -cd /parsec/ext/splash2x/kernels/lu_cb/run -../inst/*/bin/lu_cb -p"$ncpus" -n512 -b16 - -cd /parsec/ext/splash2x/kernels/lu_ncb/run -../inst/*/bin/lu_ncb -p"$ncpus" -n512 -b16 - -# TODO ERROR: Cannot malloc enough memory for global -# cd /parsec/ext/splash2x/kernels/radix/run -# ../inst/*/bin/radix -p"$ncpus" -r4096 -n262144 -m524288