diff options
author | Jeremy Johnson <jeremy.johnson@arm.com> | 2024-01-03 17:07:44 +0000 |
---|---|---|
committer | Eric Kunze <eric.kunze@arm.com> | 2024-01-08 21:40:41 +0000 |
commit | bd801960c958db85ae4092d1350ffbd383c3f77c (patch) | |
tree | e3fa9e3d2a817b75a4c13b663b46e776a3c766e0 /verif/generator/tosa_arg_gen.py | |
parent | d80ea5e11e5f92e0f7c08afeba74cb7d1719987b (diff) | |
download | reference_model-bd801960c958db85ae4092d1350ffbd383c3f77c.tar.gz |
Main Compliance: REDUCE_PRODUCT support
Update and fix REDUCE_PRODUCT compliance verify lib support.
Added compliance test generation with data range to not cause infs.
Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com>
Change-Id: I3b3004c6caa80d97e330a6393f435f5270b56e21
Diffstat (limited to 'verif/generator/tosa_arg_gen.py')
-rw-r--r-- | verif/generator/tosa_arg_gen.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/verif/generator/tosa_arg_gen.py b/verif/generator/tosa_arg_gen.py index 1e23822..8641499 100644 --- a/verif/generator/tosa_arg_gen.py +++ b/verif/generator/tosa_arg_gen.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021-2023, ARM Limited. +# Copyright (c) 2021-2024, ARM Limited. # SPDX-License-Identifier: Apache-2.0 import itertools import math @@ -1274,6 +1274,30 @@ class TosaTensorValuesGen: testGen, opName, dtypeList, shapeList, argsDict, error_name ) + @staticmethod + def tvgReduceProduct( + testGen, opName, dtypeList, shapeList, argsDict, error_name=None + ): + dtype = dtypeList[0] + if error_name is None: + # Limit ranges for (non error) tests by using + # values that can be multiplied on any axis to not hit infinity + highval_lookup = { + dtype: math.pow( + TosaTensorValuesGen.TVG_FLOAT_HIGH_VALUE[dtype], + 1 / max(shapeList[0]), + ) + } + data_range = TosaTensorValuesGen._get_data_range( + testGen, dtype, highval_lookup + ) + assert data_range is not None + argsDict["data_range"] = data_range + + return TosaTensorValuesGen.tvgLazyGenDefault( + testGen, opName, dtypeList, shapeList, argsDict, error_name + ) + # Set the POW exponent high data range TVG_FLOAT_HIGH_VALUE_POW_EXP = { DType.FP32: 10.0, |