diff options
Diffstat (limited to 'verif')
-rw-r--r-- | verif/conformance/tosa_ext_profile_ops_info.json | 420 | ||||
-rwxr-xr-x | verif/frameworks/tosa_verif_framework_compiler_runner.py | 9 | ||||
-rw-r--r-- | verif/generator/tosa_test_gen.py | 6 |
3 files changed, 354 insertions, 81 deletions
diff --git a/verif/conformance/tosa_ext_profile_ops_info.json b/verif/conformance/tosa_ext_profile_ops_info.json index 2cb7be2..f5329b8 100644 --- a/verif/conformance/tosa_ext_profile_ops_info.json +++ b/verif/conformance/tosa_ext_profile_ops_info.json @@ -2252,7 +2252,8 @@ "const": { "group": "data_nodes", "support_for": [ - "lazy_data_gen" + "lazy_data_gen", + "stable_random_gen" ], "generation": { "tosa-bi": { @@ -2297,6 +2298,7 @@ "supports_all": [ "tosa-mi" ], + "selector": "tosa-mi", "no_negative_tests": "true", "generator_args": [ [ @@ -2307,6 +2309,8 @@ "--fp-values-range", "-max,max", "--target-rank", + "0", + "--target-rank", "1", "2", "3" @@ -2322,7 +2326,10 @@ "1,16", "--target-rank", "4", - "5" + "--target-rank", + "5", + "--target-rank", + "6" ], [ "--target-dtype", @@ -2339,6 +2346,7 @@ "supports_all": [ "tosa-ext-bf16" ], + "selector": "tosa-mi", "no_negative_tests": "true", "generator_args": [ [ @@ -2347,6 +2355,8 @@ "--fp-values-range", "-max,max", "--target-rank", + "0", + "--target-rank", "1", "2", "3" @@ -2360,7 +2370,10 @@ "1,16", "--target-rank", "4", - "5" + "--target-rank", + "5", + "--target-rank", + "6" ] ] }, @@ -2368,6 +2381,7 @@ "supports_all": [ "tosa-ext-fp8e4m3" ], + "selector": "tosa-mi", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -2391,6 +2405,7 @@ "supports_all": [ "tosa-ext-fp8e5m2" ], + "selector": "tosa-mi", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -2443,6 +2458,9 @@ "shape", "type" ] + }, + "tosa-mi": { + "generator_select": "true" } } }, @@ -2603,7 +2621,7 @@ "supports_all": [ "tosa-ext-bf16" ], - "selector": "tosa-mi", + "selector": "tosa-ext-bf16", "no_negative_tests": "true", "negative_dim_range": "1,10", "generator_args": [ @@ -2640,7 +2658,7 @@ "supports_all": [ "tosa-ext-fp8e4m3" ], - "selector": "tosa-mi", + "selector": "tosa-ext-fp8e4m3", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -2660,7 +2678,7 @@ "supports_all": [ "tosa-ext-fp8e5m2" ], - "selector": "tosa-mi", + "selector": "tosa-ext-fp8e5m2", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -2772,6 +2790,78 @@ "s" ], "maximum": 3 + }, + "tosa-ext-bf16": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], + "type": [ + "bf16xbf16" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-fp8e4m3": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], + "type": [ + "f8e4m3xf8e4m3" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-fp8e5m2": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], + "type": [ + "f8e5m2xf8e5m2" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 } } }, @@ -2884,7 +2974,7 @@ "supports_all": [ "tosa-ext-bf16" ], - "selector": "tosa-mi", + "selector": "tosa-ext-bf16", "no_negative_tests": "true", "negative_dim_range": "1,10", "generator_args": [ @@ -2906,7 +2996,7 @@ "supports_all": [ "tosa-ext-fp8e4m3" ], - "selector": "tosa-mi", + "selector": "tosa-ext-fp8e4m3", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -2929,7 +3019,7 @@ "supports_all": [ "tosa-ext-fp8e5m2" ], - "selector": "tosa-mi", + "selector": "tosa-ext-fp8e5m2", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -3039,21 +3129,95 @@ "all": "true" }, "tosa-mi": { - "params": { - "shape": [], - "type": [], - "kernel": [], - "stride": [], - "pad": [], - "dilation": [] - }, + "generator_select": "true", "permutes": [ - "kernel", "shape", "type", - "pad", - "stride" - ] + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0, 0, 0)" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-bf16": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0, 0, 0)" + ], + "type": [ + "bf16xbf16" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-fp8e4m3": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0, 0, 0)" + ], + "type": [ + "f8e4m3xf8e4m3" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-fp8e5m2": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0, 0, 0)" + ], + "type": [ + "f8e5m2xf8e5m2" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 } } }, @@ -3368,58 +3532,67 @@ "maximum": 3 }, "tosa-ext-bf16": { - "params": { - "shape": [], + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], "type": [ "bf16xbf16" - ], - "kernel": [], - "stride": [], - "pad": [], - "dilation": [] + ] }, - "permutes": [ - "kernel", - "shape", - "type", - "pad" - ] + "maximum": 3 }, "tosa-ext-fp8e4m3": { - "params": { - "shape": [], + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], "type": [ "f8e4m3xf8e4m3" - ], - "kernel": [], - "stride": [], - "pad": [], - "dilation": [] + ] }, - "permutes": [ - "kernel", - "shape", - "type", - "pad" - ] + "maximum": 3 }, "tosa-ext-fp8e5m2": { - "params": { - "shape": [], + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], "type": [ "f8e5m2xf8e5m2" - ], - "kernel": [], - "stride": [], - "pad": [], - "dilation": [] + ] }, - "permutes": [ - "kernel", - "shape", - "type", - "pad" - ] + "maximum": 3 } } }, @@ -4542,6 +4715,7 @@ "tosa-ext-bf16" ], "no_negative_tests": "true", + "selector": "tosa-mi", "generator_args": [ [ "--target-dtype", @@ -4575,13 +4749,18 @@ "shape", "type" ] + }, + "tosa-mi": { + "generator_select": "true" } } }, "identity": { "group": "data_nodes", "support_for": [ - "lazy_data_gen" + "lazy_data_gen", + "stable_random_gen", + "random_const_inputs" ], "generation": { "tosa-bi": { @@ -4630,6 +4809,7 @@ "supports_all": [ "tosa-mi" ], + "selector": "tosa-mi", "no_negative_tests": "true", "generator_args": [ [ @@ -4641,6 +4821,8 @@ "--tensor-dim-range", "1,67", "--target-rank", + "0", + "--target-rank", "1", "2", "3" @@ -4655,7 +4837,10 @@ "1,19", "--target-rank", "4", - "5" + "--target-rank", + "5", + "--target-rank", + "6" ], [ "--target-dtype", @@ -4682,6 +4867,8 @@ "--tensor-dim-range", "1,67", "--target-rank", + "0", + "--target-rank", "1", "2", "3" @@ -4695,7 +4882,10 @@ "1,19", "--target-rank", "4", - "5" + "--target-rank", + "5", + "--target-rank", + "6" ] ] }, @@ -10219,7 +10409,7 @@ "supports_all": [ "tosa-ext-bf16" ], - "selector": "tosa-mi", + "selector": "tosa-ext-bf16", "no_negative_tests": "true", "negative_dim_range": "1,10", "generator_args": [ @@ -10241,7 +10431,7 @@ "supports_all": [ "tosa-ext-fp8e4m3" ], - "selector": "tosa-mi", + "selector": "tosa-ext-fp8e4m3", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -10266,7 +10456,7 @@ "supports_all": [ "tosa-ext-fp8e5m2" ], - "selector": "tosa-mi", + "selector": "tosa-ext-fp8e5m2", "no_negative_tests": "true", "from_version": "v0.100.0", "generator_args": [ @@ -10332,20 +10522,98 @@ "all": "true" }, "tosa-mi": { - "params": { - "shape": [], - "type": [], - "kernel": [], - "stride": [], - "pad": [], - "out_shape": [] - }, + "generator_select": "true", "permutes": [ "shape", "type", + "kernel", + "acc_type" + ], + "full_params": [ "stride", - "pad" - ] + "out_shape" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-bf16": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "out_shape" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], + "type": [ + "bf16xbf16" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-fp8e4m3": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "out_shape" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], + "type": [ + "f8e4m3xf8e4m3" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + }, + "tosa-ext-fp8e5m2": { + "generator_select": "true", + "permutes": [ + "shape", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "out_shape" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ], + "type": [ + "f8e5m2xf8e5m2" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 } } }, diff --git a/verif/frameworks/tosa_verif_framework_compiler_runner.py b/verif/frameworks/tosa_verif_framework_compiler_runner.py index 86e3c01..070df15 100755 --- a/verif/frameworks/tosa_verif_framework_compiler_runner.py +++ b/verif/frameworks/tosa_verif_framework_compiler_runner.py @@ -324,7 +324,7 @@ def compile_dynamic_model( def convert_shape_tuple_to_string(tup): string = "" for dim in tup: - string = string + str(dim) + "," + string = string + str(dim) + "x" # skip the last `,` character. return string[0:-1] @@ -332,7 +332,7 @@ def compile_dynamic_model( if not isinstance(shape, tuple): raise Exception("Only single input is supported currently") - arg0_argument = '"arg0=' + convert_shape_tuple_to_string(shape) + '"' + arg0_argument = '"args=arg0:' + convert_shape_tuple_to_string(shape) + '"' compile_and_shape_infer_cmd = compiler_cmd.copy() compile_and_shape_infer_cmd.extend( @@ -725,6 +725,11 @@ def run_test(args, test_path, framework): ref_model_result_files = list((test_path / flatbuffer_dir).glob("ref_model_*.npy")) ref_model_result = np.load(ref_model_result_files[0]) + if np.issubdtype(tf_result.dtype, np.unsignedinteger) and ( + tf_result.dtype != ref_model_result.dtype + ): + ref_model_result = ref_model_result.astype(tf_result.dtype) + assert ( tf_result.dtype == ref_model_result.dtype ), f"Numpy type mismatch {tf_result.dtype} != {ref_model_result.dtype} when comparing result" diff --git a/verif/generator/tosa_test_gen.py b/verif/generator/tosa_test_gen.py index beb3da3..d982508 100644 --- a/verif/generator/tosa_test_gen.py +++ b/verif/generator/tosa_test_gen.py @@ -2062,7 +2062,7 @@ class TosaTestGen: attr = ts.TosaSerializerAttribute() # write empty scale/offset/border into ResizeAttribute - attr.ResizeAttribute([], [], [], mode) + attr.ResizeAttribute(mode) self.ser.addOperator(op["op"], input_list, output_list, attr) compliance = self.tensorComplianceMetaData( @@ -4707,7 +4707,7 @@ class TosaTestGen: TosaArgGen.agNone, ), "types": TYPE_FIB + [DType.INT48, DType.FP8E4M3, DType.FP8E5M2], - "data_gen": PSEUDO_RANDOM_DATAGEN, + "data_gen": PR_FS_DATAGEN, }, "identity": { "op": Op.IDENTITY, @@ -4719,7 +4719,7 @@ class TosaTestGen: TosaArgGen.agNone, ), "types": TYPE_FIB + [DType.INT4, DType.INT48], - "data_gen": PSEUDO_RANDOM_DATAGEN, + "data_gen": PR_FS_DATAGEN, }, # Scatter/Gather "gather": { |