aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorevacha01 <evan.chandler@arm.com>2024-01-24 12:08:09 +0000
committerevacha01 <evan.chandler@arm.com>2024-01-29 15:39:38 +0000
commit7f7d4255a5cd4e157cd385155d0c5c550648d2c4 (patch)
treec7f5ea385099984546464ed4133372a01fd1718a
parent66704d5aac0819ea1755e800806b869d90552ec6 (diff)
downloadreference_model-7f7d4255a5cd4e157cd385155d0c5c550648d2c4.tar.gz
Main Compliance testing for SLICE
Signed-off-by: evacha01 <evan.chandler@arm.com> Change-Id: Ib9d0abe0bd8826ca5ac051a5fe6ba18e1ba727f1
-rw-r--r--reference_model/src/generate/generate_utils.cc1
-rw-r--r--verif/conformance/tosa_main_profile_ops_info.json5
-rw-r--r--verif/generator/tosa_arg_gen.py11
-rw-r--r--verif/generator/tosa_test_gen.py31
4 files changed, 37 insertions, 11 deletions
diff --git a/reference_model/src/generate/generate_utils.cc b/reference_model/src/generate/generate_utils.cc
index 9eda0b6..917f1b1 100644
--- a/reference_model/src/generate/generate_utils.cc
+++ b/reference_model/src/generate/generate_utils.cc
@@ -76,6 +76,7 @@ NLOHMANN_JSON_SERIALIZE_ENUM(Op,
{ Op::Op_SCATTER, "SCATTER" },
{ Op::Op_SELECT, "SELECT" },
{ Op::Op_SIGMOID, "SIGMOID" },
+ { Op::Op_SLICE, "SLICE" },
{ Op::Op_SUB, "SUB" },
{ Op::Op_TANH, "TANH" },
{ Op::Op_TILE, "TILE" },
diff --git a/verif/conformance/tosa_main_profile_ops_info.json b/verif/conformance/tosa_main_profile_ops_info.json
index ef721ca..ced1d9e 100644
--- a/verif/conformance/tosa_main_profile_ops_info.json
+++ b/verif/conformance/tosa_main_profile_ops_info.json
@@ -2929,6 +2929,7 @@
"tosa-bi",
"tosa-mi"
],
+ "support_for": [ "lazy_data_gen" ],
"generation": {
"standard": {
"generator_args": [
@@ -2940,7 +2941,7 @@
"--target-dtype",
"bf16",
"--fp-values-range",
- "-2.0,2.0",
+ "-max,max",
"--tensor-dim-range",
"16,64",
"--target-rank",
@@ -2960,7 +2961,7 @@
"--target-dtype",
"bf16",
"--fp-values-range",
- "-2.0,2.0",
+ "-max,max",
"--tensor-dim-range",
"1,16",
"--target-rank",
diff --git a/verif/generator/tosa_arg_gen.py b/verif/generator/tosa_arg_gen.py
index f598377..4863956 100644
--- a/verif/generator/tosa_arg_gen.py
+++ b/verif/generator/tosa_arg_gen.py
@@ -2912,7 +2912,16 @@ class TosaArgGen:
start, size = TosaErrorIfArgGen.eiSliceErrorIf(
testGen, error_name, ifm_shape, start, size
)
- arg_list.append(("perm{}".format(p), [start, size]))
+ arg_list.append(("perm{}".format(p), {"start": start, "size": size}))
+ # Now add data generator types
+ arg_list = TosaArgGen._add_data_generators(
+ testGen,
+ opName,
+ dtype,
+ arg_list,
+ error_name,
+ )
+ # Return list of tuples: (arg_str, args_dict)
return arg_list
@staticmethod
diff --git a/verif/generator/tosa_test_gen.py b/verif/generator/tosa_test_gen.py
index 28cf392..49d9f1b 100644
--- a/verif/generator/tosa_test_gen.py
+++ b/verif/generator/tosa_test_gen.py
@@ -1684,14 +1684,21 @@ class TosaTestGen:
self.ser.addOperator(op["op"], input_list, output_list, attr)
return result_tens
- def build_slice(self, op, a, start, size, validator_fcns=None, error_name=None):
- result_tens = OutputShaper.sliceOp(
+ def build_slice(
+ self, op, inputs, args_dict, validator_fcns=None, error_name=None, qinfo=None
+ ):
+ assert len(inputs) == 1
+ a = inputs[0]
+ start = args_dict["start"]
+ size = args_dict["size"]
+
+ result_tensor = OutputShaper.sliceOp(
self.ser, self.rng, a, start, size, error_name
)
# Invalidate Input/Output list for error if checks.
input_list = [a.name]
- output_list = [result_tens.name]
+ output_list = [result_tensor.name]
pCount, cCount = op["operands"]
num_operands = pCount + cCount
input_list, output_list = TosaErrorIfArgGen.eiInvalidateInputOutputList(
@@ -1704,12 +1711,12 @@ class TosaTestGen:
error_name,
op=op,
input_shape=a.shape,
- output_shape=result_tens.shape,
+ output_shape=result_tensor.shape,
input_dtype=a.dtype,
- output_dtype=result_tens.dtype,
+ output_dtype=result_tensor.dtype,
start=start,
size=size,
- result_tensors=[result_tens],
+ result_tensors=[result_tensor],
input_list=input_list,
output_list=output_list,
num_operands=num_operands,
@@ -1721,7 +1728,12 @@ class TosaTestGen:
attr.SliceAttribute(start, size)
self.ser.addOperator(op["op"], input_list, output_list, attr)
- return result_tens
+
+ compliance = self.tensorComplianceMetaData(
+ op, a.dtype, args_dict, result_tensor, error_name
+ )
+
+ return TosaTestGen.BuildInfo(result_tensor, compliance)
def build_tile(
self, op, inputs, args_dict, validator_fcns=None, error_name=None, qinfo=None
@@ -4327,7 +4339,7 @@ class TosaTestGen:
"build_fcn": (
build_slice,
TosaTensorGen.tgBasic,
- TosaTensorValuesGen.tvgDefault,
+ TosaTensorValuesGen.tvgLazyGenDefault,
TosaArgGen.agSlice,
),
"types": TYPE_FIB,
@@ -4344,6 +4356,9 @@ class TosaTestGen:
TosaErrorValidator.evWrongOutputList,
TosaErrorValidator.evRankMismatch,
),
+ "data_gen": {
+ "fp": (gtu.DataGenType.PSEUDO_RANDOM,),
+ },
},
"tile": {
"op": Op.TILE,