From 3eec59b22128462eef668dbfb770c6924aeee40f Mon Sep 17 00:00:00 2001 From: Won Jeon Date: Mon, 11 Mar 2024 22:17:13 +0000 Subject: Add extensions & profiles support to conformance generator Support existing conformance profiles to ease transition New combined config tosa_ext_profile_ops_info.json that supports extension selection Signed-off-by: Won Jeon Signed-off-by: Jeremy Johnson Change-Id: Ic04696a01d619d191b9c8abc4ef7f4e8b86c52ca --- scripts/convert2conformance/convert2conformance.py | 8 +- verif/conformance/tosa_base_profile_ops_info.json | 10 +- verif/conformance/tosa_ext_profile_ops_info.json | 10880 +++++++++++++++++++ verif/conformance/tosa_profiles.py | 34 + .../tosa_verif_conformance_generator.py | 281 +- 5 files changed, 11079 insertions(+), 134 deletions(-) create mode 100644 verif/conformance/tosa_ext_profile_ops_info.json create mode 100644 verif/conformance/tosa_profiles.py diff --git a/scripts/convert2conformance/convert2conformance.py b/scripts/convert2conformance/convert2conformance.py index 4a006d6..6fe1bc8 100755 --- a/scripts/convert2conformance/convert2conformance.py +++ b/scripts/convert2conformance/convert2conformance.py @@ -15,6 +15,7 @@ import shutil from pathlib import Path from typing import Optional +from conformance.tosa_profiles import TosaProfiles from json2fbbin.json2fbbin import fbbin_to_json from json2numpy.json2numpy import npy_to_json from schemavalidation.schemavalidation import TestDescSchemaValidator @@ -28,7 +29,8 @@ NAME_DESC_FILENAME = "desc.json" NAME_CONFORMANCE_RESULT_PREFIX = "Conformance-" NAME_REFMODEL_RUN_RESULT_SUFFIX = ".runner.tosa_refmodel_sut_run.npy" -PROFILES_LIST = ["tosa-bi", "tosa-mi"] +PROFILES_LIST = TosaProfiles.profiles() +EXTENSIONS_LIST = TosaProfiles.extensions() OUTPUT_TYPE_JSON = "json" OUTPUT_TYPE_BINARY = "binary" @@ -93,10 +95,10 @@ def parse_args(argv): parser.add_argument( "--profile", dest="profile", - choices=PROFILES_LIST, + choices=PROFILES_LIST + EXTENSIONS_LIST, action="append", required=True, - help="Profiles this test is suitable for. May be repeated", + help="Profiles and extensions this test is suitable for. May be repeated", ) parser.add_argument( "--tag", diff --git a/verif/conformance/tosa_base_profile_ops_info.json b/verif/conformance/tosa_base_profile_ops_info.json index 4232851..a26c4a7 100644 --- a/verif/conformance/tosa_base_profile_ops_info.json +++ b/verif/conformance/tosa_base_profile_ops_info.json @@ -358,7 +358,8 @@ "int16", "--tensor-dim-range", "3,10", - "--level-8k-sizes" ] + "--level-8k-sizes" + ] ] } }, @@ -1029,8 +1030,7 @@ "selection": { "default": { "params": {}, - "permutes": [ - ] + "permutes": [] } } }, @@ -1173,8 +1173,7 @@ "selection": { "default": { "params": {}, - "permutes": [ - ] + "permutes": [] } } }, @@ -1452,7 +1451,6 @@ "8k_level": { "from_version": "v0.80.0", "no_negative_tests": "true", - "selector": "8k_level", "generator_args": [ [ "--target-dtype", diff --git a/verif/conformance/tosa_ext_profile_ops_info.json b/verif/conformance/tosa_ext_profile_ops_info.json new file mode 100644 index 0000000..9ca19db --- /dev/null +++ b/verif/conformance/tosa_ext_profile_ops_info.json @@ -0,0 +1,10880 @@ +{ + "abs": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "30,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65531,2,1", + "--target-shape", + "65538,1,1,1" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "add": { + "group": "ew_binary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "2,1,1,65532", + "--target-shape", + "65542,2,1,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "add_shape": { + "group": "shape", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "shape", + "--tensor-dim-range", + "1,16", + "--target-rank", + "1" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape" + ] + } + } + }, + "argmax": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,32", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.70.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,32", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,3,65535,1", + "--target-shape", + "1,65537,1,2", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,32", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,32", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level_ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "from_version": "v0.70.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "arithmetic_right_shift": { + "group": "ew_binary", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "rounding" + ] + } + } + }, + "avg_pool2d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-shape", + "1,49,42,28", + "--target-shape", + "1,11,44,3", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65535,5,1", + "--target-shape", + "1,3,65537,1", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "3,10", + "--level-8k-sizes" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "4,11,7,39", + "--target-shape", + "5,21,36,17", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,2,65533,2", + "--target-shape", + "1,65539,2,1", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "4,11,7,39", + "--target-shape", + "5,21,36,17", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-shape", + "1,49,42,28", + "--target-shape", + "1,11,44,3", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "3,10", + "--level-8k-sizes" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": { + "shape": [], + "type": [ + "i8", + "i16" + ], + "kernel": [], + "stride": [], + "pad": [] + }, + "permutes": [ + "shape", + "type", + "pad" + ] + }, + "tosa-mi": { + "params": {}, + "permutes": [ + "shape", + "type" + ], + "sparsity": { + "pad": 17 + } + }, + "8k_level": { + "all": "true" + } + } + }, + "bitwise_and": { + "group": "ew_binary", + "generation": { + "standard": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65536,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "bitwise_not": { + "group": "ew_unary", + "generation": { + "standard": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "2,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65537,1", + "--target-shape", + "1,65538,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "bitwise_or": { + "group": "ew_binary", + "generation": { + "standard": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "3,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65538,1", + "--target-shape", + "1,65537,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "bitwise_xor": { + "group": "ew_binary", + "generation": { + "standard": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "4,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65536,1", + "--target-shape", + "1,65536,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "cast": { + "group": "type_conversion", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "bool", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65535,1,1", + "--target-shape", + "1,65538,1,2" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,1,65533,1", + "--target-shape", + "2,65538,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-ext-bf16", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "bf16", + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "bf16", + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-bf16-fp8e4m3": { + "supports_all": [ + "tosa-ext-bf16", + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-ext-bf16-fp8e4m3", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-bf16-fp8e5m2": { + "supports_all": [ + "tosa-ext-bf16", + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-ext-bf16-fp8e5m2", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "selector": "tosa-ext-fp8e4m3", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--target-dtype", + "fp16", + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-ext-fp8e5m2", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--target-dtype", + "fp16", + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": { + "shape": [], + "type": [], + "output_type": [ + "outi8", + "outi16", + "outi32", + "outb" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_out(f16|f32)" + ] + }, + "tosa-mi": { + "params": { + "shape": [], + "type": [], + "output_type": [ + "outi8", + "outi16", + "outi32", + "outf16", + "outf32" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(b|i8|i16|i32|bf16|f8e4m3|f8e5m2)_out(b|i8|i16|i32|bf16|f8e4m3|f8e5m2)" + ] + }, + "tosa-ext-bf16": { + "params": { + "shape": [], + "type": [], + "output_type": [ + "outi8", + "outi16", + "outi32", + "outf32", + "outbf16" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(b|i8|i16|i32|f16|f32)_out(b|i8|i16|i32|f16|f32)", + "^((?!ERRORIF).)*_bf16_out(b|f16|f8e4m3|f8e5m2)", + "^((?!ERRORIF).)*_(b|f16|f8e4m3|f8e5m2)_outbf16" + ] + }, + "tosa-ext-fp8e4m3": { + "params": { + "shape": [], + "type": [], + "output_type": [ + "outf16", + "outf32", + "outf8e4m3" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(b|i8|i16|i32|f16|bf16|f32)_out(b|i8|i16|i32|f16|bf16|f32|f8e5m2)", + "^((?!ERRORIF).)*_f8e4m3_out(b|i8|i16|i32|bf16|f8e4m3|f8e5m2)", + "^((?!ERRORIF).)*_(b|i8|i16|i32|bf16|f8e4m3|f8e5m2)_outf8e4m3" + ] + }, + "tosa-ext-fp8e5m2": { + "params": { + "shape": [], + "type": [], + "output_type": [ + "outf16", + "outf32", + "outf8e5m2" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(b|i8|i16|i32|f16|bf16|f32)_out(b|i8|i16|i32|f16|bf16|f32|f8e4m3)", + "^((?!ERRORIF).)*_f8e5m2_out(b|i8|i16|i32|bf16|f8e4m3|f8e5m2)", + "^((?!ERRORIF).)*_(b|i8|i16|i32|bf16|f8e4m3|f8e5m2)_outf8e5m2" + ] + }, + "tosa-ext-bf16-fp8e4m3": { + "params": { + "shape": [], + "type": [], + "output_type": [ + "outf8e4m3", + "outbf16" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(b|i8|i16|f16|f32|f8e5m2)_out(b|i8|i16|i32|f16|f32|f8e5m2)", + "^((?!ERRORIF).)*_(bf16|f8e4m3)_out(b|i8|i16|i32|f16|f32|f8e5m2)", + "^((?!ERRORIF).)*_(b|i8 d|i16|i32|f16|f32|f8e5m2)_out(bf16|f8e4m3)" + ] + }, + "tosa-ext-bf16-fp8e5m2": { + "params": { + "shape": [], + "type": [], + "output_type": [ + "outf8e5m2", + "outbf16" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(b|i8|i16|f16|f32|f8e4m3)_out(b|i8|i16|i32|f16|f32|f8e4m3)", + "^((?!ERRORIF).)*_(bf16|f8e5m2)_out(b|i8|i16|i32|f16|f32|f8e4m3)", + "^((?!ERRORIF).)*_(b|i8 d|i16|i32|f16|f32|f8e4m3)_out(bf16|f8e5m2)" + ] + } + } + }, + "ceil": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "24,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "2,1,65530,1", + "--target-shape", + "1,1,65539,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "4,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "clamp": { + "group": "activation", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "20,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,20", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,1,65536", + "--target-shape", + "1,3,65537,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "20,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,20", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,2,1,65536", + "--target-shape", + "1,3,65537,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "20,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,20", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "20,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,20", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "clz": { + "group": "ew_unary", + "generation": { + "standard": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "concat": { + "group": "data_layout", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-const-inputs-concat", + "3" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5", + "--num-const-inputs-concat", + "1" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-const-inputs-concat", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5", + "--num-const-inputs-concat", + "1" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65535,1,1", + "--target-shape", + "1,65538,1,2", + "--num-const-inputs-concat", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-const-inputs-concat", + "3" + ], + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5", + "--num-const-inputs-concat", + "1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6", + "--num-const-inputs-concat", + "2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-const-inputs-concat", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5", + "--num-const-inputs-concat", + "1" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65534,1,1", + "--target-shape", + "1,65537,1,2", + "--num-const-inputs-concat", + "2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-const-inputs-concat", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5", + "--num-const-inputs-concat", + "1" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "concat_shape": { + "group": "shape", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "shape", + "--target-rank", + "1", + "--target-shape", + "1", + "--num-const-inputs-concat", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [] + } + } + }, + "cond_if": { + "group": "control_flow", + "gen_filter": "^cond_if", + "generation": { + "standard": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "3,22,17,1,2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "variant", + "shape", + "cond" + ] + } + } + }, + "const": { + "group": "data_nodes", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "bool", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65537,1,1", + "--target-shape", + "1,65530,1,2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65540,1,1,1", + "--target-shape", + "1,2,1,65529" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int48", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int48", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "const_shape": { + "group": "shape", + "generation": { + "standard": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "shape", + "--target-rank", + "1", + "--target-shape", + "1" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [] + } + } + }, + "conv2d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen", + "stable_random_gen" + ], + "gen_filter": "^conv2d", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-shape", + "1,49,42,28", + "--target-shape", + "1,11,44,13", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65535,3,1", + "--target-shape", + "1,2,65536,1", + "--max-conv-dilation", + "1", + "--tensor-dim-range", + "1,8", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-ext-int16", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-shape", + "1,49,42,28", + "--target-shape", + "1,11,44,13", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "2,5", + "--level-8k-sizes" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,34,19,27", + "--target-shape", + "1,16,51,7", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65537,1,3", + "--target-shape", + "1,2,65530,2", + "--tensor-dim-range", + "1,16", + "--max-conv-dilation", + "1", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--conv-kernel", + "7,7", + "--conv-kernel", + "9,9", + "--target-shape", + "1,127,127,1", + "--target-shape", + "1,256,256,1", + "--target-shape", + "1,1080,720,1", + "--tensor-dim-range", + "1,8" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,34,19,27", + "--target-shape", + "1,16,51,7", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--conv-kernel", + "7,7", + "--conv-kernel", + "9,9", + "--target-shape", + "1,127,127,1", + "--target-shape", + "1,256,256,1", + "--target-shape", + "1,1080,720,1", + "--tensor-dim-range", + "1,8" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level_ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "2,5", + "--level-8k-sizes" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": { + "shape": [], + "type": [ + "i8xi8" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + }, + "tosa-ext-int16": { + "params": { + "shape": [], + "type": [ + "i16xi8" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + }, + "tosa-ext-int4": { + "params": { + "shape": [], + "type": [ + "i8xi4" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + }, + "8k_level": { + "all": "true" + }, + "tosa-mi": { + "generator_select": "true", + "permutes": [ + "shape", + "type", + "kernel", + "acc_type" + ], + "full_params": [ + "stride", + "dilation" + ], + "specifics": { + "pad": [ + "(0, 0, 0, 0)" + ] + }, + "groups": [ + "s" + ], + "maximum": 3 + } + } + }, + "conv3d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "gen_filter": "^conv3d", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-shape", + "1,9,21,14,1", + "--target-shape", + "1,9,11,12,3", + "--tensor-dim-range", + "1,4", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65535,2,1", + "--target-shape", + "1,1,2,65536,1", + "--max-conv-dilation", + "1", + "--tensor-dim-range", + "1,2", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "2,5", + "--level-8k-sizes" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "2,5", + "--level-8k-sizes" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,7,18,5,4", + "--target-shape", + "1,6,12,17,3", + "--tensor-dim-range", + "1,4", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,2,65539,1,2", + "--target-shape", + "1,65532,1,1,3", + "--tensor-dim-range", + "1,2", + "--max-conv-dilation", + "1", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,7,18,5,4", + "--target-shape", + "1,6,12,17,3", + "--tensor-dim-range", + "1,4", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,7,18,5,4", + "--target-shape", + "1,6,12,17,3", + "--tensor-dim-range", + "1,4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,7,18,5,4", + "--target-shape", + "1,6,12,17,3", + "--tensor-dim-range", + "1,4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-ext-int16", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-shape", + "1,9,21,14,1", + "--target-shape", + "1,9,11,12,3", + "--tensor-dim-range", + "1,4", + "--allow-pooling-and-conv-oversizes" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": { + "shape": [], + "type": [ + "i8xi8" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad", + "stride" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(i16xi8|i8xi4)_.*" + ] + }, + "tosa-ext-int16": { + "params": { + "shape": [], + "type": [ + "i16xi8" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad", + "stride" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(i8xi8|i8xi4)_.*" + ] + }, + "tosa-ext-int4": { + "params": { + "shape": [], + "type": [ + "i8xi4" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad", + "stride" + ], + "exclude_patterns": [ + "^((?!ERRORIF).)*_(i8xi8|i16xi8)_.*" + ] + }, + "8k_level": { + "all": "true" + }, + "tosa-mi": { + "params": { + "shape": [], + "type": [], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad", + "stride" + ] + } + } + }, + "cos": { + "group": "ew_unary", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "2,1,65537,1", + "--target-shape", + "3,1,65539,2,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + } + }, + "selection": { + "tosa-mi": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "depthwise_conv2d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "gen_filter": "^depthwise_conv2d", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-shape", + "1,9,44,3", + "--target-shape", + "1,11,33,4", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65532,2,1", + "--target-shape", + "1,4,65537,1", + "--max-conv-dilation", + "1", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--tensor-dim-range", + "2,5", + "--level-8k-sizes" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,17,31,4", + "--target-shape", + "1,37,11,5", + "--tensor-dim-range", + "1,32", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65531,2", + "--target-shape", + "1,65540,1,3", + "--tensor-dim-range", + "1,16", + "--max-conv-dilation", + "1", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-ext-bf16", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,17,31,4", + "--target-shape", + "1,37,11,5", + "--tensor-dim-range", + "1,32", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-ext-fp8e4m3", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-ext-fp8e5m2", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-shape", + "1,9,44,3", + "--target-shape", + "1,11,33,4", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": { + "shape": [], + "type": [ + "i8xi8", + "i16xi8", + "i8xi4" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + }, + "8k_level": { + "all": "true" + }, + "tosa-mi": { + "params": { + "shape": [], + "type": [ + "f16xf16", + "f32xf32" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + }, + "tosa-ext-bf16": { + "params": { + "shape": [], + "type": [ + "bf16xbf16" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + }, + "tosa-ext-fp8e4m3": { + "params": { + "shape": [], + "type": [ + "f8e4m3xf8e4m3" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + }, + "tosa-ext-fp8e5m2": { + "params": { + "shape": [], + "type": [ + "f8e5m2xf8e5m2" + ], + "kernel": [], + "stride": [], + "pad": [], + "dilation": [] + }, + "permutes": [ + "kernel", + "shape", + "type", + "pad" + ] + } + } + }, + "dim": { + "group": "data_layout", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "from_version": "v0.80.0", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.80.0", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "from_version": "v0.80.0", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "1,65", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "from_version": "v0.80.0", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "1,65", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "div_shape": { + "group": "shape", + "generation": { + "tosa-bi-mi": { + "supports_all": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "shape", + "--tensor-dim-range", + "1,16", + "--target-rank", + "1" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape" + ] + } + } + }, + "equal": { + "group": "comparison", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65501,1", + "--target-shape", + "1,65541,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "18,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,18", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,2,65550", + "--target-shape", + "1,4,65530,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "18,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "erf": { + "group": "activation", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-4.0,4.0", + "--tensor-dim-range", + "18,60", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-4.0,4.0", + "--tensor-dim-range", + "1,24", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-4.0,4.0", + "--target-shape", + "1,65535,2,1,1", + "--target-shape", + "1,65540,1,2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-4.0,4.0", + "--tensor-dim-range", + "18,60", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-4.0,4.0", + "--tensor-dim-range", + "1,24", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "exp": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "25,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65535,4", + "--target-shape", + "2,65536,1,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "fft2d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-ext-fft": { + "supports_all": [ + "tosa-ext-fft" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,256,64", + "--target-shape", + "1,4,4096" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "inverse" + ] + } + } + }, + "floor": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "34,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65533,2", + "--target-shape", + "1,65537,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "4,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "fully_connected": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "444,1", + "--target-shape", + "3,65538", + "--tensor-dim-range", + "1,2" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "3,16", + "--target-shape", + "1,23", + "--tensor-dim-range", + "100,200" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "25,64" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "10,15", + "--target-shape", + "100,296", + "--target-shape", + "65540,2" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "35,64", + "--target-shape", + "30,16", + "--target-shape", + "100,23" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "25,64" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "35,64", + "--target-shape", + "30,16", + "--target-shape", + "100,23" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "gather": { + "group": "scatter_gather", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "4,64", + "--max-batch-size", + "64" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "5,20", + "--target-shape", + "2,65533,1", + "--target-shape", + "1,2,65533", + "--target-shape", + "5000,1,1" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "5,72", + "--max-batch-size", + "72" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "5,20", + "--target-shape", + "2,65536,1", + "--target-shape", + "1,2,65535", + "--target-shape", + "5000,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "5,72", + "--max-batch-size", + "72" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "greater": { + "group": "comparison", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "10,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65530,1", + "--target-shape", + "1,65539,1,2,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "18,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "3,65551,1,1", + "--target-shape", + "1,1,3,65531,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "18,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,18", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "greater_equal": { + "group": "comparison", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "20,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,20", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,3,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "18,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,18", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "18,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "65552,1,1,4", + "--target-shape", + "1,1,1,3,65532" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "identity": { + "group": "data_nodes", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "int48", + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,61", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "int48", + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65536,1,1", + "--target-shape", + "1,65531,1,2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,67", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,19", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65539,1,1", + "--target-shape", + "1,1,2,65529" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,67", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,19", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,61", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-int4": { + "supports_all": [ + "tosa-ext-int4" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int4", + "--tensor-dim-range", + "1,61", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int4", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "intdiv": { + "group": "ew_binary", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,65533,1", + "--target-shape", + "1,1,65539,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "log": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "35,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65530,1,2", + "--target-shape", + "3,1,65540,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "logical_and": { + "group": "ew_binary", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "bool", + "--target-shape", + "1,65538,1", + "--target-shape", + "1,2,1,65536" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "logical_left_shift": { + "group": "ew_binary", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65532,1,1", + "--target-shape", + "1,2,1,65538" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "logical_not": { + "group": "ew_unary", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "2,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "bool", + "--target-shape", + "1,65537,1", + "--target-shape", + "1,2,1,65535" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "logical_or": { + "group": "ew_binary", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "3,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,14", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "bool", + "--target-shape", + "1,65536,1", + "--target-shape", + "1,2,1,65537" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "logical_right_shift": { + "group": "ew_binary", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "25,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,25", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65540,3", + "--target-shape", + "2,1,65530,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "logical_xor": { + "group": "ew_binary", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "4,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "3,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "bool", + "--target-shape", + "1,65539,1", + "--target-shape", + "1,2,1,65534" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "matmul": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "16,64" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,16" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65532,1", + "--target-shape", + "1,2,65538", + "--target-shape", + "2000,1,1" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "13,70" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "10,19" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-2.0,2.0", + "--target-shape", + "4,65530,1", + "--target-shape", + "1,65538,3" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "13,70" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "10,19" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "16,64" + ], + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,16" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + }, + "tosa-mi": { + "all": "true" + } + } + }, + "maximum": { + "group": "ew_binary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "65531,1,2,1", + "--target-shape", + "1,1,65541,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "max_pool2d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-shape", + "1,4,75,3", + "--target-shape", + "1,11,44,1", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65535,5,1", + "--target-shape", + "1,3,65537,1", + "--target-shape", + "1,3,2,1", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "3,10", + "--level-8k-sizes" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,47,37,25", + "--target-shape", + "1,15,13,38", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65534,4,1", + "--target-shape", + "1,6,65536,1", + "--max-conv-dilation", + "1", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,47,37,25", + "--target-shape", + "1,15,13,38", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-shape", + "1,4,75,3", + "--target-shape", + "1,11,44,1", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "3,10", + "--level-8k-sizes" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": { + "shape": [], + "type": [ + "i8", + "i16" + ], + "kernel": [], + "stride": [], + "pad": [] + }, + "permutes": [ + "shape", + "type", + "pad" + ] + }, + "8k_level": { + "all": "true" + }, + "tosa-mi": { + "params": { + "shape": [], + "type": [ + "f32", + "f16", + "bf16" + ], + "stride": [], + "pad": [] + }, + "permutes": [ + "shape", + "type", + "pad" + ], + "sparsity": { + "pad": 11 + } + } + } + }, + "minimum": { + "group": "ew_binary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65531,2,1", + "--target-shape", + "1,1,1,65538" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "mul": { + "group": "ew_binary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65500,1", + "--target-shape", + "1,68539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "8k_level_bi_mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,3,65534", + "--target-shape", + "1,2,1,65541,1" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": {}, + "permutes": [ + "shape", + "type", + "perm", + "shift" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "mul_shape": { + "group": "shape", + "generation": { + "standard": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "shape", + "--tensor-dim-range", + "1,16", + "--target-rank", + "1" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape" + ] + } + } + }, + "negate": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,22", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "3,1,65540,1", + "--target-shape", + "1,1,2,1,65531" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "17,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,22", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65541,3,1", + "--target-shape", + "1,2,1,65532,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "17,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,22", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "pad": { + "group": "data_layout", + "support_for": [ + "lazy_data_gen", + "stable_random_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,16", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65537,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,65", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,11", + "--target-rank", + "4", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,65", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,11", + "--target-rank", + "4", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "extra": { + "supports_all": [ + "tosa-mi" + ], + "selector": "minimal", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65539,1" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4", + "--oversize" + ] + ] + }, + "extra-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "minimal", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65539,1" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4", + "--oversize" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": {}, + "permutes": [ + "shape", + "type" + ], + "sparsity": { + "pad": 15 + }, + "preselected": [ + { + "shape": "6", + "type": "i8", + "pad": "pad00" + } + ] + }, + "8k_level": { + "params": {}, + "permutes": [], + "sparsity": { + "pad": 3 + }, + "full_sparsity": "true" + }, + "tosa-mi": { + "generator_select": "true", + "maximum": 5, + "specifics": { + "pad": [ + "[[0 0]]", + "[[0 0], [0 0]]", + "[[0 0], [0 0], [0 0]]", + "[[0 0], [0 0], [0 0], [0 0]]", + "[[0 0], [0 0], [0 0], [0 0], [0 0]]", + "[[0 0], [0 0], [0 0], [0 0], [0 0], [0 0]]" + ] + } + }, + "minimal": { + "generator_select": "true", + "maximum": 2 + } + } + }, + "pow": { + "group": "ew_binary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "65534,3,1,1", + "--target-shape", + "2,65541,1,1,1" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "reciprocal": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "28,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65536,4", + "--target-shape", + "2,65535,1,1,1" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "reduce_all": { + "group": "reduction", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "bool", + "--target-shape", + "65530,1,1,1", + "--target-shape", + "2,65538,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "axis" + ] + } + } + }, + "reduce_any": { + "group": "reduction", + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "bool", + "--target-shape", + "65530,1,1,1", + "--target-shape", + "2,65538,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,9", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "axis" + ] + } + } + }, + "reduce_max": { + "group": "reduction", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "65530,1,1,1", + "--target-shape", + "2,65538,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,11", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,1,65531", + "--target-shape", + "1,1,65539,2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ] + ] + }, + "8k_level_mi": { + "supports_all": [ + "tosa-mi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "8k_level_ext_bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "axis" + ] + } + } + }, + "reduce_min": { + "group": "reduction", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,24", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65538,1", + "--target-shape", + "2,65535,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "2,10", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65531,1", + "--target-shape", + "1,65539,2,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ] + ] + }, + "8k_level_mi": { + "supports_all": [ + "tosa-mi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,9", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "8k_level_ext_bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,9", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "axis" + ] + } + } + }, + "reduce_product": { + "group": "reduction", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,34", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "2,65527,3,1", + "--target-shape", + "1,3,2,65541" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,34", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-mi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,11", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "axis" + ] + } + } + }, + "reduce_sum": { + "group": "reduction", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "3,65532,1,1", + "--target-shape", + "65536,1,1,2" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,12", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-rank", + "3", + "--target-rank", + "4", + "--tensor-dim-range", + "10,37", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1001", + "--target-shape", + "50,200" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "65529", + "--target-shape", + "65537,2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-rank", + "3", + "--target-rank", + "4", + "--tensor-dim-range", + "10,37", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "16001", + "--target-shape", + "16,1000", + "--target-shape", + "1,3,65529,1", + "--target-shape", + "1,65537,1,1" + ] + ] + }, + "8k_level_mi": { + "supports_all": [ + "tosa-mi" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "5,12", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "8k_level_ext_bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "from_version": "v0.80.0", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "5,12", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "axis" + ] + } + } + }, + "rescale": { + "group": "type_conversion", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "uint8", + "--target-dtype", + "uint16", + "--tensor-dim-range", + "16,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "uint8", + "--target-dtype", + "uint16", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "uint8", + "--target-dtype", + "uint16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int48", + "--tensor-dim-range", + "16,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int48", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int48", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + } + }, + "selection": { + "default": { + "params": { + "scale": [ + "sc0", + "sc0", + "sc1", + "sc1", + "sc1", + "sc1" + ], + "double_round": [ + "dr0", + "dr0", + "dr0", + "dr0", + "dr1", + "dr1" + ], + "per_channel": [ + "pc0", + "pc1", + "pc0", + "pc1", + "pc0", + "pc1", + "pc1" + ] + }, + "permutes": [ + "shape", + "type", + "output_type" + ] + } + } + }, + "reshape": { + "group": "data_layout", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-dtype", + "bool", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65535,1", + "--target-shape", + "1,65538,1,2", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level-bi-mi": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65536,1", + "--target-shape", + "1,65535,1,2", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "rank", + "perm" + ] + } + } + }, + "resize": { + "group": "image", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,3,16383,1", + "--max-resize-output-dim", + "9500" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--level-8k-sizes", + "--tensor-dim-range", + "2,10", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--level-8k-sizes", + "--tensor-dim-range", + "2,10", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1103,1,2", + "--max-resize-output-dim", + "9100" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "params": { + "offset": [], + "shape": [], + "type": [], + "mode": [], + "output_type": [], + "scale": [ + "sc2x1x3x1" + ], + "border": [ + "bor0x1" + ] + }, + "permutes": [ + "shape", + "type" + ], + "exclude_patterns": [ + ".*_ERRORIF_MaxDimExceeded_1x16584x5x1_.*" + ] + } + } + }, + "reverse": { + "group": "data_layout", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65535", + "--target-shape", + "1,65540,1,2" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,12", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "8k_level_bi_mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,12", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,48", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65537", + "--target-shape", + "1,65535,1,2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,48", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "rfft2d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "standard": { + "supports_all": [ + "tosa-ext-fft" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,16,512", + "--target-shape", + "1,8192,2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "rsqrt": { + "group": "ew_unary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "29,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,3,65541", + "--target-shape", + "65532,1,3,1,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "scatter": { + "group": "scatter_gather", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "4,64", + "--max-batch-size", + "64" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65540,1", + "--target-shape", + "1,1,65533", + "--target-shape", + "3000,7,1" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "5,56", + "--max-batch-size", + "56" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65541,1", + "--target-shape", + "1,1,65531", + "--target-shape", + "2989,6,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "5,56", + "--max-batch-size", + "56" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "select": { + "group": "ew_ternary", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65535,1", + "--target-shape", + "1,65538,1,2", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "8k_level-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,2,65534,2,1", + "--target-shape", + "1,1,65539,2", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "sigmoid": { + "group": "activation", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-16.0,16.0", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-16.0,16.0", + "--tensor-dim-range", + "1,19", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-16.0,16.0", + "--target-shape", + "1,2,65538,2,1", + "--target-shape", + "1,3,1,65533" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-16.0,16.0", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-16.0,16.0", + "--tensor-dim-range", + "1,19", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "sin": { + "group": "ew_unary", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,15", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "3,1,65534,2", + "--target-shape", + "65533,1,3,2,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "15,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "slice": { + "group": "data_layout", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level_bi_mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,1,65535,1", + "--target-shape", + "1,65538,1,2", + "--num-rand-permutations", + "2" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-2.0,2.0", + "--target-shape", + "1,1,655341,1", + "--target-shape", + "1,65539,1,1", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "perm" + ] + } + } + }, + "sub": { + "group": "ew_binary", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "1,2,65533,1", + "--target-shape", + "1,65539,1,1,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65533,3", + "--target-shape", + "1,1,2,1,65545" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "16,64", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + }, + "tosa-mi": { + "generator_select": "true" + } + } + }, + "sub_shape": { + "group": "shape", + "generation": { + "standard": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "shape", + "--tensor-dim-range", + "1,16", + "--target-rank", + "1" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape" + ] + } + } + }, + "table": { + "group": "ew_binary", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,2,65536,1", + "--target-shape", + "1,65537,1,1,3" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,10", + "--target-rank", + "6" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "16,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "1,16", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "tanh": { + "group": "activation", + "support_for": [ "lazy_data_gen", "stable_random_gen", "random_const_inputs" ], + "generation": { + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-8.0,8.0", + "--tensor-dim-range", + "18,60", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-8.0,8.0", + "--tensor-dim-range", + "1,24", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-8.0,8.0", + "--target-shape", + "1,65535,2,1,1", + "--target-shape", + "1,65540,1,2" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-8.0,8.0", + "--tensor-dim-range", + "18,60", + "--target-rank", + "0", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-8.0,8.0", + "--tensor-dim-range", + "1,24", + "--target-rank", + "4", + "--target-rank", + "5" + ] + ] + } + }, + "selection": { + "default": { + "generator_select": "true" + } + } + }, + "tile": { + "group": "data_layout", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,16", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ] + ] + }, + "8k_level_bi_mi": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bool", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "4,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "65533", + "--target-shape", + "1,2,65540,1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "4,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "65535", + "--target-shape", + "1,65543,2,1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "4,32", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--target-rank", + "4" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + }, + "transpose": { + "group": "data_layout", + "support_for": [ + "lazy_data_gen" + ], + "generation": { + "tosa-bi-mi": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "bool", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-rank", + "1", + "--target-rank", + "2", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65537,1,2", + "--target-shape", + "65535,1,1,1", + "--num-rand-permutations", + "1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-dtype", + "int16", + "--target-dtype", + "int32", + "--tensor-dim-range", + "1,10", + "--target-rank", + "5", + "--target-rank", + "6", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-rank", + "1", + "--target-rank", + "2", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,1,65539,2", + "--target-shape", + "1,1,1,65535", + "--num-rand-permutations", + "1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-rank", + "3", + "--target-rank", + "4", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3", + "--num-rand-permutations", + "2" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type", + "perm" + ] + } + } + }, + "transpose_conv2d": { + "group": "tensor", + "support_for": [ + "lazy_data_gen" + ], + "gen_filter": "^transpose_conv2d", + "generation": { + "tosa-bi": { + "supports_all": [ + "tosa-bi" + ], + "selector": "tosa-bi", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--target-shape", + "1,49,33,1", + "--target-shape", + "1,11,33,3", + "--tensor-dim-range", + "1,18", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "int8", + "--target-shape", + "1,65536,1,1", + "--tensor-dim-range", + "1,12", + "--max-conv-dilation", + "1" + ] + ] + }, + "8k_level": { + "supports_all": [ + "tosa-bi" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int8", + "--tensor-dim-range", + "2,5", + "--level-8k-sizes" + ] + ] + }, + "8k_level_ext_int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "no_negative_tests": "true", + "selector": "8k_level", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--tensor-dim-range", + "2,5", + "--level-8k-sizes" + ] + ] + }, + "tosa-mi": { + "supports_all": [ + "tosa-mi" + ], + "selector": "tosa-mi", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--fp-values-range", + "-max,max", + "--target-shape", + "10,24,9,13", + "--target-shape", + "8,14,20,5", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-max,max", + "--target-shape", + "1,65536,1,2", + "--tensor-dim-range", + "1,17", + "--max-conv-dilation", + "1" + ] + ] + }, + "tosa-ext-bf16": { + "supports_all": [ + "tosa-ext-bf16" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "negative_dim_range": "1,10", + "generator_args": [ + [ + "--target-dtype", + "bf16", + "--fp-values-range", + "-max,max", + "--target-shape", + "10,24,9,13", + "--target-shape", + "8,14,20,5", + "--tensor-dim-range", + "1,16", + "--allow-pooling-and-conv-oversizes" + ] + ] + }, + "tosa-ext-fp8e4m3": { + "supports_all": [ + "tosa-ext-fp8e4m3" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e4m3", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-shape", + "10,24,9,13", + "--target-shape", + "8,14,20,5", + "--tensor-dim-range", + "1,16", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-fp8e5m2": { + "supports_all": [ + "tosa-ext-fp8e5m2" + ], + "selector": "tosa-mi", + "no_negative_tests": "true", + "from_version": "v0.100.0", + "generator_args": [ + [ + "--target-dtype", + "fp8e5m2", + "--fp-values-range", + "-max,max", + "--tensor-dim-range", + "32,64", + "--target-shape", + "10,24,9,13", + "--target-shape", + "8,14,20,5", + "--tensor-dim-range", + "1,16", + "--num-rand-permutations", + "2" + ] + ] + }, + "tosa-ext-int16": { + "supports_all": [ + "tosa-ext-int16" + ], + "selector": "tosa-bi", + "no_negative_tests": "true", + "generator_args": [ + [ + "--target-dtype", + "int16", + "--target-shape", + "1,49,33,1", + "--target-shape", + "1,11,33,3", + "--tensor-dim-range", + "1,18", + "--allow-pooling-and-conv-oversizes" + ] + ] + } + }, + "selection": { + "tosa-bi": { + "params": { + "shape": [], + "type": [ + "i8xi8", + "i16xi8", + "i8xi4" + ], + "kernel": [], + "stride": [], + "pad": [], + "out_shape": [] + }, + "permutes": [ + "shape", + "type", + "stride", + "pad" + ] + }, + "8k_level": { + "all": "true" + }, + "tosa-mi": { + "params": { + "shape": [], + "type": [], + "kernel": [], + "stride": [], + "pad": [], + "out_shape": [] + }, + "permutes": [ + "shape", + "type", + "stride", + "pad" + ] + } + } + }, + "while_loop": { + "group": "control_flow", + "generation": { + "standard": { + "supports_any": [ + "tosa-bi", + "tosa-mi" + ], + "generator_args": [ + [ + "--target-dtype", + "int32" + ], + [ + "--target-dtype", + "int32", + "--target-shape", + "3,22,17,1,2", + "--target-shape", + "1,65537,2,1" + ] + ] + } + }, + "selection": { + "default": { + "params": {}, + "permutes": [ + "shape", + "type" + ] + } + } + } +} \ No newline at end of file diff --git a/verif/conformance/tosa_profiles.py b/verif/conformance/tosa_profiles.py new file mode 100644 index 0000000..9aa1ceb --- /dev/null +++ b/verif/conformance/tosa_profiles.py @@ -0,0 +1,34 @@ +# Copyright (c) 2024, ARM Limited. +# SPDX-License-Identifier: Apache-2.0 + + +class TosaProfiles: + TosaBI = "tosa-bi" + TosaMI = "tosa-mi" + TosaExtInt16 = "tosa-ext-int16" + TosaExtInt4 = "tosa-ext-int4" + TosaExtBF16 = "tosa-ext-bf16" + TosaExtFP8E4M3 = "tosa-ext-fp8e4m3" + TosaExtFP8E5M2 = "tosa-ext-fp8e5m2" + TosaExtFFT = "tosa-ext-fft" + TosaExtVariable = "tosa-ext-variable" + + @staticmethod + def profiles(): + return [TosaProfiles.TosaBI, TosaProfiles.TosaMI] + + @staticmethod + def extensions(): + return [ + TosaProfiles.TosaExtInt16, + TosaProfiles.TosaExtInt4, + TosaProfiles.TosaExtBF16, + TosaProfiles.TosaExtFP8E4M3, + TosaProfiles.TosaExtFP8E5M2, + TosaProfiles.TosaExtFFT, + TosaProfiles.TosaExtVariable, + ] + + @staticmethod + def all(): + return TosaProfiles.profiles() + TosaProfiles.extensions() diff --git a/verif/conformance/tosa_verif_conformance_generator.py b/verif/conformance/tosa_verif_conformance_generator.py index 433a33f..59e88bb 100644 --- a/verif/conformance/tosa_verif_conformance_generator.py +++ b/verif/conformance/tosa_verif_conformance_generator.py @@ -26,6 +26,7 @@ from pathlib import Path import conformance.model_files as cmf from conformance.test_select import Operator +from conformance.tosa_profiles import TosaProfiles from convert2conformance.convert2conformance import main as c2c_main from convert2conformance.convert2conformance import OUTPUT_TYPE_DEFAULT from convert2conformance.convert2conformance import OUTPUT_TYPES @@ -47,7 +48,7 @@ PROFILE_OPS_INFO = { "framework_tests": "tosa_main_profile_framework_ops_info.json", }, } -PROFILES_ALL = "all" +PROFILES_EXTENSIONS_ALL = "all" DEFAULT_SEED = 42 @@ -96,10 +97,22 @@ def _run_sh_command(args, cwd, full_cmd): return (rc.stdout, rc.stderr) +def _supports_for_enabled(profile_ext): + # The "supports_for" part of the config only works for MI and related extensions + # TODO - Update with TosaBI etc in future + return profile_ext in ( + TosaProfiles.TosaMI, + TosaProfiles.TosaExtFP8E4M3, + TosaProfiles.TosaExtFP8E5M2, + TosaProfiles.TosaExtBF16, + TosaProfiles.TosaExtFFT, + ) + + def build_op_tests( args, test_type, - profile, + profile_ext, operator, group, gen_args_list, @@ -115,7 +128,7 @@ def build_op_tests( Returns operator output directory """ build_tests_cmd = "tosa_verif_build_tests" - op_build_dir = args.build_dir / profile / group + op_build_dir = args.build_dir / profile_ext / group if gen_filter is None: gen_filter = f"^{operator}$" @@ -131,19 +144,19 @@ def build_op_tests( "--seed", str(args.random_seed), ] - if args.verbosity: build_cmd_base.append("-" + ("v" * args.verbosity)) if args.tests_list_file is not None: build_cmd_base.append("--list-tests") - if "lazy_data_gen" in supports and args.lazy_data_generation: - build_cmd_base.append("--lazy-data-generation") - if "stable_random_gen" in supports and not args.global_random_generation: - build_cmd_base.append("--stable-random-generation") - if "random_const_inputs" in supports: - build_cmd_base.append("--random-const-inputs") + if _supports_for_enabled(profile_ext): + if "lazy_data_gen" in supports and args.lazy_data_generation: + build_cmd_base.append("--lazy-data-generation") + if "stable_random_gen" in supports and not args.global_random_generation: + build_cmd_base.append("--stable-random-generation") + if "random_const_inputs" in supports: + build_cmd_base.append("--random-const-inputs") if "generator_select" in supports: if selector_info is None: @@ -252,11 +265,14 @@ def _get_all_tests_list(test_type, test_root_dir, operator): return tests -def generate_results(args, profile, operator, op_build_dir, supports=[], tests=None): +def generate_results( + args, profile_ext, operator, op_build_dir, supports=[], tests=None +): """Run tests on reference model and save result to the test directory.""" - if "lazy_data_gen" in supports and args.lazy_data_generation: - logger.info("Skipping running tests due to lazy data gen") - return + if _supports_for_enabled(profile_ext): + if "lazy_data_gen" in supports and args.lazy_data_generation: + logger.info("Skipping running tests due to lazy data gen") + return num_cores = args.num_cores @@ -320,11 +336,11 @@ def generate_results(args, profile, operator, op_build_dir, supports=[], tests=N def convert_tests( args, test_type, - profile, + profile_ext, operator, op_build_dir, output_dir, - op_profiles_list, + op_profiles_extensions_list, supports=[], tests=None, group=None, @@ -341,22 +357,23 @@ def convert_tests( c2c_args_base.extend(["--output-type", args.output_type]) # This op maybe in more than one profile - e.g. tosa_bi and tosa_mi # even if we are only producing tests for tosa_mi - for op_profile in op_profiles_list: + for op_profile in op_profiles_extensions_list: c2c_args_base.extend(["--profile", op_profile]) if tags is not None: for tag in tags: c2c_args_base.extend(["--tag", tag]) if args.framework_schema: c2c_args_base.extend(["--framework-schema", str(args.framework_schema)]) - if "lazy_data_gen" in supports and args.lazy_data_generation: - c2c_args_base.append("--lazy-data-generation") + if _supports_for_enabled(profile_ext): + if "lazy_data_gen" in supports and args.lazy_data_generation: + c2c_args_base.append("--lazy-data-generation") c2c_args_base.append("--output-directory") c2c_args_list = [] if not tests: tests = _get_all_tests_list(test_type, op_build_dir, operator) - logger.info(f"Converting all {profile} profile tests of type {test_type}") + logger.info(f"Converting all {profile_ext} profile tests of type {test_type}") # Controls if we copy the tests in their operator sub-directory or not output_dir_relative_pos = -1 if trim_op_subdir else -2 @@ -408,7 +425,7 @@ def convert_tests( def get_op_tests_selection( args, - profile, + profile_ext, operator, op_build_dir, selection_config, @@ -418,7 +435,11 @@ def get_op_tests_selection( """Use test picker to get subsection of tests generated.""" # Need a full copy of the config as the selector updates it config = copy.deepcopy(selection_config) - logger.info("Choosing {} tests".format(("negative" if negative else "positive"))) + logger.info( + "Choosing {} tests for {}".format( + ("negative" if negative else "positive"), profile_ext + ) + ) try: op = Operator.registry[operator]( op_build_dir, config, negative=negative, ignore_missing=ignore_missing @@ -517,15 +538,16 @@ def get_framework_tests_selection(args, operator, test_picks, op_build_dir): def parse_args(argv=None): """Parse the arguments.""" parser = argparse.ArgumentParser() - profiles = list(PROFILE_OPS_INFO.keys()) - profiles.append(PROFILES_ALL) + profiles = TosaProfiles.profiles() + profiles.append(PROFILES_EXTENSIONS_ALL) parser.add_argument( "--profile", dest="profile", choices=profiles, - default=profiles[0], + default=[TosaProfiles.TosaBI], type=str, - help=f"TOSA profile (default is {profiles[0]})", + nargs="*", + help=f"TOSA profile (default is {TosaProfiles.TosaBI})", ) parser.add_argument( "--operators", @@ -534,6 +556,15 @@ def parse_args(argv=None): nargs="*", help="The operator(s) to create tests for, if not supplied all tests will be created", ) + parser.add_argument( + "--extension", + dest="extension", + choices=TosaProfiles.extensions() + [PROFILES_EXTENSIONS_ALL], + default=[], + type=str, + nargs="*", + help="TOSA extension(s) to create tests for, if not supplied all tests will be created", + ) parser.add_argument( "--unit-tests", dest="unit_tests", @@ -657,6 +688,13 @@ def parse_args(argv=None): default=script_dir, help=f"Test parameters (ops info) JSON file directory (default is {script_dir})", ) + parser.add_argument( + "--test-params-json-config", + "--config", + dest="param_config", + type=Path, + help="Test parameters (ops info) JSON file (overrides --test-param-json-directory)", + ) parser.add_argument( "--convert-all-tests", action="store_true", @@ -739,6 +777,9 @@ def parse_args(argv=None): args.param_json_dir = args.param_json_dir.absolute() + if args.param_config is not None: + args.param_config = args.param_config.absolute() + if args.unit_tests in ["framework", "both"]: logger.warning( "DEPRECATION - Framework tests are not part of TOSA conformance testing" @@ -827,86 +868,40 @@ def main(): # TODO: For tosa-mi should really generate tosa-bi profile as well # - for now leave it as subset instead of as superset (for testing) - if args.profile == PROFILES_ALL: - profiles = list(PROFILE_OPS_INFO.keys()) + if PROFILES_EXTENSIONS_ALL in args.profile: + profiles = TosaProfiles.profiles() else: - profiles = [args.profile] + profiles = args.profile + + if PROFILES_EXTENSIONS_ALL in args.extension: + extensions = TosaProfiles.extensions() + else: + extensions = args.extension + profileExtList = profiles + extensions + profileExtDone = [] try: - for profile in profiles: - print(f"Creating conformance tests for TOSA {profile} profile") + for profile_ext in profileExtList: # Framework unit tests if args.unit_tests in ["framework", "both"]: - logger.debug("Creating FRAMEWORK unit tests") - test_picks_file = ( - args.param_json_dir / PROFILE_OPS_INFO[profile]["framework_tests"] - ) - try: - with open(test_picks_file, "r") as fd: - test_picks = json.load(fd) - except Exception as e: - logger.error( - f"Couldn't load framework tests info - {test_picks_file}: {e}" - ) - return 1 - - operators = args.operators - if not operators: - # Create tests for all the operators - operators = list(test_picks.keys()) - - root_output_dir = ( - args.output_dir / "frameworks" / "tflite" / "operators" - ) - for op in operators: - logger.info(f"FRAMEWORK OP: {op}") - if op not in test_picks: - logger.warning( - f"Framework op {op} not found in {test_picks_file} - skipping" - ) - continue - - op_profiles_list = test_picks[op]["profile"] - if ( - args.profile != PROFILES_ALL - and args.profile not in op_profiles_list - ): - # Skip this operator as not part of the profile chosen - logger.debug(f"Skipping {op} as not part of {args.profile}") - continue - - logger.debug(f"Copying and renaming {op}") - framework_test_dir = copy_rename_framework_tests( - args, op, test_picks - ) - - if args.convert_all_tests: - logger.debug("Running and converting all framework tests") - framework_tests = None # Don't select any - else: - logger.debug("Running and converting selected framework tests") - framework_tests = get_framework_tests_selection( - args, op, test_picks, framework_test_dir - ) - convert_tests( - args, - "positive", - profile, - op, - framework_test_dir, - root_output_dir, - op_profiles_list, - tests=framework_tests, - trim_op_subdir=True, - ) + logger.error("Framework test support has been removed") # Operator unit tests if args.unit_tests in ["operator", "both"]: logger.debug("Creating OPERATOR unit tests") - test_params_file = ( - args.param_json_dir - / PROFILE_OPS_INFO[profile]["operator_test_params"] - ) + if args.param_config is None: + # Fall back to old method + if profile_ext in PROFILE_OPS_INFO: + config = PROFILE_OPS_INFO[profile_ext]["operator_test_params"] + test_params_file = args.param_json_dir / config + else: + logger.error( + "Extensions not supported in old conformance configs - skipping" + ) + continue + else: + test_params_file = args.param_config + try: with open(test_params_file, "r") as fd: test_params = json.load(fd) @@ -922,6 +917,10 @@ def main(): # Create tests for all the operators operators = list(test_params.keys()) + print( + f"Creating conformance tests for TOSA {profile_ext} profile/extension" + ) + for op in operators: logger.info(f"OPERATOR: {op}") if op not in test_params: @@ -930,30 +929,49 @@ def main(): ) continue - op_profiles_list = test_params[op]["profile"] - if ( - args.profile != PROFILES_ALL - and args.profile not in op_profiles_list - ): - # Skip this operator as not part of the profile chosen - logger.debug(f"Skipping {op} as not part of {args.profile}") - continue - operator_group = test_params[op]["group"] root_output_dir = args.output_dir / "operators" - supports = ( - test_params[op]["support_for"] - if "support_for" in test_params[op] - else [] - ) - gen_filter = ( - test_params[op]["gen_filter"] - if "gen_filter" in test_params[op] - else None - ) + supports = test_params[op].get("support_for", []) + gen_filter = test_params[op].get("gen_filter", None) + old_profile_info = test_params[op].get("profile", []) # Iterate through the generation groups selecting tests from each for gen_name, gen_dict in test_params[op]["generation"].items(): + supports_any = gen_dict.get("supports_any", []) + supports_all = gen_dict.get("supports_all", []) + + # Fall back for old configs + if not supports_all and not supports_any: + if not old_profile_info: + logger.error( + f"generator {gen_name} for {op} is missing supports_all/supports_any" + ) + raise (GenConformanceError()) + else: + supports_any = old_profile_info + + supported = supports_any + supports_all + + if profile_ext not in supported: + logger.info( + f"No match for profile/extension {profile_ext} for generation group {gen_name} - skipping" + ) + continue + + if any(p in supported for p in profileExtDone): + logger.info( + f"Already used this generator {gen_name} before - skipping" + ) + continue + + if profile_ext not in supports_any and not ( + len(supports_all) > 0 + and all(p in profileExtList for p in supports_all) + ): + logger.info( + f"Profile/extension {profile_ext} is not in {supports_any} or the profiles/extensions chosen do not meet all the requirements of {supports_all} - skipping" + ) + continue if not in_version(args.test_version, gen_dict): logger.warning( @@ -993,16 +1011,23 @@ def main(): 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()) + if test_params[op]["selection"][selector_name].get( + "generator_select", False + ): + # Extend the support to include the new test selection in the generator + supports = supports + ["generator_select"] + op_build_dir = build_op_tests( args, test_type, - profile, + profile_ext, op, gen_name, gen_dict["generator_args"], @@ -1020,7 +1045,11 @@ def main(): if test_type in ["positive", "both"]: logger.info(f"Running and converting all {op} tests") generate_results( - args, profile, op, op_build_dir, supports=supports + args, + profile_ext, + op, + op_build_dir, + supports=supports, ) operator_test_list = None else: @@ -1053,7 +1082,7 @@ def main(): tests_gen, tests_gen2 = tee( get_op_tests_selection( args, - profile, + profile_ext, op, op_build_dir, selection_config, @@ -1062,7 +1091,7 @@ def main(): ) generate_results( args, - profile, + profile_ext, op, op_build_dir, supports=supports, @@ -1075,7 +1104,7 @@ def main(): operator_test_list.extend( get_op_tests_selection( args, - profile, + profile_ext, op, op_build_dir, selection_config, @@ -1086,22 +1115,24 @@ def main(): tags = ( [gen_name] if gen_name != STANDARD_GENERATOR_GROUP else None ) - output_dir = convert_tests( args, test_type, - profile, + profile_ext, op, op_build_dir, root_output_dir, - op_profiles_list, + supported, supports=supports, tests=operator_test_list, group=operator_group, tags=tags, ) if not args.keep_large_files: - check_op_tests(args, profile, op, output_dir) + check_op_tests(args, profile_ext, op, output_dir) + + profileExtDone.append(profile_ext) + except GenConformanceError: return 1 -- cgit v1.2.1