aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Johnson <jeremy.johnson@arm.com>2024-01-10 13:13:35 +0000
committerJeremy Johnson <jeremy.johnson@arm.com>2024-01-17 14:23:50 +0000
commit3eafe6640614462cd450f4b67fbaa747f482a7fb (patch)
tree61fddb6ad731a14f6b46b8e7220fae76a8624c28
parent7b9abced233128f4128d84294a0f9d6b432a24cf (diff)
downloadreference_model-3eafe6640614462cd450f4b67fbaa747f482a7fb.tar.gz
Main Compliance testing for CONCAT
Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: If08c560eac171124641dac66d7de9d5053db72df
-rw-r--r--reference_model/src/generate/generate_utils.cc1
-rw-r--r--verif/conformance/tosa_main_profile_ops_info.json7
-rw-r--r--verif/generator/tosa_arg_gen.py22
-rw-r--r--verif/generator/tosa_test_gen.py10
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,