aboutsummaryrefslogtreecommitdiff
path: root/verif/frameworks/tosa_verif_framework_compiler_runner.py
diff options
context:
space:
mode:
authorTai Ly <tai.ly@arm.com>2023-03-28 22:06:56 +0000
committerTai Ly <tai.ly@arm.com>2023-05-05 19:23:15 +0000
commita4d748b08accce06fab93e2d2b96e499b35ae89b (patch)
tree20a3957e1f45f65f35d5d67ecce1618659e388f0 /verif/frameworks/tosa_verif_framework_compiler_runner.py
parent0c71686875618b2e11290273b7a05b88ef8a8aae (diff)
downloadreference_model-a4d748b08accce06fab93e2d2b96e499b35ae89b.tar.gz
[reference model] Add precise mode
This adds --precise_mode=1 option to tosa_referece_model, which will cause reference model to convert all floating point tensors to FP64 tensors and compute all operators accordingly. Also adds optional -p arguments to test runners tosa_verif_run_tests.py and tosa_verif_framework_compiler_runner.py to run tests in precise mode Signed-off-by: Tai Ly <tai.ly@arm.com> Change-Id: I156055216ad61710096497a8fa1a653be2a602a3
Diffstat (limited to 'verif/frameworks/tosa_verif_framework_compiler_runner.py')
-rwxr-xr-xverif/frameworks/tosa_verif_framework_compiler_runner.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/verif/frameworks/tosa_verif_framework_compiler_runner.py b/verif/frameworks/tosa_verif_framework_compiler_runner.py
index 0d98c17..28e4369 100755
--- a/verif/frameworks/tosa_verif_framework_compiler_runner.py
+++ b/verif/frameworks/tosa_verif_framework_compiler_runner.py
@@ -57,6 +57,13 @@ def parse_args():
help="Reference model base directory",
)
parser.add_argument(
+ "-p",
+ "--precise-mode",
+ dest="precise_mode",
+ action="store_true",
+ help="run in precise mode (FP64)",
+ )
+ parser.add_argument(
"-v", "--verbose", dest="verbose", action="count", help="Verbose run"
)
parser.add_argument(
@@ -552,6 +559,9 @@ def run_test(args, test, framework):
if args.debug_ref_model:
ref_model_cmd.extend(["-D ALL", "-l high"])
+ if args.precise_mode:
+ ref_model_cmd.extend(["--precise_mode=1"])
+
if args.valgrind:
ref_model_cmd = [
"valgrind",
@@ -594,7 +604,11 @@ def run_test(args, test, framework):
)
return (TestResult.REF_MODEL_RUNTIME_ERROR, 0.0, e)
- if tf_result.dtype == np.float16:
+ if args.precise_mode == 1 and (
+ tf_result.dtype == np.float16 or tf_result.dtype == np.float32
+ ):
+ tf_result = tf_result.astype(np.float64)
+ elif tf_result.dtype == np.float16:
tf_result = tf_result.astype(np.float32)
elif (
tf_result.dtype == np.uint8