From 3eafe6640614462cd450f4b67fbaa747f482a7fb Mon Sep 17 00:00:00 2001 From: Jeremy Johnson Date: Wed, 10 Jan 2024 13:13:35 +0000 Subject: Main Compliance testing for CONCAT Signed-off-by: Jeremy Johnson Change-Id: If08c560eac171124641dac66d7de9d5053db72df --- reference_model/src/generate/generate_utils.cc | 1 + verif/conformance/tosa_main_profile_ops_info.json | 7 ++++--- verif/generator/tosa_arg_gen.py | 22 ++++++++++++++-------- verif/generator/tosa_test_gen.py | 10 +++++++++- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/reference_model/src/generate/generate_utils.cc b/reference_model/src/generate/generate_utils.cc index 23ee1dc..e942a5c 100644 --- a/reference_model/src/generate/generate_utils.cc +++ b/reference_model/src/generate/generate_utils.cc @@ -45,6 +45,7 @@ NLOHMANN_JSON_SERIALIZE_ENUM(Op, { Op::Op_CAST, "CAST" }, { Op::Op_CEIL, "CEIL" }, { Op::Op_CLAMP, "CLAMP" }, + { Op::Op_CONCAT, "CONCAT" }, { Op::Op_CONV2D, "CONV2D" }, { Op::Op_EQUAL, "EQUAL" }, { Op::Op_ERF, "ERF" }, diff --git a/verif/conformance/tosa_main_profile_ops_info.json b/verif/conformance/tosa_main_profile_ops_info.json index fa9b26b..79e1c92 100644 --- a/verif/conformance/tosa_main_profile_ops_info.json +++ b/verif/conformance/tosa_main_profile_ops_info.json @@ -472,6 +472,7 @@ "profile": [ "tosa-mi" ], + "support_for": [ "lazy_data_gen" ], "generation": { "standard": { "generator_args": [ @@ -483,7 +484,7 @@ "--target-dtype", "bf16", "--fp-values-range", - "-2.0,2.0", + "-max,max", "--tensor-dim-range", "16,64", "--target-rank", @@ -503,7 +504,7 @@ "--target-dtype", "bf16", "--fp-values-range", - "-2.0,2.0", + "-max,max", "--tensor-dim-range", "1,16", "--target-rank", @@ -517,7 +518,7 @@ "--target-dtype", "fp32", "--fp-values-range", - "-2.0,2.0", + "-max,max", "--target-shape", "1,1,65534,1,1", "--target-shape", diff --git a/verif/generator/tosa_arg_gen.py b/verif/generator/tosa_arg_gen.py index bfe7f0d..e6d7df8 100644 --- a/verif/generator/tosa_arg_gen.py +++ b/verif/generator/tosa_arg_gen.py @@ -697,6 +697,14 @@ class TosaTensorValuesGen: ): # Variable inputs versus constants pCount, cCount = testGen.TOSA_OP_LIST[opName]["operands"] + if "p_count" in argsDict: + # Override for operators like CONCAT + pCount = argsDict["p_count"] + cCount = argsDict["c_count"] + assert pCount + cCount == len( + shapeList + ), "Placeholders & Constant tensors must match shapes list" + tens_ser_list = [] if ( @@ -1154,15 +1162,13 @@ class TosaTensorValuesGen: testGen, shapeList, argsDict["axis"], error_name ) - tens_ser_list = [] - tens_ser_list.extend( - testGen.buildPlaceholderTensors(shapeList[0:count], dtypeList[0:count]) - ) - tens_ser_list.extend( - testGen.buildConstTensors(shapeList[count:], dtypeList[count:]) - ) + # Override default pCount/cCount for operator + argsDict["p_count"] = count + argsDict["c_count"] = len(shapeList) - count - return TosaTensorValuesGen.TVGInfo(tens_ser_list, None) + return TosaTensorValuesGen.tvgLazyGenDefault( + testGen, opName, dtypeList, shapeList, argsDict, error_name + ) @staticmethod def tvgLogicalShift( diff --git a/verif/generator/tosa_test_gen.py b/verif/generator/tosa_test_gen.py index 7a759e9..d4dbef4 100644 --- a/verif/generator/tosa_test_gen.py +++ b/verif/generator/tosa_test_gen.py @@ -1442,7 +1442,12 @@ class TosaTestGen: attr.AxisAttribute(axis) self.ser.addOperator(op["op"], input_list, output_list, attr) - return TosaTestGen.BuildInfo(result_tensor, None) + + compliance = self.tensorComplianceMetaData( + op, inputs[0].dtype, args_dict, result_tensor, error_name + ) + + return TosaTestGen.BuildInfo(result_tensor, compliance) def build_pad( self, @@ -4145,6 +4150,9 @@ class TosaTestGen: TosaErrorValidator.evWrongOutputType, TosaErrorValidator.evWrongOutputList, ), + "data_gen": { + "fp": (gtu.DataGenType.PSEUDO_RANDOM,), + }, }, "pad": { "op": Op.PAD, -- cgit v1.2.1