```
export ROOTFS_DIR = xxx
...
-make all install # do normal build
+make all install # do normal build
TARGET_ARCH = armv7l make all install # do cross build
```
- neurun
```
./tests/scripts/test_driver.sh --artifactpath=. \
- --ldlibrarypath=Product/out/lib/neurun:Product/out/lib \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.acl_cl.txt
```
* dataflow: `export EXECUTOR=Dataflow`
* parallel: `export EXECUTOR=Parallel`
-3. Set library path: `export LD_LIBRARY_PATH=/path/to/nnfw/Product/armv7l-linux.debug/out/lib`
-
## Test NNFW through NNAPI
### Testing on random input
cp -v ./Product/out/unittest/nnapi_gtest.skip.armv7l-linux ./Product/out/unittest/nnapi_gtest.skip
export EXECUTOR=Linear
source ./tests/scripts/test_driver.sh \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_cl/linear" .
export EXECUTOR=Dataflow
source ./tests/scripts/test_driver.sh \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_cl/dataflow" .
export EXECUTOR=Parallel
source ./tests/scripts/test_driver.sh \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_cl/parallel" .
# Test tflite_loader
--frameworktest \
--framework_driverbin="$ROOT_PATH/Product/out/bin/tflite_loader_test_tool" \
--frameworktest_list_file=tests/scripts/tflite_loader_list.armv7l.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_cl/tfliteloader" .
popd > /dev/null
export EXECUTOR=Linear
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.acl_neon.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_neon/linear" .
export EXECUTOR=Dataflow
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.acl_neon.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_neon/dataflow" .
export EXECUTOR=Parallel
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.acl_neon.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_neon/parallel" .
# NCNN backend test
echo "ExecInstance.*" > ./Product/out/unittest/test_neurun.skip
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.ncnn.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/ncnn" .
popd > /dev/null
export EXECUTOR=Linear
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.cpu.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/cpu/linear" .
export EXECUTOR=Dataflow
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.cpu.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/cpu/dataflow" .
export EXECUTOR=Parallel
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.cpu.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/cpu/parallel" .
popd > /dev/null
cp -v ./Product/out/unittest/nnapi_gtest.skip.armv7l-linux ./Product/out/unittest/nnapi_gtest.skip
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=$TESTLIST_PREFIX.intersect.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib/neurun:$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/mixed" .
popd > /dev/null
pushd $ROOT_PATH > /dev/null
cp -v ./Product/out/unittest/nnapi_gtest.skip.armv7l-linux.pacl ./Product/out/unittest/nnapi_gtest.skip
-source ./tests/scripts/test_driver.sh \
- --frameworktest_list_file=tests/scripts/pacl_frameworktest_list.armv7l-linux.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib/pureacl:$ROOT_PATH/Product/out/lib" \
- --reportdir="$ROOT_PATH/report" .
+LD_LIBRARY_PATH=$ROOT_PATH/Product/out/lib/pureacl ./tests/scripts/test_driver.sh \
+ --frameworktest_list_file=tests/scripts/pacl_frameworktest_list.armv7l-linux.txt \
+ --reportdir="$ROOT_PATH/report" .
popd > /dev/null
cp -v ./Product/out/unittest/nnapi_gtest.skip.noarch.interp ./Product/out/unittest/nnapi_gtest.skip
./tests/scripts/test_driver.sh \
- --ldlibrarypath=$ROOT_PATH/Product/out/lib --unittest \
+ --unittest \
--reportdir="$ROOT_PATH/report/interp" .
popd > /dev/null
cp -v ./Product/out/unittest/nnapi_gtest.skip.armv7l-tizen ./Product/out/unittest/nnapi_gtest.skip
export EXECUTOR=Linear
source ./tests/scripts/test_driver.sh \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_cl" .
export EXECUTOR=Dataflow
source ./tests/scripts/test_driver.sh \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_cl" .
export EXECUTOR=Parallel
source ./tests/scripts/test_driver.sh \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/acl_cl" .
popd > /dev/null
cp -v ./Product/out/unittest/nnapi_gtest.skip.armv7l-tizen ./Product/out/unittest/nnapi_gtest.skip
source ./tests/scripts/test_driver.sh \
--frameworktest_list_file=$TESTLIST_PREFIX.intersect.txt \
- --ldlibrarypath="$ROOT_PATH/Product/out/lib/neurun:$ROOT_PATH/Product/out/lib" \
--reportdir="$ROOT_PATH/report/mixed" .
popd > /dev/null
export OP_BACKEND_ALLOPS=cpu
./tests/scripts/test_driver.sh \
- --ldlibrarypath=$ROOT_PATH/Product/out/lib \
--frameworktest_list_file=./tests/scripts/neurun_frameworktest_list.x86-64.cpu.txt \
--reportdir=$ROOT_PATH/report/ .
echo "--driverbin - (default=../../Product/out/bin/tflite_run) runner for runnning framework tests"
echo "--reportdir - (default=report) directory to place tap files"
echo "--tapname - (default=framework_test.tap) file name to be written for tap"
- echo "--ldlibrarypath - (default=${NNFW_HOME}/Product/out/lib) path to '*.so' files"
echo ""
}
}
DRIVER_BIN=""
-NNFW_LD_LIBRARY_PATH=""
TAP_NAME="framework_test.tap"
TEST_LIST=()
DOWNLOAD_MODE="off"
--download=*)
DOWNLOAD_MODE=${i#*=}
;;
- --ldlibrarypath=*)
- NNFW_LD_LIBRARY_PATH=${i#*=}
- ;;
*)
TEST_LIST+=( $i )
;;
done
echo "======================"
- if [ -z "$NNFW_LD_LIBRARY_PATH" ]; then
- NNFW_LD_LIBRARY_PATH="$NNFW_HOME/Product/out/lib/"
- else
- NNFW_LD_LIBRARY_PATH="$NNFW_LD_LIBRARY_PATH:$NNFW_HOME/Product/out/lib/"
- fi
-
TOTAL_RESULT=0 # 0(normal) or 1(abnormal)
i=0
for TEST_NAME in $SELECTED_TESTS; do
echo "======================"
# Run driver to test framework
- LD_LIBRARY_PATH="${NNFW_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH}" $DRIVER_BIN $MODELFILE
+ $DRIVER_BIN $MODELFILE
#$DRIVER_BIN $MODELFILE
if [[ $? -eq 0 ]]; then
- The `run_unittest.sh` usage :
```
-$ LD_LIBRARY_PATH=Product/out/lib \
- ./tests/scripts/run_unittest.sh \
+$ ./tests/scripts/run_unittest.sh \
--reportdir=report \
--unittestdir=Product/out/unittest
```
### Run nnapi_test with various tflite models
- `nnapi_test` runs tflite in two ways and compares the result:
1. tflite interpreter
- 2. `libneuralnetworks.so`, which could be PureACL or NNAPI depending on `--ldlibrarypath`(`LD_LIBRARY_PATH`)
+ 2. `libneuralnetworks.so`, which could be PureACL or neurun depending on linked to nnapi_test
- Driver : `nnapi_test`
- Driver source location : `tools/nnapi_test/`
- Usage :
--artifactpath=. \
--verification .
```
-
function Usage()
{
# TODO: Fill this
- echo "Usage: LD_LIBRARY_PATH=Product/out/lib ./$0 --reportdir=report"
+ echo "Usage: ./$0 --reportdir=report"
}
for i in "$@"
BENCHMARK_MODEL_LIST=
MODEL_CACHE_ROOT_PATH=
MODEL_TEST_ROOT_PATH=
-PURE_ACL_RT_LIB_PATH=
-PURE_LD_LIBRARY_PATH=
-ORIGIN_LD_LIBRARY_PATH=
PURE_ACL_RT_ENV_FILE=$MY_PATH/benchmark_op_list.txt
function Usage()
{
# TODO: Fill this
- echo "Usage: LD_LIBRARY_PATH=Product/out/lib ./$0 --reportdir=report"
+ echo "Usage: LD_LIBRARY_PATH=Product/out/lib/pureacl ./$0 --reportdir=report"
}
for i in "$@"
local DRIVER_BIN=$2
local MODEL=$3
local LOG_FILE=$4
- local PUREACL_LD_LIBRARY_PATH=$5
local RET=0
- $RUN_TEST_SH --driverbin=$DRIVER_BIN --ldlibrarypath=$PUREACL_LD_LIBRARY_PATH $MODEL > $LOG_FILE 2>&1
+ $RUN_TEST_SH --driverbin=$DRIVER_BIN $MODEL > $LOG_FILE 2>&1
RET=$?
if [[ $RET -ne 0 ]]; then
echo "Testing $MODEL aborted... exit code: $RET"
mkdir -p $BENCHMARK_REPORT_DIR
fi
-if [ -z "$PURE_ACL_RT_LIB_PATH" ]; then
- PURE_ACL_RT_LIB_PATH="$NNFW_HOME/Product/out/lib/pureacl"
-fi
-
get_benchmark_op_list
rm -rf $BENCHMARK_MODELS_FILE
NNFW_DIR="$(dirname "$(dirname "${SCRIPT_DIR}")")"
REPORT_DIR="$NNFW_DIR/report/tflite_benchmark_model"
MODEL_ROOT="$NNFW_DIR/tests/framework/tests"
-LD_LIBRARY_PATH="$NNFW_DIR/Product/out/lib/pureacl:$NNFW_DIR/Product/out/lib"
+LD_LIBRARY_PATH="$NNFW_DIR/Product/out/lib/pureacl"
RUN_TEST=$NNFW_DIR/tests/framework/run_test.sh
MODEL_IN=${BASH_SOURCE[0]%.sh}.in
usage()
{
echo
- echo "Usage: LD_LIBRARY_PATH=Product/out/lib $(basename ${BASH_SOURCE[0]}) --reportdir=report --modelroot=modelroot"
+ echo "Usage: LD_LIBRARY_PATH=Product/out/lib/pureacl $(basename ${BASH_SOURCE[0]}) --reportdir=report --modelroot=modelroot"
echo
}
function Usage()
{
echo "Usage Example:"
- echo "LD_LIBRARY_PATH=Product/out/lib ./$0 \\"
+ echo "./$0 \\"
echo " --runtestsh=tests/framework/run_test.sh \\ # Test runner script path"
echo " --driverbin=Product/out/bin/tflite_run \\ # Test driver path"
echo " --frameworktest_list_file=tests/scripts/neurun_frameworktest_list.armv7l.cpu.txt \\"
echo "--runtestsh - (default=\$ARTIFACT_PATH/tests/framework/run_test.sh) run_test.sh with path where it is for framework test and verification"
echo "--unittestdir - (default=\$ARTIFACT_PATH/Product/out/unittest) directory that has unittest binaries for unit test"
echo ""
- echo "--ldlibrarypath - (default=\$ARTIFACT_PATH/Product/out/lib) path that you want to include libraries"
echo "--usennapi - (default=on) declare USE_NNAPI=1"
echo "--nousennapi - (default=off) declare nothing about USE_NNAPI"
echo "--acl_envon - (default=off) declare envs for ACL"
BENCHMARK_DRIVER_BIN=""
RUN_TEST_SH=""
UNIT_TEST_DIR=""
-LD_LIBRARY_PATH_IN_SHELL=""
USE_NNAPI="USE_NNAPI=1"
ALLTEST_ON="true"
UNITTEST_ON="false"
--unittestdir=*)
UNIT_TEST_DIR=${i#*=}
;;
- --ldlibrarypath=*)
- LD_LIBRARY_PATH_IN_SHELL=${i#*=}
- ;;
--usennapi)
USE_NNAPI="USE_NNAPI=1"
;;
REPORT_DIR=$ARTIFACT_PATH/report
fi
-if [ -z "$LD_LIBRARY_PATH_IN_SHELL" ]; then
- LD_LIBRARY_PATH="$ARTIFACT_PATH/Product/out/lib:$LD_LIBRARY_PATH"
-else
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH_IN_SHELL:$LD_LIBRARY_PATH"
-fi
-
# Set env
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH
if [ -n "$USE_NNAPI" ]; then
export "$USE_NNAPI"
fi
echo -n "[ Run ] $nnpkg "
-if LD_LIBRARY_PATH=Product/out/lib $nnpkg_run \
+if $nnpkg_run \
--nnpackage "$nnpkg" \
--load "$nnpkg/metadata/tc/input.h5" \
--dump "$dumped" >& /dev/null > "$dumped.log" 2>&1 ; then