155 lines
5.1 KiB
Bash
155 lines
5.1 KiB
Bash
#!/bin/bash
|
|
|
|
## Copyright 2020 Intel Corporation
|
|
## SPDX-License-Identifier: Apache-2.0
|
|
|
|
git log -1
|
|
|
|
# environment for benchmark client
|
|
source ~/benchmark_client.git/env.sh
|
|
source ~/system_token.sh
|
|
|
|
# benchmark configuration
|
|
SOURCE_ROOT=`pwd`
|
|
PROJECT_NAME="Embree"
|
|
|
|
NUMACTL="numactl --physcpubind=+0-27 --"
|
|
BENCHMARK="--benchmark 10 0 --benchmark_repetitions 11"
|
|
THREADS="--set_affinity 1"
|
|
|
|
MODEL_DIR="${HOME}/embree-models"
|
|
|
|
export LD_LIBRARY_PATH=`pwd`/build:${LD_LIBRARY_PATH}
|
|
|
|
cd build
|
|
rm -f *.json
|
|
|
|
BUILD_SCENES_FILE="../tutorials/models/build.bench"
|
|
TRACE_SCENES_FILE="../tutorials/models/trace.bench"
|
|
|
|
RUN_BUILD_BENCHMARKS=true
|
|
RUN_TRACE_BENCHMARKS=true
|
|
RUN_TUT_BENCHMARKS=true
|
|
|
|
################################# PLEASE READ ##################################
|
|
#
|
|
# Note that suites and subsuites must exist in the database _before_ attempting
|
|
# insertion of results. This is intentional! You should think carefully about
|
|
# your [suite -> subsuite -> benchmark] hierarchy and definitions. These should
|
|
# be stable over time (especially for suites and subsuites) to facilitate
|
|
# long-term comparisons.
|
|
#
|
|
# These can be inserted using the benchmark client, through the "insert suite"
|
|
# and "insert subsuite" commands. Ask for help if you have questions.
|
|
#
|
|
################################# PLEASE READ ###################################
|
|
|
|
initContext() {
|
|
if [ -z "$HAVE_CONTEXT" ]; then
|
|
HAVE_CONTEXT=1
|
|
benny insert code_context "${PROJECT_NAME}" ${SOURCE_ROOT} --save-json code_context.json
|
|
benny insert run_context ${TOKEN} ./code_context.json --save-json run_context.json
|
|
fi
|
|
}
|
|
|
|
####################
|
|
# build benchmarks #
|
|
####################
|
|
|
|
if ${RUN_BUILD_BENCHMARKS}; then
|
|
SUITE_NAME="Build"
|
|
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
|
|
|
|
## subsuites of build benchmarks
|
|
subsuites="update_dynamic_deformable \
|
|
create_dynamic_dynamic \
|
|
create_static_static \
|
|
create_high_quality_static_static"
|
|
|
|
while IFS= read -r line
|
|
do
|
|
IFS=' ' read -r -a array <<< "$line"
|
|
NAME="${array[0]}"
|
|
if [[ $NAME == '#'* ]]; then
|
|
continue
|
|
fi
|
|
SCENE=${MODEL_DIR}/"${array[1]}"
|
|
|
|
unset "array[0]"
|
|
unset "array[1]"
|
|
|
|
for i in ${subsuites}
|
|
do
|
|
SUBSUITE_NAME=$i
|
|
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
|
|
|
|
initContext
|
|
|
|
echo "${NUMACTL} ./buildbench --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} --benchmark_type ${SUBSUITE_NAME} -i ${SCENE} ${array[@]} ${THREADS}"
|
|
${NUMACTL} ./buildbench --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} --benchmark_type ${SUBSUITE_NAME} -i ${SCENE} ${array[@]} ${THREADS}
|
|
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
|
|
done
|
|
done < "${BUILD_SCENES_FILE}"
|
|
fi
|
|
|
|
####################
|
|
# trace benchmarks #
|
|
####################
|
|
|
|
if ${RUN_TRACE_BENCHMARKS}; then
|
|
SUITE_NAME="Trace"
|
|
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
|
|
|
|
while IFS= read -r line
|
|
do
|
|
IFS=' ' read -r -a array <<< "$line"
|
|
NAME="${array[0]}"
|
|
if [[ $NAME == '#'* ]]; then
|
|
continue
|
|
fi
|
|
SCENE=${MODEL_DIR}/"${array[1]}"
|
|
|
|
unset "array[0]"
|
|
unset "array[1]"
|
|
|
|
SUBSUITE_NAME="Viewer"
|
|
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
|
|
initContext
|
|
|
|
echo "${NUMACTL} ./viewer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS} --size 256 256"
|
|
${NUMACTL} ./viewer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS}
|
|
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
|
|
|
|
SUBSUITE_NAME="Pathtracer"
|
|
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
|
|
initContext
|
|
|
|
echo "${NUMACTL} ./pathtracer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS} --size 256 256 --spp 32"
|
|
${NUMACTL} ./pathtracer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS}
|
|
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
|
|
|
|
done < "${TRACE_SCENES_FILE}"
|
|
|
|
if ${RUN_TUT_BENCHMARKS}; then
|
|
SUBSUITE_NAME="Tutorials"
|
|
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
|
|
initContext
|
|
|
|
tutorials="triangle_geometry \
|
|
grid_geometry \
|
|
curve_geometry \
|
|
displacement_geometry \
|
|
hair_geometry \
|
|
instanced_geometry \
|
|
intersection_filter \
|
|
point_geometry \
|
|
subdivision_geometry \
|
|
user_geometry"
|
|
|
|
for i in ${tutorials}
|
|
do
|
|
${NUMACTL} ./${i} --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} ${THREADS}
|
|
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
|
|
done
|
|
fi
|
|
fi
|