tests: Update nightly.sh to separate compile and run threads
This allows us to set a high number of threads for gem5 compilation tasks, and a lower number of threads for running gem5. The latter is more memory intensive and, therefore, we cannot always use the maximum number of threads in a system. Change-Id: I699d9f74b21d31841bf31e3589d323b007cb4601 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/53483 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -32,11 +32,18 @@ set -x
|
|||||||
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
gem5_root="${dir}/.."
|
gem5_root="${dir}/.."
|
||||||
|
|
||||||
# We assume the lone argument is the number of threads. If no argument is
|
# The first argument is the number of threads to be used for compilation. If no
|
||||||
# given we default to one.
|
# argument is given we default to one.
|
||||||
threads=1
|
compile_threads=1
|
||||||
if [[ $# -gt 0 ]]; then
|
if [[ $# -gt 0 ]]; then
|
||||||
threads=$1
|
compile_threads=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The second argument is the number of threads used to run gem5 (one gem5
|
||||||
|
# instance per thread). If no argument is given we default to one.
|
||||||
|
run_threads=1
|
||||||
|
if [[ $# -gt 1 ]]; then
|
||||||
|
run_threads=$2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
build_target () {
|
build_target () {
|
||||||
@@ -47,8 +54,8 @@ build_target () {
|
|||||||
# compilation: https://gem5.atlassian.net/browse/GEM5-753
|
# compilation: https://gem5.atlassian.net/browse/GEM5-753
|
||||||
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
||||||
"${gem5_root}" --rm gcr.io/gem5-test/ubuntu-20.04_all-dependencies \
|
"${gem5_root}" --rm gcr.io/gem5-test/ubuntu-20.04_all-dependencies \
|
||||||
bash -c "scons build/${isa}/gem5.opt -j${threads} \
|
bash -c "scons build/${isa}/gem5.opt -j${compile_threads} \
|
||||||
|| (rm -rf build && scons build/${isa}/gem5.opt -j${threads})"
|
|| (rm -rf build && scons build/${isa}/gem5.opt -j${compile_threads})"
|
||||||
}
|
}
|
||||||
|
|
||||||
unit_test () {
|
unit_test () {
|
||||||
@@ -56,7 +63,7 @@ unit_test () {
|
|||||||
|
|
||||||
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
||||||
"${gem5_root}" --rm gcr.io/gem5-test/ubuntu-20.04_all-dependencies \
|
"${gem5_root}" --rm gcr.io/gem5-test/ubuntu-20.04_all-dependencies \
|
||||||
scons build/NULL/unittests.${build} -j${threads}
|
scons build/NULL/unittests.${build} -j${compile_threads}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Ensure we have the latest docker images.
|
# Ensure we have the latest docker images.
|
||||||
@@ -78,15 +85,15 @@ unit_test debug
|
|||||||
# Run the gem5 long tests.
|
# Run the gem5 long tests.
|
||||||
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
||||||
"${gem5_root}"/tests --rm gcr.io/gem5-test/ubuntu-20.04_all-dependencies \
|
"${gem5_root}"/tests --rm gcr.io/gem5-test/ubuntu-20.04_all-dependencies \
|
||||||
./main.py run --length long -j${threads} -t${threads} -vv
|
./main.py run --length long -j${compile_threads} -t${run_threads} -vv
|
||||||
|
|
||||||
# Run the GPU tests.
|
# Run the GPU tests.
|
||||||
# For the GPU tests we compile and run GCN3_X86 inside a gcn-gpu container.
|
# For the GPU tests we compile and run GCN3_X86 inside a gcn-gpu container.
|
||||||
docker pull gcr.io/gem5-test/gcn-gpu:latest
|
docker pull gcr.io/gem5-test/gcn-gpu:latest
|
||||||
docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
|
||||||
"${gem5_root}" gcr.io/gem5-test/gcn-gpu:latest bash -c \
|
"${gem5_root}" gcr.io/gem5-test/gcn-gpu:latest bash -c \
|
||||||
"scons build/GCN3_X86/gem5.opt -j${threads} \
|
"scons build/GCN3_X86/gem5.opt -j${compile_threads} \
|
||||||
|| (rm -rf build && scons build/GCN3_X86/gem5.opt -j${threads})"
|
|| (rm -rf build && scons build/GCN3_X86/gem5.opt -j${compile_threads})"
|
||||||
|
|
||||||
# get square
|
# get square
|
||||||
wget -qN http://dist.gem5.org/dist/develop/test-progs/square/square
|
wget -qN http://dist.gem5.org/dist/develop/test-progs/square/square
|
||||||
|
|||||||
Reference in New Issue
Block a user