diff options
author | Tai Ly <tai.ly@arm.com> | 2023-03-28 22:06:56 +0000 |
---|---|---|
committer | Tai Ly <tai.ly@arm.com> | 2023-05-05 19:23:15 +0000 |
commit | a4d748b08accce06fab93e2d2b96e499b35ae89b (patch) | |
tree | 20a3957e1f45f65f35d5d67ecce1618659e388f0 /verif/frameworks/tosa_verif_framework_compiler_runner.py | |
parent | 0c71686875618b2e11290273b7a05b88ef8a8aae (diff) | |
download | reference_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-x | verif/frameworks/tosa_verif_framework_compiler_runner.py | 16 |
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 |