8K levels: Tensor op tests kernel/stride at 8192 maximums

Operators updated: AVG_POOL2D, MAX_POOL2D, CONV2D, CONV3D,
 DEPTHWISE_CONV2D & TRANSPOSE_CONV2D
tosa_verif_build_tests argument --level-8k-sizes used to
allow kernel/stride maximum boundary testing

Fixed bugs in height/width validator function meaning some
esixting avg_pool2d float tests need regening.

Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com>
Change-Id: I7aeab82d3bd3c49d02d54708f2c9d995cd3cf2df
diff --git a/verif/conformance/tosa_base_profile_ops_info.json b/verif/conformance/tosa_base_profile_ops_info.json
index e40ddfc..b8b80ab 100644
--- a/verif/conformance/tosa_base_profile_ops_info.json
+++ b/verif/conformance/tosa_base_profile_ops_info.json
@@ -297,6 +297,20 @@
                         "--allow-pooling-and-conv-oversizes"
                     ]
                 ]
+            },
+            "8k_level": {
+                "no_negative_tests": "true",
+                "selector": "8k_level",
+                "generator_args": [
+                    [
+                        "--target-dtype",
+                        "int8",
+                        "--target-dtype",
+                        "int16",
+                        "--tensor-dim-range",
+                        "3,10",
+                        "--level-8k-sizes"                    ]
+                ]
             }
         },
         "selection": {
@@ -316,6 +330,9 @@
                     "type",
                     "pad"
                 ]
+            },
+            "8k_level": {
+                "all": "true"
             }
         }
     },
@@ -1079,6 +1096,21 @@
                         "--allow-pooling-and-conv-oversizes"
                     ]
                 ]
+            },
+            "8k_level": {
+                "no_negative_tests": "true",
+                "selector": "8k_level",
+                "generator_args": [
+                    [
+                        "--target-dtype",
+                        "int8",
+                        "--target-dtype",
+                        "int16",
+                        "--tensor-dim-range",
+                        "2,5",
+                        "--level-8k-sizes"
+                    ]
+                ]
             }
         },
         "selection": {
@@ -1101,6 +1133,9 @@
                     "type",
                     "pad"
                 ]
+            },
+            "8k_level": {
+                "all": "true"
             }
         }
     },
@@ -1140,6 +1175,21 @@
                         "--allow-pooling-and-conv-oversizes"
                     ]
                 ]
+            },
+            "8k_level": {
+                "no_negative_tests": "true",
+                "selector": "8k_level",
+                "generator_args": [
+                    [
+                        "--target-dtype",
+                        "int8",
+                        "--target-dtype",
+                        "int16",
+                        "--tensor-dim-range",
+                        "2,5",
+                        "--level-8k-sizes"
+                    ]
+                ]
             }
         },
         "selection": {
@@ -1163,6 +1213,9 @@
                     "pad",
                     "stride"
                 ]
+            },
+            "8k_level": {
+                "all": "true"
             }
         }
     },
@@ -1202,6 +1255,21 @@
                         "--allow-pooling-and-conv-oversizes"
                     ]
                 ]
+            },
+            "8k_level": {
+                "no_negative_tests": "true",
+                "selector": "8k_level",
+                "generator_args": [
+                    [
+                        "--target-dtype",
+                        "int8",
+                        "--target-dtype",
+                        "int16",
+                        "--tensor-dim-range",
+                        "2,5",
+                        "--level-8k-sizes"
+                    ]
+                ]
             }
         },
         "selection": {
@@ -1224,6 +1292,9 @@
                     "type",
                     "pad"
                 ]
+            },
+            "8k_level": {
+                "all": "true"
             }
         }
     },
@@ -2207,6 +2278,21 @@
                         "--allow-pooling-and-conv-oversizes"
                     ]
                 ]
+            },
+            "8k_level": {
+                "no_negative_tests": "true",
+                "selector": "8k_level",
+                "generator_args": [
+                    [
+                        "--target-dtype",
+                        "int8",
+                        "--target-dtype",
+                        "int16",
+                        "--tensor-dim-range",
+                        "3,10",
+                        "--level-8k-sizes"
+                    ]
+                ]
             }
         },
         "selection": {
@@ -2226,6 +2312,9 @@
                     "type",
                     "pad"
                 ]
+            },
+            "8k_level": {
+                "all": "true"
             }
         }
     },
@@ -3588,6 +3677,21 @@
                         "1"
                     ]
                 ]
+            },
+            "8k_level": {
+                "no_negative_tests": "true",
+                "selector": "8k_level",
+                "generator_args": [
+                    [
+                        "--target-dtype",
+                        "int8",
+                        "--target-dtype",
+                        "int16",
+                        "--tensor-dim-range",
+                        "2,5",
+                        "--level-8k-sizes"
+                    ]
+                ]
             }
         },
         "selection": {
@@ -3610,6 +3714,9 @@
                     "stride",
                     "pad"
                 ]
+            },
+            "8k_level": {
+                "all": "true"
             }
         }
     },
diff --git a/verif/conformance/tosa_verif_conformance_generator.py b/verif/conformance/tosa_verif_conformance_generator.py
index 2d9dad3..ef6bfb9 100644
--- a/verif/conformance/tosa_verif_conformance_generator.py
+++ b/verif/conformance/tosa_verif_conformance_generator.py
@@ -755,7 +755,29 @@
                             gen_neg_dim_range,
                         )
 
-                        if args.convert_all_tests:
+                        # Work out which selection criteria we are using
+                        if "selector" in gen_dict:
+                            selector_name = gen_dict["selector"]
+                            if selector_name not in test_params[op]["selection"]:
+                                logger.warn(
+                                    f"Could not find {selector_name} in selection dict for {op} - using default"
+                                )
+                                selector_name = "default"
+                        else:
+                            selector_name = "default"
+                        if selector_name not in test_params[op]["selection"]:
+                            logger.error(
+                                f"Could not find {selector_name} in selection dict for {op}"
+                            )
+                            raise (GenConformanceError())
+
+                        # Selection criteria
+                        selection_config = test_params[op]["selection"][selector_name]
+
+                        if args.convert_all_tests or (
+                            "all" in selection_config
+                            and selection_config["all"] == "true"
+                        ):
                             logger.debug(f"Running and converting all {op} tests")
                             generate_results(args, profile, op, op_build_dir)
                             operator_test_list = None
@@ -763,26 +785,6 @@
                             logger.debug(
                                 f"Running and converting selection of {op} tests"
                             )
-                            # Work out which selection criteria we are using
-                            if "selector" in gen_dict:
-                                selector_name = gen_dict["selector"]
-                                if selector_name not in test_params[op]["selection"]:
-                                    logger.warn(
-                                        f"Could not find {selector_name} in selection dict for {op} - using default"
-                                    )
-                                    selector_name = "default"
-                            else:
-                                selector_name = "default"
-                            if selector_name not in test_params[op]["selection"]:
-                                logger.error(
-                                    f"Could not find {selector_name} in selection dict for {op}"
-                                )
-                                raise (GenConformanceError())
-
-                            # Selection criteria
-                            selection_config = test_params[op]["selection"][
-                                selector_name
-                            ]
                             if test_type in ["positive", "both"]:
                                 tests_gen, tests_gen2 = tee(
                                     get_op_tests_selection(