diff options
Diffstat (limited to 'verif')
-rw-r--r-- | verif/conformance/tosa_main_profile_ops_info.json | 57 | ||||
-rw-r--r-- | verif/generator/tosa_test_gen.py | 15 |
2 files changed, 68 insertions, 4 deletions
diff --git a/verif/conformance/tosa_main_profile_ops_info.json b/verif/conformance/tosa_main_profile_ops_info.json index a175d3e..9d223ba 100644 --- a/verif/conformance/tosa_main_profile_ops_info.json +++ b/verif/conformance/tosa_main_profile_ops_info.json @@ -273,6 +273,63 @@ "tosa-mi" ] }, + "clamp": { + "group": "activation", + "generator_args": [ + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--target-dtype", + "bf16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "20,64", + "--target-rank", + "1", + "--target-rank", + "2", + "--target-rank", + "3" + ], + [ + "--target-dtype", + "fp32", + "--target-dtype", + "fp16", + "--target-dtype", + "bf16", + "--fp-values-range", + "-2.0,2.0", + "--tensor-dim-range", + "1,20", + "--target-rank", + "4", + "--target-rank", + "5" + ], + [ + "--target-dtype", + "fp32", + "--fp-values-range", + "-2.0,2.0", + "--target-shape", + "1,2,1,65536", + "--target-shape", + "1,3,65537,1,1" + ] + ], + "params": {}, + "permutes": [ + "shape", + "type" + ], + "profile": [ + "tosa-mi" + ] + }, "concat": { "group": "data_layout", "generator_args": [ diff --git a/verif/generator/tosa_test_gen.py b/verif/generator/tosa_test_gen.py index d799eb0..c29763b 100644 --- a/verif/generator/tosa_test_gen.py +++ b/verif/generator/tosa_test_gen.py @@ -1072,10 +1072,15 @@ class TosaTestGen: return None attr = ts.TosaSerializerAttribute() - if a.dtype in (DType.FP16, DType.BF16, DType.FP32): - attr.ClampAttribute(0, 0, min_val, max_val) + if a.dtype in (DType.BF16, DType.FP16, DType.FP32): + if a.dtype == DType.FP16: + # Non-tensor fp16 ops take fp16 values as fp32 in reference_model + min_val = min_val.astype(np.float32) + max_val = max_val.astype(np.float32) + + attr.ClampAttribute(self.ser.builder, 0, 0, min_val, max_val) else: - attr.ClampAttribute(min_val, max_val, 0, 0) + attr.ClampAttribute(self.ser.builder, min_val, max_val, 0, 0) self.ser.addOperator(op["op"], input_list, output_list, attr) return result_tens @@ -1221,7 +1226,9 @@ class TosaTestGen: result_tens = OutputShaper.padOp(self.ser, self.rng, a, padding, error_name) attr = ts.TosaSerializerAttribute() - attr.PadAttribute(padding.flatten(), pad_const_int, pad_const_float) + attr.PadAttribute( + self.ser.builder, padding.flatten(), pad_const_int, pad_const_float + ) # Invalidate Input/Output list for error if checks. input_list = [a.name] |