blob: f4a310c1ab66e65990ac2d903572088e84f3b8ec [file] [log] [blame]
Jeremy Johnson77fc6142023-09-04 17:04:21 +01001 {
Jeremy Johnsond80ea5e2024-01-03 10:54:12 +00002 "$comment": "Copyright (c) 2023-2024, ARM Limited.",
Jeremy Johnson77fc6142023-09-04 17:04:21 +01003 "$comment": "SPDX-License-Identifier: Apache-2.0",
4 "$id": "compliance-config.schema.json",
5 "$schema": "https://json-schema.org/draft/2020-12/schema",
6 "title": "compliance-config",
7 "description": "Compliance configuration for verifying TOSA tensor data outputs from a test",
8 "type": "object",
9 "properties": {
10 "version": {
11 "description": "version string X.Y of this config data",
12 "type": "string"
13 },
14 "tensors": {
15 "type": "object",
16 "description": "dictionary of output tensors - keys are the tosa network names",
17 "patternProperties":
18 {
19 "^.*$":
20 {
21 "description": "per named tensor config for compliance checking",
22 "type": "object",
23 "properties": {
24 "mode": {
25 "description": "verifier mode EXACT, DOT_PRODUCT, ULP, REDUCE_PRODUCT, or FP_SPECIAL",
26 "type": "string"
27 },
Jeremy Johnsonbb0935f2023-09-14 16:43:48 +010028 "data_type": {
29 "description": "tensor data type, such as: BOOL, INT16, FP32",
30 "type": "string"
31 },
Jeremy Johnson77fc6142023-09-04 17:04:21 +010032 "ulp_info": {
33 "description": "info required for the ULP mode",
34 "type": "object",
35 "properties":
36 {
37 "ulp": {
Jeremy Johnsona4d907e2023-10-26 13:53:14 +010038 "description": "ulp range limit - positive float",
39 "type": "number",
Jeremy Johnsonbb0935f2023-09-14 16:43:48 +010040 "minimum": 0
Jeremy Johnson77fc6142023-09-04 17:04:21 +010041 }
42 },
43 "required": [ "ulp" ]
44 },
45 "dot_product_info": {
46 "description": "info required for the DOT_PRODUCT mode",
47 "type": "object",
48 "properties":
49 {
50 "s": {
51 "description": "test set 0 to 5 or -1 for other data",
52 "type": "integer"
53 },
54 "ks": {
55 "description": "kernel size for this dot product operation",
56 "type": "integer"
Jeremy Johnson77fc6142023-09-04 17:04:21 +010057 }
58 },
59 "additionalProperties": false,
60 "required": [
61 "s",
Jeremy Johnsonbb0935f2023-09-14 16:43:48 +010062 "ks"
Jeremy Johnson77fc6142023-09-04 17:04:21 +010063 ]
Jeremy Johnsond80ea5e2024-01-03 10:54:12 +000064 },
65 "abs_error_info": {
66 "description": "info required for the ABS_ERROR mode",
67 "type": "object",
68 "properties":
69 {
70 "lower_bound": {
71 "description": "lower bound multiplier for error bounds",
72 "type": "number"
Jerry Ge51bd4f52024-02-20 11:21:19 -080073 },
74 "normal_divisor": {
75 "description": "normal_divisor for error bounds",
76 "type": "number"
Jeremy Johnsond80ea5e2024-01-03 10:54:12 +000077 }
78 },
79 "additionalProperties": false
Jeremy Johnsonbd801962024-01-03 17:07:44 +000080 },
81 "reduce_product_info": {
82 "description": "info required for the REDUCE_PRODUCT mode",
83 "type": "object",
84 "properties":
85 {
86 "n": {
87 "description": "number of products in the operation",
88 "type": "integer"
89 }
90 },
91 "additionalProperties": false,
92 "required": [
93 "n"
94 ]
Jeremy Johnson32d0b5a2024-02-01 15:54:07 +000095 },
96 "relative_info": {
97 "description": "info required for the RELATIVE mode",
98 "type": "object",
99 "properties":
100 {
101 "max": {
102 "description": "maximum absolute input value",
103 "type": "number",
104 "minimum": 0
105 },
106 "scale": {
107 "description": "relative scaling factor",
108 "type": "number",
109 "minimum": 0
110 }
111 },
112 "additionalProperties": false,
113 "required": [
114 "max",
115 "scale"
116 ]
Jeremy Johnson77fc6142023-09-04 17:04:21 +0100117 }
Jeremy Johnson32d0b5a2024-02-01 15:54:07 +0000118
Jeremy Johnson77fc6142023-09-04 17:04:21 +0100119 },
120 "additionalProperties": false,
121 "required": [
Jeremy Johnsonbb0935f2023-09-14 16:43:48 +0100122 "mode",
123 "data_type"
Jeremy Johnson77fc6142023-09-04 17:04:21 +0100124 ]
125 }
126 }
127 }
128 },
129 "additionalProperties": false,
130 "required": [
131 "version",
132 "tensors"
133 ]
134}