From 0c71686875618b2e11290273b7a05b88ef8a8aae Mon Sep 17 00:00:00 2001 From: Jeremy Johnson Date: Thu, 13 Apr 2023 17:18:19 +0100 Subject: 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 Change-Id: I7aeab82d3bd3c49d02d54708f2c9d995cd3cf2df --- verif/conformance/tosa_base_profile_ops_info.json | 107 +++++++++++++++++++++ .../tosa_verif_conformance_generator.py | 44 +++++---- 2 files changed, 130 insertions(+), 21 deletions(-) (limited to 'verif/conformance') 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 @@ def main(): 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 @@ def main(): 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( -- cgit v1.2.1