blob: 16b82196c34aa0c42a2784f5effbd813661d0c0e [file] [log] [blame]
Eric Kunze58098a72022-08-05 15:40:12 -07001<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE tosa SYSTEM "tosa.dtd">
3<tosa>
Eric Kunze57b171f2023-05-25 16:21:05 -07004 <version major="0" minor="70" patch="0" draft="false"/>
Eric Kunze58098a72022-08-05 15:40:12 -07005 <profiles>
6 <profile name="BI">Base Inference</profile>
7 <profile name="MI">Main Inference</profile>
8 <profile name="MT">Main Training</profile>
9 </profiles>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000010 <levels>
Dominic Symesbc72ba82023-04-24 17:08:02 +010011 <level name="none" max_rank="32" max_kernel="2147483647" max_stride="2147483647" max_scale="2048" max_log2_size="63">No level</level>
12 <level name="8K" max_rank="6" max_kernel="8192" max_stride="8192" max_scale="64" max_log2_size="31">Level 8K</level>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000013 </levels>
Eric Kunze58098a72022-08-05 15:40:12 -070014 <operators>
15 <operatorgroup name="tensor">
16 <operator>
17 <name>ARGMAX</name>
18 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +010019 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Jerry Gef28bd0a2023-03-21 18:25:00 +000020 <description>Input tensor</description>
21 <levellimit value="rank(shape1)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -080022 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -070023 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010024 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze42085e32023-01-09 11:16:51 -080025 <description>Axis in range from 0 to rank(shape1) - 1</description>
Kevin Petit5333c252023-05-16 09:08:48 +010026 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -070027 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010028 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze42085e32023-01-09 11:16:51 -080029 <description>Output tensor, with rank = rank(shape1) - 1</description>
30 <rank min="0" max="MAX_RANK - 1"/>
Eric Kunze58098a72022-08-05 15:40:12 -070031 </argument>
32 </arguments>
33 <types>
34 <type name='in_t' />
35 <type name='out_t' />
36 </types>
37 <typesupport mode="signed 8" in_t="int8_t" out_t="int32_t"/>
38 <typesupport mode="signed 16" in_t="int16_t" out_t="int32_t" />
39 <typesupport mode="fp16" in_t="fp16_t" out_t="int32_t">
40 <profile name="MI"/>
41 <profile name="MT"/>
42 </typesupport>
43 <typesupport mode="bf16" in_t="bf16_t" out_t="int32_t">
44 <profile name="MI"/>
45 <profile name="MT"/>
46 </typesupport>
47 <typesupport mode="fp32" in_t="fp32_t" out_t="int32_t">
48 <profile name="MI"/>
49 <profile name="MT"/>
50 </typesupport>
51 </operator>
52 <operator>
53 <name>AVG_POOL2D</name>
54 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +010055 <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,C]" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -080056 <description>Input tensor</description>
57 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -070058 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010059 <argument category="attribute" name="kernel" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -070060 <description>[kernel_y, kernel_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000061 <levellimit value="kernel_y" limit="MAX_KERNEL"/>
62 <levellimit value="kernel_x" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -080063 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -070064 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010065 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -070066 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000067 <levellimit value="stride_y" limit="MAX_STRIDE"/>
68 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -080069 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -070070 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010071 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -070072 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000073 <levellimit value="pad_top" limit="MAX_KERNEL"/>
74 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
75 <levellimit value="pad_left" limit="MAX_KERNEL"/>
76 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -080077 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -070078 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010079 <argument category="attribute" name="acc_size" type="tensor_t" shape="-" tensor-element-type="acc_size_t">
Eric Kunze87bf3092023-01-04 16:18:43 -080080 <description>Enumerated type, must be one of INT32, FP16, FP32, as defined in the Supported Data Types table for this operation</description>
Kevin Petit5333c252023-05-16 09:08:48 +010081 <rank min="0" max="0"/>
Eric Kunze87bf3092023-01-04 16:18:43 -080082 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010083 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -070084 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +010085 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -070086 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010087 <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -070088 <description>Output tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +010089 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -070090 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010091 <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -070092 <description>Output tensor 4D</description>
Eric Kunze42085e32023-01-09 11:16:51 -080093 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -070094 </argument>
95 </arguments>
96 <types>
97 <type name='in_out_t' />
98 <type name='acc_t' />
99 </types>
100 <typesupport mode="signed 8 with int32 accumulate" in_out_t="int8_t" acc_t="int32_t" />
101 <typesupport mode="signed 16 with int32 accumulate" in_out_t="int16_t" acc_t="int32_t" />
102 <typesupport mode="fp16 with fp16 accumulate" in_out_t="fp16_t" acc_t="fp16_t">
103 <profile name="MI"/>
104 <profile name="MT"/>
105 </typesupport>
106 <typesupport mode="fp16 with fp32 accumulate" in_out_t="fp16_t" acc_t="fp32_t">
107 <profile name="MI"/>
108 <profile name="MT"/>
109 </typesupport>
110 <typesupport mode="bf16 with fp32 accumulate" in_out_t="bf16_t" acc_t="fp32_t">
111 <profile name="MI"/>
112 <profile name="MT"/>
113 </typesupport>
114 <typesupport mode="fp32 with fp32 accumulate" in_out_t="fp32_t" acc_t="fp32_t">
115 <profile name="MI"/>
116 <profile name="MT"/>
117 </typesupport>
118 </operator>
119 <operator>
120 <name>CONV2D</name>
121 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100122 <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,IC]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700123 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800124 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700125 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100126 <argument category="input" name="weight" type="tensor_t" shape="[OC,KH,KW,IC]" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700127 <description>Weight kernel size KH x KW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000128 <levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
129 <levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800130 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700131 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100132 <argument category="input" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700133 <description>Per output channel bias data.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800134 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700135 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100136 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700137 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000138 <levellimit value="pad_top" limit="MAX_KERNEL"/>
139 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
140 <levellimit value="pad_left" limit="MAX_KERNEL"/>
141 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800142 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700143 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100144 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700145 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000146 <levellimit value="stride_y" limit="MAX_STRIDE"/>
147 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800148 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700149 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100150 <argument category="attribute" name="dilation" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700151 <description>[dilation_y, dilation_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800152 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700153 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100154 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700155 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100156 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700157 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100158 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700159 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100160 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700161 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100162 <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700163 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800164 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700165 </argument>
166 </arguments>
167 <types>
168 <type name='in_t' />
169 <type name='weight_t' />
170 <type name='out_t' />
171 </types>
172 <typesupport mode="signed 8x8 with int32 accumulate" in_t="int8_t" weight_t="int8_t" out_t="int32_t" />
173 <typesupport mode="signed 8x4 with int32 accumulate" in_t="int8_t" weight_t="int4_t" out_t="int32_t" />
174 <typesupport mode="signed 16x8 with int48 accumulate" in_t="int16_t" weight_t="int8_t" out_t="int48_t" />
175 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t">
176 <profile name="MI"/>
177 <profile name="MT"/>
178 </typesupport>
179 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp32_t">
180 <profile name="MI"/>
181 <profile name="MT"/>
182 </typesupport>
183 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="fp32_t">
184 <profile name="MI"/>
185 <profile name="MT"/>
186 </typesupport>
187 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t">
188 <profile name="MI"/>
189 <profile name="MT"/>
190 </typesupport>
191 </operator>
192 <operator>
193 <name>CONV3D</name>
194 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100195 <argument category="input" name="input" type="tensor_t" shape="[N,ID,IH,IW,IC]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700196 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800197 <rank min="5" max="5"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700198 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100199 <argument category="input" name="weight" type="tensor_t" shape="[OC,KD,KH,KW,IC]" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700200 <description>Weight kernel size KDxKHxKW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000201 <levellimit value="dilation_d * KD" limit="MAX_KERNEL"/>
202 <levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
203 <levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800204 <rank min="5" max="5"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700205 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100206 <argument category="input" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700207 <description>Per output channel bias data.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800208 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700209 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100210 <argument category="attribute" name="pad" type="tensor_t" shape="[6]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700211 <description>[pad_d0, pad_d1, pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000212 <levellimit value="pad_d0" limit="MAX_KERNEL"/>
213 <levellimit value="pad_d1" limit="MAX_KERNEL"/>
214 <levellimit value="pad_top" limit="MAX_KERNEL"/>
215 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
216 <levellimit value="pad_left" limit="MAX_KERNEL"/>
217 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800218 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700219 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100220 <argument category="attribute" name="stride" type="tensor_t" shape="[3]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700221 <description>[stride_d, stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000222 <levellimit value="stride_y" limit="MAX_STRIDE"/>
223 <levellimit value="stride_x" limit="MAX_STRIDE"/>
224 <levellimit value="stride_d" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800225 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700226 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100227 <argument category="attribute" name="dilation" type="tensor_t" shape="[3]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700228 <description>[dilation_d, dilation_y, dilation_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800229 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700230 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100231 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700232 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100233 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700234 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100235 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700236 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100237 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700238 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100239 <argument category="output" name="output" type="tensor_t" shape="[N,OD,OH,OW,OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700240 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800241 <rank min="5" max="5"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700242 </argument>
243 </arguments>
244 <types>
245 <type name='in_t' />
246 <type name='weight_t' />
247 <type name='out_t' />
248 </types>
249 <typesupport mode="signed 8x8 with int32 accumulate" in_t="int8_t" weight_t="int8_t" out_t="int32_t" />
250 <typesupport mode="signed 8x4 with int32 accumulate" in_t="int8_t" weight_t="int4_t" out_t="int32_t" />
251 <typesupport mode="signed 16x8 with int48 accumulate" in_t="int16_t" weight_t="int8_t" out_t="int48_t" />
252 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t">
253 <profile name="MI"/>
254 <profile name="MT"/>
255 </typesupport>
256 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp32_t">
257 <profile name="MI"/>
258 <profile name="MT"/>
259 </typesupport>
260 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="fp32_t">
261 <profile name="MI"/>
262 <profile name="MT"/>
263 </typesupport>
264 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t">
265 <profile name="MI"/>
266 <profile name="MT"/>
267 </typesupport>
268 </operator>
269 <operator>
270 <name>DEPTHWISE_CONV2D</name>
271 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100272 <argument category="input" name="input" type="tensor_t" shape="[N,H,W,C]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700273 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800274 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700275 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100276 <argument category="input" name="weight" type="tensor_t" shape="[KH,KW,C,M]" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700277 <description>Weight kernel size KH x KW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000278 <levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
279 <levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800280 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700281 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100282 <argument category="input" name="bias" type="tensor_t" shape="[C*M]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700283 <description>Per output channel bias data.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800284 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700285 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100286 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700287 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000288 <levellimit value="pad_top" limit="MAX_KERNEL"/>
289 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
290 <levellimit value="pad_left" limit="MAX_KERNEL"/>
291 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800292 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700293 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100294 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700295 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000296 <levellimit value="stride_y" limit="MAX_STRIDE"/>
297 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800298 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700299 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100300 <argument category="attribute" name="dilation" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700301 <description>[dilation_y, dilation_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800302 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700303 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100304 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700305 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100306 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700307 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100308 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700309 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100310 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700311 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100312 <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C*M]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700313 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800314 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700315 </argument>
316 </arguments>
317 <types>
318 <type name='in_t' />
319 <type name='weight_t' />
320 <type name='out_t' />
321 </types>
322 <typesupport mode="signed 8x8 with int32 accumulate" in_t="int8_t" weight_t="int8_t" out_t="int32_t" />
323 <typesupport mode="signed 8x4 with int32 accumulate" in_t="int8_t" weight_t="int4_t" out_t="int32_t" />
324 <typesupport mode="signed 16x8 with int48 accumulate" in_t="int16_t" weight_t="int8_t" out_t="int48_t" />
325 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t">
326 <profile name="MI"/>
327 <profile name="MT"/>
328 </typesupport>
329 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp32_t">
330 <profile name="MI"/>
331 <profile name="MT"/>
332 </typesupport>
333 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="fp32_t">
334 <profile name="MI"/>
335 <profile name="MT"/>
336 </typesupport>
337 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t">
338 <profile name="MI"/>
339 <profile name="MT"/>
340 </typesupport>
341 </operator>
342 <operator>
343 <name>FFT2D</name>
344 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100345 <argument category="input" name="input_real" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700346 <description>Real part of the complex input. H,W must be powers of two.</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000347 <levellimit value="H" limit="MAX_KERNEL"/>
348 <levellimit value="W" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800349 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700350 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100351 <argument category="input" name="input_imag" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700352 <description>Imaginary part of the complex input. H,W must be powers of two.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800353 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700354 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100355 <argument category="attribute" name="inverse" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700356 <description>false for forward FFT, true for inverse FFT</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100357 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700358 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100359 <argument category="output" name="output_real" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700360 <description>Real part of the complex output.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800361 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700362 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100363 <argument category="output" name="output_imag" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700364 <description>Imaginary part of the complex output.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800365 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700366 </argument>
367 </arguments>
368 <types>
369 <type name='in_out_t' />
370 </types>
371 <typesupport mode="fp32" in_out_t="fp32_t" >
372 <profile name="MI"/>
373 <profile name="MT"/>
374 </typesupport>
375 </operator>
376 <operator>
377 <name>FULLY_CONNECTED</name>
378 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100379 <argument category="input" name="input" type="tensor_t" shape="[N,IC]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700380 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800381 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700382 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100383 <argument category="attribute" name="weight" type="tensor_t" shape="[OC,IC]" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700384 <description>Weights</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800385 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700386 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100387 <argument category="attribute" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700388 <description>Per output channel bias data.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800389 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700390 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100391 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700392 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100393 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700394 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100395 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700396 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100397 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700398 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100399 <argument category="output" name="output" type="tensor_t" shape="[N,OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700400 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800401 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700402 </argument>
403 </arguments>
404 <types>
405 <type name='in_t' />
406 <type name='weight_t' />
407 <type name='out_t' />
408 </types>
409 <typesupport mode="signed 8x8 with int32 accumulate" in_t="int8_t" weight_t="int8_t" out_t="int32_t" />
410 <typesupport mode="signed 8x4 with int32 accumulate" in_t="int8_t" weight_t="int4_t" out_t="int32_t" />
411 <typesupport mode="signed 16x8 with int48 accumulate" in_t="int16_t" weight_t="int8_t" out_t="int48_t" />
412 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t">
413 <profile name="MI"/>
414 <profile name="MT"/>
415 </typesupport>
416 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp32_t">
417 <profile name="MI"/>
418 <profile name="MT"/>
419 </typesupport>
420 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="fp32_t">
421 <profile name="MI"/>
422 <profile name="MT"/>
423 </typesupport>
424 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t">
425 <profile name="MI"/>
426 <profile name="MT"/>
427 </typesupport>
428 </operator>
429 <operator>
430 <name>MATMUL</name>
431 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100432 <argument category="input" name="A" type="tensor_t" shape="[N,H,C]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700433 <description>Input tensor A, N matrices of size HxC</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800434 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700435 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100436 <argument category="input" name="B" type="tensor_t" shape="[N,C,W]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700437 <description>Input tensor B, N matrices of size CxW</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800438 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700439 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100440 <argument category="attribute" name="A_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700441 <description>Input tensor A zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100442 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700443 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100444 <argument category="attribute" name="B_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700445 <description>Input tensor B zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100446 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700447 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100448 <argument category="output" name="output" type="tensor_t" shape="[N,H,W]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700449 <description>Output tensor, N matrices of size HxW</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800450 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700451 </argument>
452 </arguments>
453 <types>
454 <type name='in_t' />
455 <type name='out_t' />
456 </types>
Eric Kunze74a37ca2022-08-24 08:56:58 -0700457 <typesupport mode="signed 8x8 with int32 accumulate" in_t="int8_t" out_t="int32_t" />
458 <typesupport mode="signed 16x16 with int48 accumulate" in_t="int16_t" out_t="int48_t" />
459 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" out_t="fp16_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700460 <profile name="MI"/>
461 <profile name="MT"/>
462 </typesupport>
Eric Kunze74a37ca2022-08-24 08:56:58 -0700463 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" out_t="fp32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700464 <profile name="MI"/>
465 <profile name="MT"/>
466 </typesupport>
Eric Kunze74a37ca2022-08-24 08:56:58 -0700467 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" out_t="fp32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700468 <profile name="MI"/>
469 <profile name="MT"/>
470 </typesupport>
Eric Kunze74a37ca2022-08-24 08:56:58 -0700471 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" out_t="fp32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700472 <profile name="MI"/>
473 <profile name="MT"/>
474 </typesupport>
475 </operator>
476 <operator>
477 <name>MAX_POOL2D</name>
478 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100479 <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700480 <description>Input tensor 4D</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800481 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700482 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100483 <argument category="attribute" name="kernel" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700484 <description>[kernel_y, kernel_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000485 <levellimit value="kernel_y" limit="MAX_KERNEL"/>
486 <levellimit value="kernel_x" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800487 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700488 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100489 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700490 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000491 <levellimit value="stride_y" limit="MAX_STRIDE"/>
492 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800493 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700494 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100495 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700496 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000497 <levellimit value="pad_top" limit="MAX_KERNEL"/>
498 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
499 <levellimit value="pad_left" limit="MAX_KERNEL"/>
500 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800501 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700502 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100503 <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700504 <description>Output tensor 4D</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800505 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700506 </argument>
507 </arguments>
508 <types>
509 <type name='in_out_t' />
510 </types>
511 <typesupport mode="signed 8" in_out_t="int8_t" />
512 <typesupport mode="16-bit" in_out_t="int16_t" />
513 <typesupport mode="fp16" in_out_t="fp16_t" >
514 <profile name="MI"/>
515 <profile name="MT"/>
516 </typesupport>
517 <typesupport mode="bf16" in_out_t="bf16_t" >
518 <profile name="MI"/>
519 <profile name="MT"/>
520 </typesupport>
521 <typesupport mode="fp32" in_out_t="fp32_t" >
522 <profile name="MI"/>
523 <profile name="MT"/>
524 </typesupport>
525 </operator>
526 <operator>
527 <name>RFFT2D</name>
528 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100529 <argument category="input" name="input" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700530 <description>Real input. H,W must be powers of two.</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000531 <levellimit value="H" limit="MAX_KERNEL"/>
532 <levellimit value="W" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800533 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700534 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100535 <argument category="output" name="output_real" type="tensor_t" shape="[N,H,W/2 + 1]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700536 <description>Real part of the complex output</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800537 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700538 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100539 <argument category="output" name="output_imag" type="tensor_t" shape="[N,H,W/2 + 1]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700540 <description>Imaginary part of the complex output.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800541 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700542 </argument>
543 </arguments>
544 <types>
545 <type name='in_out_t' />
546 </types>
547 <typesupport mode="fp32" in_out_t="fp32_t" >
548 <profile name="MI"/>
549 <profile name="MT"/>
550 </typesupport>
551 </operator>
552 <operator>
553 <name>TRANSPOSE_CONV2D</name>
554 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100555 <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,IC]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700556 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800557 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700558 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100559 <argument category="input" name="weight" type="tensor_t" shape="[OC,KH,KW,IC]" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700560 <description>Weight kernel size KH x KW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000561 <levellimit value="KH" limit="MAX_KERNEL"/>
562 <levellimit value="KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800563 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700564 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100565 <argument category="input" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700566 <description>Per output channel bias data.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800567 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700568 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100569 <argument category="attribute" name="out_pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700570 <description>[out_pad_top, out_pad_bottom, out_pad_left, out_pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000571 <levellimit value="out_pad_top" limit="MAX_KERNEL"/>
572 <levellimit value="out_pad_bottom" limit="MAX_KERNEL"/>
573 <levellimit value="out_pad_left" limit="MAX_KERNEL"/>
574 <levellimit value="out_pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800575 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700576 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100577 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700578 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000579 <levellimit value="stride_y" limit="MAX_STRIDE"/>
580 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800581 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700582 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100583 <argument category="attribute" name="out_shape" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700584 <description>[N,OH,OW,OC]</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800585 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700586 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100587 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700588 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100589 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700590 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100591 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700592 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100593 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700594 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100595 <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700596 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800597 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700598 </argument>
599 </arguments>
600 <types>
601 <type name='in_t' />
602 <type name='weight_t' />
603 <type name='out_t' />
604 </types>
605 <typesupport mode="signed 8x8 with int32 accumulate" in_t="int8_t" weight_t="int8_t" out_t="int32_t" />
606 <typesupport mode="signed 8x4 with int32 accumulate" in_t="int8_t" weight_t="int4_t" out_t="int32_t" />
607 <typesupport mode="signed 16x8 with int48 accumulate" in_t="int16_t" weight_t="int8_t" out_t="int48_t" />
608 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t">
609 <profile name="MI"/>
610 <profile name="MT"/>
611 </typesupport>
612 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp32_t">
613 <profile name="MI"/>
614 <profile name="MT"/>
615 </typesupport>
616 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="fp32_t">
617 <profile name="MI"/>
618 <profile name="MT"/>
619 </typesupport>
620 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t">
621 <profile name="MI"/>
622 <profile name="MT"/>
623 </typesupport>
624 </operator>
625 </operatorgroup>
626 <operatorgroup name="activation">
627 <operator>
628 <name>CLAMP</name>
629 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100630 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700631 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000632 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800633 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700634 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100635 <argument category="attribute" name="min_val" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700636 <description>Minimum clip value</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100637 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700638 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100639 <argument category="attribute" name="max_val" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700640 <description>Maximum clip value</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100641 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700642 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100643 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700644 <description>Output tensor of same type and shape as input</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800645 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700646 </argument>
647 </arguments>
648 <types>
649 <type name='in_out_t'/>
650 </types>
651 <typesupport mode="signed 8" in_out_t="int8_t"/>
652 <typesupport mode="signed 16" in_out_t="int16_t"/>
653 <typesupport mode="fp16" in_out_t="fp16_t">
654 <profile name="MI"/>
655 <profile name="MT"/>
656 </typesupport>
657 <typesupport mode="bf16" in_out_t="bf16_t">
658 <profile name="MI"/>
659 <profile name="MT"/>
660 </typesupport>
661 <typesupport mode="fp32" in_out_t="fp32_t">
662 <profile name="MI"/>
663 <profile name="MT"/>
664 </typesupport>
665 </operator>
666 <operator>
667 <name>SIGMOID</name>
668 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100669 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700670 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000671 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800672 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700673 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100674 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700675 <description>Output tensor of same type and shape as input</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800676 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700677 </argument>
678 </arguments>
679 <types>
680 <type name='in_out_t'/>
681 </types>
682 <typesupport mode="fp16" in_out_t="fp16_t">
683 <profile name="MI"/>
684 <profile name="MT"/>
685 </typesupport>
686 <typesupport mode="bf16" in_out_t="bf16_t">
687 <profile name="MI"/>
688 <profile name="MT"/>
689 </typesupport>
690 <typesupport mode="fp32" in_out_t="fp32_t">
691 <profile name="MI"/>
692 <profile name="MT"/>
693 </typesupport>
694 </operator>
695 <operator>
696 <name>TANH</name>
697 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100698 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700699 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000700 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800701 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700702 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100703 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700704 <description>Output tensor of same type and shape as input</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800705 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700706 </argument>
707 </arguments>
708 <types>
709 <type name='in_out_t'/>
710 </types>
711 <typesupport mode="fp16" in_out_t="fp16_t">
712 <profile name="MI"/>
713 <profile name="MT"/>
714 </typesupport>
715 <typesupport mode="bf16" in_out_t="bf16_t">
716 <profile name="MI"/>
717 <profile name="MT"/>
718 </typesupport>
719 <typesupport mode="fp32" in_out_t="fp32_t">
720 <profile name="MI"/>
721 <profile name="MT"/>
722 </typesupport>
723 </operator>
724 </operatorgroup>
725 <operatorgroup name="elementwise-binary">
726 <operator>
727 <name>ADD</name>
728 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100729 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700730 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800731 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700732 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100733 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700734 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800735 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700736 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100737 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700738 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000739 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800740 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700741 </argument>
742 </arguments>
743 <types>
744 <type name='in_out_t'/>
745 </types>
746 <typesupport mode="signed 32" in_out_t="int32_t"/>
747 <typesupport mode="fp16" in_out_t="fp16_t" >
748 <profile name="MI"/>
749 <profile name="MT"/>
750 </typesupport>
751 <typesupport mode="bf16" in_out_t="bf16_t" >
752 <profile name="MI"/>
753 <profile name="MT"/>
754 </typesupport>
755 <typesupport mode="fp32" in_out_t="fp32_t" >
756 <profile name="MI"/>
757 <profile name="MT"/>
758 </typesupport>
759 </operator>
760 <operator>
761 <name>ARITHMETIC_RIGHT_SHIFT</name>
762 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100763 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700764 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800765 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700766 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100767 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700768 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800769 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700770 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100771 <argument category="attribute" name="round" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700772 <description>If true then the shift is rounded</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100773 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700774 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100775 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700776 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000777 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800778 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700779 </argument>
780 </arguments>
781 <types>
782 <type name='in_out_t'/>
783 </types>
784 <typesupport mode="signed 8" in_out_t="int8_t"/>
785 <typesupport mode="signed 16" in_out_t="int16_t"/>
786 <typesupport mode="signed 32" in_out_t="int32_t"/>
787 </operator>
788 <operator>
789 <name>BITWISE_AND</name>
790 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100791 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700792 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800793 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700794 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100795 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700796 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800797 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700798 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100799 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700800 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000801 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800802 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700803 </argument>
804 </arguments>
805 <types>
806 <type name='in_out_t'/>
807 </types>
808 <typesupport mode="signed 8" in_out_t="int8_t"/>
809 <typesupport mode="signed 16" in_out_t="int16_t"/>
810 <typesupport mode="signed 32" in_out_t="int32_t"/>
811 </operator>
812 <operator>
813 <name>BITWISE_OR</name>
814 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100815 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700816 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800817 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700818 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100819 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700820 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800821 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700822 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100823 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700824 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000825 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800826 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700827 </argument>
828 </arguments>
829 <types>
830 <type name='in_out_t'/>
831 </types>
832 <typesupport mode="signed 8" in_out_t="int8_t"/>
833 <typesupport mode="signed 16" in_out_t="int16_t"/>
834 <typesupport mode="signed 32" in_out_t="int32_t"/>
835 </operator>
836 <operator>
837 <name>BITWISE_XOR</name>
838 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100839 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700840 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800841 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700842 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100843 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700844 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800845 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700846 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100847 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700848 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000849 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800850 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700851 </argument>
852 </arguments>
853 <types>
854 <type name='in_out_t'/>
855 </types>
856 <typesupport mode="signed 8" in_out_t="int8_t"/>
857 <typesupport mode="signed 16" in_out_t="int16_t"/>
858 <typesupport mode="signed 32" in_out_t="int32_t"/>
859 </operator>
860 <operator>
861 <name>INTDIV</name>
862 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100863 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700864 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800865 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700866 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100867 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700868 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800869 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700870 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100871 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700872 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000873 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800874 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700875 </argument>
876 </arguments>
877 <types>
878 <type name='in_out_t'/>
879 </types>
880 <typesupport mode="signed 32" in_out_t="int32_t"/>
881 </operator>
882 <operator>
883 <name>LOGICAL_AND</name>
884 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100885 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700886 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800887 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700888 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100889 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700890 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800891 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700892 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100893 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700894 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000895 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800896 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700897 </argument>
898 </arguments>
899 <types>
900 <type name='in_out_t'/>
901 </types>
902 <typesupport mode="boolean" in_out_t="bool_t"/>
903 </operator>
904 <operator>
905 <name>LOGICAL_LEFT_SHIFT</name>
906 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100907 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700908 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800909 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700910 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100911 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700912 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800913 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700914 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100915 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700916 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000917 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800918 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700919 </argument>
920 </arguments>
921 <types>
922 <type name='in_out_t'/>
923 </types>
924 <typesupport mode="signed 8" in_out_t="int8_t"/>
925 <typesupport mode="signed 16" in_out_t="int16_t"/>
926 <typesupport mode="signed 32" in_out_t="int32_t"/>
927 </operator>
928 <operator>
929 <name>LOGICAL_RIGHT_SHIFT</name>
930 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100931 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700932 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800933 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700934 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100935 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700936 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800937 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700938 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100939 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700940 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000941 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800942 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700943 </argument>
944 </arguments>
945 <types>
946 <type name='in_out_t'/>
947 </types>
948 <typesupport mode="signed 8" in_out_t="int8_t"/>
949 <typesupport mode="signed 16" in_out_t="int16_t"/>
950 <typesupport mode="signed 32" in_out_t="int32_t"/>
951 </operator>
952 <operator>
953 <name>LOGICAL_OR</name>
954 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100955 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700956 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800957 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700958 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100959 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700960 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800961 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700962 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100963 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700964 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000965 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800966 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700967 </argument>
968 </arguments>
969 <types>
970 <type name='in_out_t'/>
971 </types>
972 <typesupport mode="boolean" in_out_t="bool_t"/>
973 </operator>
974 <operator>
975 <name>LOGICAL_XOR</name>
976 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100977 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700978 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800979 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700980 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100981 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700982 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800983 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700984 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100985 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700986 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000987 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800988 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700989 </argument>
990 </arguments>
991 <types>
992 <type name='in_out_t'/>
993 </types>
994 <typesupport mode="boolean" in_out_t="bool_t"/>
995 </operator>
996 <operator>
997 <name>MAXIMUM</name>
998 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100999 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001000 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001001 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001002 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001003 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001004 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001005 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001006 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001007 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001008 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001009 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001010 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001011 </argument>
1012 </arguments>
1013 <types>
1014 <type name='in_out_t'/>
1015 </types>
1016 <typesupport mode="signed 32" in_out_t="int32_t"/>
1017 <typesupport mode="fp16" in_out_t="fp16_t" >
1018 <profile name="MI"/>
1019 <profile name="MT"/>
1020 </typesupport>
1021 <typesupport mode="bf16" in_out_t="bf16_t" >
1022 <profile name="MI"/>
1023 <profile name="MT"/>
1024 </typesupport>
1025 <typesupport mode="fp32" in_out_t="fp32_t" >
1026 <profile name="MI"/>
1027 <profile name="MT"/>
1028 </typesupport>
1029 </operator>
1030 <operator>
1031 <name>MINIMUM</name>
1032 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001033 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001034 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001035 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001036 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001037 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001038 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001039 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001040 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001041 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001042 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001043 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001044 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001045 </argument>
1046 </arguments>
1047 <types>
1048 <type name='in_out_t'/>
1049 </types>
1050 <typesupport mode="signed 32" in_out_t="int32_t"/>
1051 <typesupport mode="fp16" in_out_t="fp16_t" >
1052 <profile name="MI"/>
1053 <profile name="MT"/>
1054 </typesupport>
1055 <typesupport mode="bf16" in_out_t="bf16_t" >
1056 <profile name="MI"/>
1057 <profile name="MT"/>
1058 </typesupport>
1059 <typesupport mode="fp32" in_out_t="fp32_t" >
1060 <profile name="MI"/>
1061 <profile name="MT"/>
1062 </typesupport>
1063 </operator>
1064 <operator>
1065 <name>MUL</name>
1066 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001067 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001068 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001069 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001070 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001071 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001072 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001073 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001074 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001075 <argument category="input(MT)|attribute(BI,MI)" name="shift" type="tensor_t" shape="-" tensor-element-type="int8_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001076 <description>Result right shift (int32_t data type only)</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001077 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001078 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001079 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001080 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001081 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001082 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001083 </argument>
1084 </arguments>
1085 <types>
1086 <type name='in_t'/>
1087 <type name='out_t'/>
1088 </types>
1089 <typesupport mode="signed 8" in_t="int8_t" out_t="int32_t"/>
1090 <typesupport mode="signed 16" in_t="int16_t" out_t="int32_t"/>
1091 <typesupport mode="signed 32" in_t="int32_t" out_t="int32_t"/>
1092 <typesupport mode="fp16" in_t="fp16_t" out_t="fp16_t">
1093 <profile name="MI"/>
1094 <profile name="MT"/>
1095 </typesupport>
1096 <typesupport mode="bf16" in_t="bf16_t" out_t="bf16_t">
1097 <profile name="MI"/>
1098 <profile name="MT"/>
1099 </typesupport>
1100 <typesupport mode="fp32" in_t="fp32_t" out_t="fp32_t">
1101 <profile name="MI"/>
1102 <profile name="MT"/>
1103 </typesupport>
1104 </operator>
1105 <operator>
1106 <name>POW</name>
1107 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001108 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Dominic Symes8783adb2022-07-27 12:53:11 +01001109 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001110 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001111 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001112 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001113 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001114 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001115 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001116 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001117 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001118 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001119 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001120 </argument>
1121 </arguments>
1122 <types>
1123 <type name='in_out_t'/>
1124 </types>
1125 <typesupport mode="fp16" in_out_t="fp16_t" >
1126 <profile name="MI"/>
1127 <profile name="MT"/>
1128 </typesupport>
1129 <typesupport mode="bf16" in_out_t="bf16_t" >
1130 <profile name="MI"/>
1131 <profile name="MT"/>
1132 </typesupport>
1133 <typesupport mode="fp32" in_out_t="fp32_t" >
1134 <profile name="MI"/>
1135 <profile name="MT"/>
1136 </typesupport>
1137 </operator>
1138 <operator>
1139 <name>SUB</name>
1140 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001141 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001142 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001143 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001144 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001145 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001146 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001147 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001148 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001149 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001150 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001151 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001152 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001153 </argument>
1154 </arguments>
1155 <types>
1156 <type name='in_out_t'/>
1157 </types>
1158 <typesupport mode="signed 32" in_out_t="int32_t"/>
1159 <typesupport mode="fp16" in_out_t="fp16_t" >
1160 <profile name="MI"/>
1161 <profile name="MT"/>
1162 </typesupport>
1163 <typesupport mode="bf16" in_out_t="bf16_t" >
1164 <profile name="MI"/>
1165 <profile name="MT"/>
1166 </typesupport>
1167 <typesupport mode="fp32" in_out_t="fp32_t" >
1168 <profile name="MI"/>
1169 <profile name="MT"/>
1170 </typesupport>
1171 </operator>
1172 <operator>
1173 <name>TABLE</name>
1174 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001175 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001176 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001177 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001178 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001179 <argument category="input(MT)|attribute(BI,MI)" name="table" type="tensor_t" shape="[TABLE_SIZE]" tensor-element-type="table_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001180 <description>Lookup table tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001181 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001182 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001183 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001184 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001185 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001186 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001187 </argument>
1188 </arguments>
1189 <types>
1190 <type name='in_t'/>
1191 <type name='table_t'/>
1192 <type name='out_t'/>
1193 <type name='TABLE_SIZE'/>
1194 </types>
1195 <typesupport mode="signed 8" in_t="int8_t" table_t="int8_t" TABLE_SIZE="256" out_t="int8_t"/>
1196 <typesupport mode="signed 16" in_t="int16_t" table_t="int16_t" TABLE_SIZE="513" out_t="int32_t"/>
1197 </operator>
1198 </operatorgroup>
1199 <operatorgroup name="elementwise-unary">
1200 <operator>
1201 <name>ABS</name>
1202 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001203 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001204 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001205 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001206 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001207 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001208 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001209 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001210 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001211 </argument>
1212 </arguments>
1213 <types>
1214 <type name='in_out_t'/>
1215 </types>
1216 <typesupport mode="signed 32" in_out_t="int32_t"/>
1217 <typesupport mode="fp16" in_out_t="fp16_t" >
1218 <profile name="MI"/>
1219 <profile name="MT"/>
1220 </typesupport>
1221 <typesupport mode="bf16" in_out_t="bf16_t" >
1222 <profile name="MI"/>
1223 <profile name="MT"/>
1224 </typesupport>
1225 <typesupport mode="fp32" in_out_t="fp32_t" >
1226 <profile name="MI"/>
1227 <profile name="MT"/>
1228 </typesupport>
1229 </operator>
1230 <operator>
1231 <name>BITWISE_NOT</name>
1232 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001233 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001234 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001235 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001236 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001237 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001238 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001239 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001240 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001241 </argument>
1242 </arguments>
1243 <types>
1244 <type name='in_out_t'/>
1245 </types>
1246 <typesupport mode="signed 8" in_out_t="int8_t"/>
1247 <typesupport mode="signed 16" in_out_t="int16_t"/>
1248 <typesupport mode="signed 32" in_out_t="int32_t"/>
1249 </operator>
1250 <operator>
1251 <name>CEIL</name>
1252 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001253 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001254 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001255 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001256 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001257 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001258 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001259 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001260 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001261 </argument>
1262 </arguments>
1263 <types>
1264 <type name='in_out_t'/>
1265 </types>
1266 <typesupport mode="fp16" in_out_t="fp16_t" >
1267 <profile name="MI"/>
1268 <profile name="MT"/>
1269 </typesupport>
1270 <typesupport mode="bf16" in_out_t="bf16_t" >
1271 <profile name="MI"/>
1272 <profile name="MT"/>
1273 </typesupport>
1274 <typesupport mode="fp32" in_out_t="fp32_t" >
1275 <profile name="MI"/>
1276 <profile name="MT"/>
1277 </typesupport>
1278 </operator>
1279 <operator>
1280 <name>CLZ</name>
1281 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001282 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001283 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001284 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001285 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001286 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001287 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001288 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001289 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001290 </argument>
1291 </arguments>
1292 <types>
1293 <type name='in_out_t'/>
1294 </types>
1295 <typesupport mode="signed 32" in_out_t="int32_t"/>
1296 </operator>
1297 <operator>
1298 <name>EXP</name>
1299 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001300 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001301 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001302 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001303 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001304 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001305 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001306 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001307 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001308 </argument>
1309 </arguments>
1310 <types>
1311 <type name='in_out_t'/>
1312 </types>
1313 <typesupport mode="fp16" in_out_t="fp16_t">
1314 <profile name="MI"/>
1315 <profile name="MT"/>
1316 </typesupport>
1317 <typesupport mode="bf16" in_out_t="bf16_t">
1318 <profile name="MI"/>
1319 <profile name="MT"/>
1320 </typesupport>
1321 <typesupport mode="fp32" in_out_t="fp32_t">
1322 <profile name="MI"/>
1323 <profile name="MT"/>
1324 </typesupport>
1325 </operator>
1326 <operator>
1327 <name>FLOOR</name>
1328 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001329 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001330 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001331 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001332 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001333 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001334 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001335 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001336 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001337 </argument>
1338 </arguments>
1339 <types>
1340 <type name='in_out_t'/>
1341 </types>
1342 <typesupport mode="fp16" in_out_t="fp16_t">
1343 <profile name="MI"/>
1344 <profile name="MT"/>
1345 </typesupport>
1346 <typesupport mode="bf16" in_out_t="bf16_t">
1347 <profile name="MI"/>
1348 <profile name="MT"/>
1349 </typesupport>
1350 <typesupport mode="fp32" in_out_t="fp32_t">
1351 <profile name="MI"/>
1352 <profile name="MT"/>
1353 </typesupport>
1354 </operator>
1355 <operator>
1356 <name>LOG</name>
1357 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001358 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001359 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001360 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001361 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001362 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001363 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001364 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001365 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001366 </argument>
1367 </arguments>
1368 <types>
1369 <type name='in_out_t'/>
1370 </types>
1371 <typesupport mode="fp16" in_out_t="fp16_t">
1372 <profile name="MI"/>
1373 <profile name="MT"/>
1374 </typesupport>
1375 <typesupport mode="bf16" in_out_t="bf16_t">
1376 <profile name="MI"/>
1377 <profile name="MT"/>
1378 </typesupport>
1379 <typesupport mode="fp32" in_out_t="fp32_t">
1380 <profile name="MI"/>
1381 <profile name="MT"/>
1382 </typesupport>
1383 </operator>
1384 <operator>
1385 <name>LOGICAL_NOT</name>
1386 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001387 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001388 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001389 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001390 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001391 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001392 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001393 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001394 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001395 </argument>
1396 </arguments>
1397 <types>
1398 <type name='in_out_t'/>
1399 </types>
1400 <typesupport mode="Boolean" in_out_t="bool_t"/>
1401 </operator>
1402 <operator>
1403 <name>NEGATE</name>
1404 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001405 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001406 <description>Input tensor</description>
Jeremy Johnson9bb5f5d2023-04-06 11:37:05 +01001407 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001408 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001409 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001410 <argument category="attribute" name="input1_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001411 <description>Input 1 zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001412 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001413 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001414 <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001415 <description>Output zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001416 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001417 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001418 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001419 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001420 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001421 </argument>
1422 </arguments>
1423 <types>
1424 <type name='in_out_t'/>
1425 <type name='acc_t'/>
1426 </types>
1427 <typesupport mode="signed 8" in_out_t="int8_t" acc_t="int32_t"/>
1428 <typesupport mode="signed 16" in_out_t="int16_t" acc_t="int32_t"/>
1429 <typesupport mode="signed 32" in_out_t="int32_t" acc_t="int32_t"/>
1430 <typesupport mode="fp16" in_out_t="fp16_t" acc_t="fp16_t">
1431 <profile name="MI"/>
1432 <profile name="MT"/>
1433 </typesupport>
1434 <typesupport mode="bf16" in_out_t="bf16_t" acc_t="bf16_t">
1435 <profile name="MI"/>
1436 <profile name="MT"/>
1437 </typesupport>
1438 <typesupport mode="fp32" in_out_t="fp32_t" acc_t="fp32_t">
1439 <profile name="MI"/>
1440 <profile name="MT"/>
1441 </typesupport>
1442 </operator>
1443 <operator>
1444 <name>RECIPROCAL</name>
1445 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001446 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001447 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001448 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001449 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001450 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001451 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001452 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001453 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001454 </argument>
1455 </arguments>
1456 <types>
1457 <type name='in_out_t'/>
1458 </types>
1459 <typesupport mode="fp16" in_out_t="fp16_t">
1460 <profile name="MI"/>
1461 <profile name="MT"/>
1462 </typesupport>
1463 <typesupport mode="bf16" in_out_t="bf16_t">
1464 <profile name="MI"/>
1465 <profile name="MT"/>
1466 </typesupport>
1467 <typesupport mode="fp32" in_out_t="fp32_t">
1468 <profile name="MI"/>
1469 <profile name="MT"/>
1470 </typesupport>
1471 </operator>
1472 <operator>
1473 <name>RSQRT</name>
1474 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001475 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001476 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001477 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001478 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001479 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001480 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001481 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001482 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001483 </argument>
1484 </arguments>
1485 <types>
1486 <type name='in_out_t'/>
1487 </types>
1488 <typesupport mode="fp16" in_out_t="fp16_t">
1489 <profile name="MI"/>
1490 <profile name="MT"/>
1491 </typesupport>
1492 <typesupport mode="bf16" in_out_t="bf16_t">
1493 <profile name="MI"/>
1494 <profile name="MT"/>
1495 </typesupport>
1496 <typesupport mode="fp32" in_out_t="fp32_t">
1497 <profile name="MI"/>
1498 <profile name="MT"/>
1499 </typesupport>
1500 </operator>
1501 </operatorgroup>
1502 <operatorgroup name="elementwise-ternary">
1503 <operator>
1504 <name>SELECT</name>
1505 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001506 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001507 <description>Input selector tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001508 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001509 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001510 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001511 <description>Input value tensor if input1 is True</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001512 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001513 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001514 <argument category="input" name="input3" type="tensor_t" shape="shape3" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001515 <description>Input value tensor if input1 is False</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001516 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001517 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001518 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001519 <description>Output tensor of same type as input2 and input3, with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001520 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001521 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001522 </argument>
1523 </arguments>
1524 <types>
Eric Kunze58098a72022-08-05 15:40:12 -07001525 <type name='in_out_t'/>
1526 </types>
Kevin Petitb7293ae2022-12-05 12:07:40 +00001527 <typesupport mode="Boolean" in_out_t="bool_t"/>
1528 <typesupport mode="signed 8" in_out_t="int8_t"/>
1529 <typesupport mode="signed 16" in_out_t="int16_t"/>
1530 <typesupport mode="signed 32" in_out_t="int32_t"/>
1531 <typesupport mode="fp16" in_out_t="fp16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001532 <profile name="MI"/>
1533 <profile name="MT"/>
1534 </typesupport>
Kevin Petitb7293ae2022-12-05 12:07:40 +00001535 <typesupport mode="bf16" in_out_t="bf16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001536 <profile name="MI"/>
1537 <profile name="MT"/>
1538 </typesupport>
Kevin Petitb7293ae2022-12-05 12:07:40 +00001539 <typesupport mode="fp32" in_out_t="fp32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001540 <profile name="MI"/>
1541 <profile name="MT"/>
1542 </typesupport>
1543 </operator>
1544 </operatorgroup>
1545 <operatorgroup name="comparison">
1546 <operator>
1547 <name>EQUAL</name>
1548 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001549 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001550 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001551 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001552 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001553 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001554 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001555 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001556 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001557 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001558 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001559 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001560 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001561 </argument>
1562 </arguments>
1563 <types>
1564 <type name='in_t'/>
1565 <type name='out_t'/>
1566 </types>
1567 <typesupport mode="signed 32" in_t="int32_t" out_t="bool_t"/>
1568 <typesupport mode="fp16" in_t="fp16_t" out_t="bool_t">
1569 <profile name="MI"/>
1570 <profile name="MT"/>
1571 </typesupport>
1572 <typesupport mode="bf16" in_t="bf16_t" out_t="bool_t">
1573 <profile name="MI"/>
1574 <profile name="MT"/>
1575 </typesupport>
1576 <typesupport mode="fp32" in_t="fp32_t" out_t="bool_t">
1577 <profile name="MI"/>
1578 <profile name="MT"/>
1579 </typesupport>
1580 </operator>
1581 <operator>
1582 <name>GREATER</name>
1583 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001584 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001585 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001586 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001587 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001588 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001589 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001590 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001591 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001592 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001593 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001594 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001595 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001596 </argument>
1597 </arguments>
1598 <types>
1599 <type name='in_t'/>
1600 <type name='out_t'/>
1601 </types>
1602 <typesupport mode="signed 32" in_t="int32_t" out_t="bool_t"/>
1603 <typesupport mode="fp16" in_t="fp16_t" out_t="bool_t">
1604 <profile name="MI"/>
1605 <profile name="MT"/>
1606 </typesupport>
1607 <typesupport mode="bf16" in_t="bf16_t" out_t="bool_t">
1608 <profile name="MI"/>
1609 <profile name="MT"/>
1610 </typesupport>
1611 <typesupport mode="fp32" in_t="fp32_t" out_t="bool_t">
1612 <profile name="MI"/>
1613 <profile name="MT"/>
1614 </typesupport>
1615 </operator>
1616 <operator>
1617 <name>GREATER_EQUAL</name>
1618 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001619 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001620 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001621 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001622 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001623 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001624 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001625 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001626 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001627 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001628 <description>Output tensor with broadcast shape if necessary</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001629 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001630 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001631 </argument>
1632 </arguments>
1633 <types>
1634 <type name='in_t'/>
1635 <type name='out_t'/>
1636 </types>
1637 <typesupport mode="signed 32" in_t="int32_t" out_t="bool_t"/>
1638 <typesupport mode="fp16" in_t="fp16_t" out_t="bool_t">
1639 <profile name="MI"/>
1640 <profile name="MT"/>
1641 </typesupport>
1642 <typesupport mode="bf16" in_t="bf16_t" out_t="bool_t">
1643 <profile name="MI"/>
1644 <profile name="MT"/>
1645 </typesupport>
1646 <typesupport mode="fp32" in_t="fp32_t" out_t="bool_t">
1647 <profile name="MI"/>
1648 <profile name="MT"/>
1649 </typesupport>
1650 </operator>
1651 </operatorgroup>
1652 <operatorgroup name="reduction">
1653 <operator>
1654 <name>REDUCE_ALL</name>
1655 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001656 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001657 <description>Input tensor</description>
1658 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001659 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001660 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001661 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001662 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001663 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001664 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001665 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001666 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001667 </argument>
1668 </arguments>
1669 <types>
1670 <type name='in_out_t'/>
1671 </types>
1672 <typesupport mode="boolean" in_out_t="bool_t"/>
1673 </operator>
1674 <operator>
1675 <name>REDUCE_ANY</name>
1676 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001677 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001678 <description>Input tensor</description>
1679 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001680 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001681 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001682 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001683 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001684 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001685 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001686 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001687 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001688 </argument>
1689 </arguments>
1690 <types>
1691 <type name='in_out_t'/>
1692 </types>
1693 <typesupport mode="boolean" in_out_t="bool_t"/>
1694 </operator>
1695 <operator>
1696 <name>REDUCE_MAX</name>
1697 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001698 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001699 <description>Input tensor</description>
1700 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001701 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001702 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001703 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001704 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001705 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001706 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001707 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001708 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001709 </argument>
1710 </arguments>
1711 <types>
1712 <type name='in_out_t'/>
1713 </types>
1714 <typesupport mode="signed 8" in_out_t="int8_t"/>
1715 <typesupport mode="signed 16" in_out_t="int16_t"/>
1716 <typesupport mode="signed 32" in_out_t="int32_t"/>
1717 <typesupport mode="fp16" in_out_t="fp16_t">
1718 <profile name="MI"/>
1719 <profile name="MT"/>
1720 </typesupport>
1721 <typesupport mode="bf16" in_out_t="bf16_t">
1722 <profile name="MI"/>
1723 <profile name="MT"/>
1724 </typesupport>
1725 <typesupport mode="fp32" in_out_t="fp32_t">
1726 <profile name="MI"/>
1727 <profile name="MT"/>
1728 </typesupport>
1729 </operator>
1730 <operator>
1731 <name>REDUCE_MIN</name>
1732 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001733 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001734 <description>Input tensor</description>
1735 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001736 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001737 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001738 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001739 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001740 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001741 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001742 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001743 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001744 </argument>
1745 </arguments>
1746 <types>
1747 <type name='in_out_t'/>
1748 </types>
1749 <typesupport mode="signed 8" in_out_t="int8_t"/>
1750 <typesupport mode="signed 16" in_out_t="int16_t"/>
1751 <typesupport mode="signed 32" in_out_t="int32_t"/>
1752 <typesupport mode="fp16" in_out_t="fp16_t">
1753 <profile name="MI"/>
1754 <profile name="MT"/>
1755 </typesupport>
1756 <typesupport mode="bf16" in_out_t="bf16_t">
1757 <profile name="MI"/>
1758 <profile name="MT"/>
1759 </typesupport>
1760 <typesupport mode="fp32" in_out_t="fp32_t">
1761 <profile name="MI"/>
1762 <profile name="MT"/>
1763 </typesupport>
1764 </operator>
1765 <operator>
1766 <name>REDUCE_PRODUCT</name>
1767 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001768 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001769 <description>Input tensor</description>
1770 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001771 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001772 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001773 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001774 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001775 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001776 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001777 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001778 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001779 </argument>
1780 </arguments>
1781 <types>
1782 <type name='in_out_t'/>
1783 </types>
1784 <typesupport mode="fp16" in_out_t="fp16_t">
1785 <profile name="MI"/>
1786 <profile name="MT"/>
1787 </typesupport>
1788 <typesupport mode="bf16" in_out_t="bf16_t">
1789 <profile name="MI"/>
1790 <profile name="MT"/>
1791 </typesupport>
1792 <typesupport mode="fp32" in_out_t="fp32_t">
1793 <profile name="MI"/>
1794 <profile name="MT"/>
1795 </typesupport>
1796 </operator>
1797 <operator>
1798 <name>REDUCE_SUM</name>
1799 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001800 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001801 <description>Input tensor with rank from 1 to 4</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001802 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001803 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001804 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001805 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001806 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001807 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001808 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001809 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001810 <rank min="1" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001811 </argument>
1812 </arguments>
1813 <types>
1814 <type name='in_out_t'/>
1815 </types>
1816 <typesupport mode="signed 32" in_out_t="int32_t"/>
1817 <typesupport mode="fp16" in_out_t="fp16_t">
1818 <profile name="MI"/>
1819 <profile name="MT"/>
1820 </typesupport>
1821 <typesupport mode="bf16" in_out_t="bf16_t">
1822 <profile name="MI"/>
1823 <profile name="MT"/>
1824 </typesupport>
1825 <typesupport mode="fp32" in_out_t="fp32_t">
1826 <profile name="MI"/>
1827 <profile name="MT"/>
1828 </typesupport>
1829 </operator>
1830 </operatorgroup>
1831 <operatorgroup name="data-layout">
1832 <operator>
1833 <name>CONCAT</name>
1834 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001835 <argument category="input" name="input1" type="tensor_list_t" shape="shapes1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001836 <description>List of input tensors. All inputs must have the same rank and data type</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001837 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001838 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001839 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001840 <description>Axis along which concatenation is to occur, in range from 0 to rank(shape)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001841 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001842 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001843 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001844 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001845 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001846 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001847 </argument>
1848 </arguments>
1849 <types>
1850 <type name='in_out_t'/>
1851 </types>
1852 <typesupport mode="boolean" in_out_t="bool_t"/>
1853 <typesupport mode="signed 8" in_out_t="int8_t"/>
1854 <typesupport mode="signed 16" in_out_t="int16_t"/>
1855 <typesupport mode="signed 32" in_out_t="int32_t"/>
1856 <typesupport mode="fp16" in_out_t="fp16_t">
1857 <profile name="MI"/>
1858 <profile name="MT"/>
1859 </typesupport>
1860 <typesupport mode="bf16" in_out_t="bf16_t">
1861 <profile name="MI"/>
1862 <profile name="MT"/>
1863 </typesupport>
1864 <typesupport mode="fp32" in_out_t="fp32_t">
1865 <profile name="MI"/>
1866 <profile name="MT"/>
1867 </typesupport>
1868 </operator>
1869 <operator>
1870 <name>PAD</name>
1871 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001872 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001873 <description>Input tensor</description>
1874 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001875 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001876 <argument category="attribute" name="padding" type="tensor_t" shape="[rank(shape1),2]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001877 <description>Number of pad elements at the start and end of each dimension</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001878 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001879 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001880 <argument category="attribute" name="pad_const" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001881 <description>Constant value to be used as padding</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001882 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001883 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001884 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001885 <description>Output tensor of same type as the input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001886 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001887 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001888 </argument>
1889 </arguments>
1890 <types>
1891 <type name='in_out_t'/>
1892 </types>
1893 <typesupport mode="boolean" in_out_t="bool_t"/>
1894 <typesupport mode="signed 8" in_out_t="int8_t"/>
1895 <typesupport mode="signed 16" in_out_t="int16_t"/>
1896 <typesupport mode="signed 32" in_out_t="int32_t"/>
1897 <typesupport mode="fp16" in_out_t="fp16_t">
1898 <profile name="MI"/>
1899 <profile name="MT"/>
1900 </typesupport>
1901 <typesupport mode="bf16" in_out_t="bf16_t">
1902 <profile name="MI"/>
1903 <profile name="MT"/>
1904 </typesupport>
1905 <typesupport mode="fp32" in_out_t="fp32_t">
1906 <profile name="MI"/>
1907 <profile name="MT"/>
1908 </typesupport>
1909 </operator>
1910 <operator>
1911 <name>RESHAPE</name>
1912 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001913 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001914 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001915 <levellimit value="rank(shape1)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001916 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001917 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001918 <argument category="attribute" name="new_shape" type="tensor_t" shape="[rank(shape)]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001919 <description>List of values, with each element giving the size of the result tensor for the given dimension. At most one dimension may be given as -1 to automatically calculate the dimension size.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001920 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001921 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001922 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001923 <description>Output tensor of same type, size as the input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001924 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001925 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001926 </argument>
1927 </arguments>
1928 <types>
1929 <type name='in_out_t'/>
1930 </types>
1931 <typesupport mode="boolean" in_out_t="bool_t"/>
1932 <typesupport mode="signed 8" in_out_t="int8_t"/>
1933 <typesupport mode="signed 16" in_out_t="int16_t"/>
1934 <typesupport mode="signed 32" in_out_t="int32_t"/>
1935 <typesupport mode="fp16" in_out_t="fp16_t">
1936 <profile name="MI"/>
1937 <profile name="MT"/>
1938 </typesupport>
1939 <typesupport mode="bf16" in_out_t="bf16_t">
1940 <profile name="MI"/>
1941 <profile name="MT"/>
1942 </typesupport>
1943 <typesupport mode="fp32" in_out_t="fp32_t">
1944 <profile name="MI"/>
1945 <profile name="MT"/>
1946 </typesupport>
1947 </operator>
1948 <operator>
1949 <name>REVERSE</name>
1950 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001951 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001952 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001953 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001954 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001955 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001956 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001957 <description>Axis to reverse, in range from 0 to rank(shape)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001958 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001959 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001960 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001961 <description>Output tensor. Same shape as input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001962 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001963 </argument>
1964 </arguments>
1965 <types>
1966 <type name='in_out_t'/>
1967 </types>
1968 <typesupport mode="boolean" in_out_t="bool_t"/>
1969 <typesupport mode="signed 8" in_out_t="int8_t"/>
1970 <typesupport mode="signed 16" in_out_t="int16_t"/>
1971 <typesupport mode="signed 32" in_out_t="int32_t"/>
1972 <typesupport mode="fp16" in_out_t="fp16_t">
1973 <profile name="MI"/>
1974 <profile name="MT"/>
1975 </typesupport>
1976 <typesupport mode="bf16" in_out_t="bf16_t">
1977 <profile name="MI"/>
1978 <profile name="MT"/>
1979 </typesupport>
1980 <typesupport mode="fp32" in_out_t="fp32_t">
1981 <profile name="MI"/>
1982 <profile name="MT"/>
1983 </typesupport>
1984 </operator>
1985 <operator>
1986 <name>SLICE</name>
1987 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001988 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001989 <description>Input tensor</description>
1990 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001991 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001992 <argument category="attribute" name="start" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="index_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001993 <description>List of integer coordinates, of length equal to the rank of input1. Start coordinate for slicing.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001994 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001995 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001996 <argument category="attribute" name="size" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="index_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001997 <description>List of integer size values, of length equal to the rank of input1. Size of the input to be
1998used.</description>
Luke Hutton580fdd12023-02-06 16:37:15 +00001999 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002000 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002001 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002002 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002003 <description>Output tensor of same type as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002004 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002005 </argument>
2006 </arguments>
2007 <types>
2008 <type name='in_out_t'/>
2009 </types>
2010 <typesupport mode="boolean" in_out_t="bool_t"/>
2011 <typesupport mode="signed 8" in_out_t="int8_t"/>
2012 <typesupport mode="signed 16" in_out_t="int16_t"/>
2013 <typesupport mode="signed 32" in_out_t="int32_t"/>
2014 <typesupport mode="fp16" in_out_t="fp16_t">
2015 <profile name="MI"/>
2016 <profile name="MT"/>
2017 </typesupport>
2018 <typesupport mode="bf16" in_out_t="bf16_t">
2019 <profile name="MI"/>
2020 <profile name="MT"/>
2021 </typesupport>
2022 <typesupport mode="fp32" in_out_t="fp32_t">
2023 <profile name="MI"/>
2024 <profile name="MT"/>
2025 </typesupport>
2026 </operator>
2027 <operator>
2028 <name>TILE</name>
2029 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002030 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002031 <description>Input tensor</description>
2032 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002033 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002034 <argument category="attribute" name="multiples" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002035 <description>Number of times to replicate input1 in each dimension</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002036 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002037 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002038 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002039 <description>Output tensor of same type, rank as the input tensor</description>
Luke Hutton580fdd12023-02-06 16:37:15 +00002040 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002041 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002042 </argument>
2043 </arguments>
2044 <types>
2045 <type name='in_out_t'/>
2046 </types>
2047 <typesupport mode="boolean" in_out_t="bool_t"/>
2048 <typesupport mode="signed 8" in_out_t="int8_t"/>
2049 <typesupport mode="signed 16" in_out_t="int16_t"/>
2050 <typesupport mode="signed 32" in_out_t="int32_t"/>
2051 <typesupport mode="fp16" in_out_t="fp16_t">
2052 <profile name="MI"/>
2053 <profile name="MT"/>
2054 </typesupport>
2055 <typesupport mode="bf16" in_out_t="bf16_t">
2056 <profile name="MI"/>
2057 <profile name="MT"/>
2058 </typesupport>
2059 <typesupport mode="fp32" in_out_t="fp32_t">
2060 <profile name="MI"/>
2061 <profile name="MT"/>
2062 </typesupport>
2063 </operator>
2064 <operator>
2065 <name>TRANSPOSE</name>
2066 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002067 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002068 <description>Input tensor</description>
2069 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002070 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002071 <argument category="attribute" name="perms" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="int32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002072 <description>List of integers of length equal to the rank of input1. Values must be valid dimensions within shape1, and may not be repeated.</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002073 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002074 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002075 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002076 <description>Output tensor of same type, rank as the input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002077 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002078 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002079 </argument>
2080 </arguments>
2081 <types>
2082 <type name='in_out_t'/>
2083 </types>
2084 <typesupport mode="boolean" in_out_t="bool_t"/>
2085 <typesupport mode="signed 8" in_out_t="int8_t"/>
2086 <typesupport mode="signed 16" in_out_t="int16_t"/>
2087 <typesupport mode="signed 32" in_out_t="int32_t"/>
2088 <typesupport mode="fp16" in_out_t="fp16_t">
2089 <profile name="MI"/>
2090 <profile name="MT"/>
2091 </typesupport>
2092 <typesupport mode="bf16" in_out_t="bf16_t">
2093 <profile name="MI"/>
2094 <profile name="MT"/>
2095 </typesupport>
2096 <typesupport mode="fp32" in_out_t="fp32_t">
2097 <profile name="MI"/>
2098 <profile name="MT"/>
2099 </typesupport>
2100 </operator>
2101 </operatorgroup>
2102 <operatorgroup name="scatter-gather">
2103 <operator>
2104 <name>GATHER</name>
2105 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002106 <argument category="input" name="values" type="tensor_t" shape="[N,K,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002107 <description>3D value tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002108 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002109 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002110 <argument category="input" name="indices" type="tensor_t" shape="[N,W]" tensor-element-type="index_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002111 <description>2D index tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002112 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002113 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002114 <argument category="output" name="output" type="tensor_t" shape="[N,W,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002115 <description>3D output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002116 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002117 </argument>
2118 </arguments>
2119 <types>
Kevin Petit18548922023-03-17 17:12:30 +00002120 <type name='in_out_t'/>
Eric Kunze58098a72022-08-05 15:40:12 -07002121 </types>
Kevin Petit18548922023-03-17 17:12:30 +00002122 <typesupport mode="signed 8" in_out_t="int8_t"/>
2123 <typesupport mode="signed 16" in_out_t="int16_t"/>
2124 <typesupport mode="signed 32" in_out_t="int32_t"/>
2125 <typesupport mode="fp16" in_out_t="fp16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002126 <profile name="MI"/>
2127 <profile name="MT"/>
2128 </typesupport>
Kevin Petit18548922023-03-17 17:12:30 +00002129 <typesupport mode="bf16" in_out_t="bf16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002130 <profile name="MI"/>
2131 <profile name="MT"/>
2132 </typesupport>
Kevin Petit18548922023-03-17 17:12:30 +00002133 <typesupport mode="fp32" in_out_t="fp32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002134 <profile name="MI"/>
2135 <profile name="MT"/>
2136 </typesupport>
2137 </operator>
2138 <operator>
2139 <name>SCATTER</name>
2140 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002141 <argument category="input" name="values_in" type="tensor_t" shape="[N,K,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002142 <description>3D values in tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002143 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002144 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002145 <argument category="input" name="indices" type="tensor_t" shape="[N,W]" tensor-element-type="index_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002146 <description>2D index tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002147 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002148 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002149 <argument category="input" name="input" type="tensor_t" shape="[N,W,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002150 <description>3D input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002151 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002152 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002153 <argument category="output" name="values_out" type="tensor_t" shape="[N,K,C]" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002154 <description>3D output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002155 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002156 </argument>
2157 </arguments>
2158 <types>
Kevin Petit18548922023-03-17 17:12:30 +00002159 <type name='in_out_t'/>
Eric Kunze58098a72022-08-05 15:40:12 -07002160 </types>
Kevin Petit18548922023-03-17 17:12:30 +00002161 <typesupport mode="signed 8" in_out_t="int8_t"/>
2162 <typesupport mode="signed 16" in_out_t="int16_t"/>
2163 <typesupport mode="signed 32" in_out_t="int32_t"/>
2164 <typesupport mode="fp16" in_out_t="fp16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002165 <profile name="MI"/>
2166 <profile name="MT"/>
2167 </typesupport>
Kevin Petit18548922023-03-17 17:12:30 +00002168 <typesupport mode="bf16" in_out_t="bf16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002169 <profile name="MI"/>
2170 <profile name="MT"/>
2171 </typesupport>
Kevin Petit18548922023-03-17 17:12:30 +00002172 <typesupport mode="fp32" in_out_t="fp32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002173 <profile name="MI"/>
2174 <profile name="MT"/>
2175 </typesupport>
2176 </operator>
2177 </operatorgroup>
2178 <operatorgroup name="image">
2179 <operator>
2180 <name>RESIZE</name>
2181 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002182 <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,C]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002183 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002184 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002185 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002186 <argument category="attribute" name="scale" type="tensor_t" shape="[4]" tensor-element-type="int16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002187 <description>[scale_y_n, scale_y_d, scale_x_n, scale_x_d]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002188 <levellimit value="scale_y_n/scale_y_d" limit="MAX_SCALE"/>
2189 <levellimit value="scale_x_n/scale_x_d" limit="MAX_SCALE"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002190 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002191 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002192 <argument category="attribute" name="offset" type="tensor_t" shape="[2]" tensor-element-type="int16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002193 <description>[offset_y, offset_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002194 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002195 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002196 <argument category="attribute" name="border" type="tensor_t" shape="[2]" tensor-element-type="int16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002197 <description>[border_y, border_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002198 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002199 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002200 <argument category="attribute" name="mode" type="tensor_t" shape="-" tensor-element-type="resize_mode_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002201 <description>BILINEAR or NEAREST</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002202 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002203 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002204 <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002205 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002206 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002207 </argument>
2208 </arguments>
2209 <types>
2210 <type name='resize_t'/>
2211 <type name='in_t'/>
2212 <type name='out_t'/>
2213 </types>
2214 <typesupport mode="signed 8, bilinear" resize_t="int16_t" in_t="int8_t" out_t="int32_t"/>
2215 <typesupport mode="signed 8, nearest" resize_t="int16_t" in_t="int8_t" out_t="int8_t"/>
2216 <typesupport mode="signed 16, bilinear" resize_t="int16_t" in_t="int16_t" out_t="int48_t"/>
2217 <typesupport mode="signed 16, nearest" resize_t="int16_t" in_t="int16_t" out_t="int16_t"/>
Dominic Symesccde4d72022-09-28 13:10:27 +01002218 <typesupport mode="fp16" resize_t="fp16_t" in_t="fp16_t" out_t="fp16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002219 <profile name="MI"/>
2220 <profile name="MT"/>
2221 </typesupport>
Dominic Symesccde4d72022-09-28 13:10:27 +01002222 <typesupport mode="bf16" resize_t="bf16_t" in_t="bf16_t" out_t="bf16_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002223 <profile name="MI"/>
2224 <profile name="MT"/>
2225 </typesupport>
2226 <typesupport mode="fp32" resize_t="fp32_t" in_t="fp32_t" out_t="fp32_t">
2227 <profile name="MI"/>
2228 <profile name="MT"/>
2229 </typesupport>
2230 </operator>
2231 </operatorgroup>
2232 <operatorgroup name="type-conversion">
2233 <operator>
2234 <name>CAST</name>
2235 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002236 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002237 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002238 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002239 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002240 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002241 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002242 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002243 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002244 </argument>
2245 </arguments>
2246 <types>
2247 <type name='in_t'/>
2248 <type name='out_t'/>
2249 </types>
2250 <typesupport mode="bool to signed 8" in_t="bool_t" out_t="int8_t"/>
2251 <typesupport mode="bool to signed 16" in_t="bool_t" out_t="int16_t"/>
2252 <typesupport mode="bool to signed 32" in_t="bool_t" out_t="int32_t"/>
2253 <typesupport mode="signed 8 to bool" in_t="int8_t" out_t="bool_t"/>
2254 <typesupport mode="signed 8 to signed 16" in_t="int8_t" out_t="int16_t"/>
2255 <typesupport mode="signed 8 to signed 32" in_t="int8_t" out_t="int32_t"/>
2256 <typesupport mode="signed 8 to fp16" in_t="int8_t" out_t="fp16_t">
2257 <profile name="MI"/>
2258 <profile name="MT"/>
2259 </typesupport>
2260 <typesupport mode="signed 8 to bf16" in_t="int8_t" out_t="bf16_t">
2261 <profile name="MI"/>
2262 <profile name="MT"/>
2263 </typesupport>
2264 <typesupport mode="signed 8 to fp32" in_t="int8_t" out_t="fp32_t">
2265 <profile name="MI"/>
2266 <profile name="MT"/>
2267 </typesupport>
2268 <typesupport mode="signed 16 to bool" in_t="int16_t" out_t="bool_t"/>
2269 <typesupport mode="signed 16 to signed 8" in_t="int16_t" out_t="int8_t"/>
2270 <typesupport mode="signed 16 to signed 32" in_t="int16_t" out_t="int32_t"/>
2271 <typesupport mode="signed 16 to fp16" in_t="int16_t" out_t="fp16_t">
2272 <profile name="MI"/>
2273 <profile name="MT"/>
2274 </typesupport>
2275 <typesupport mode="signed 16 to bf16" in_t="int16_t" out_t="bf16_t">
2276 <profile name="MI"/>
2277 <profile name="MT"/>
2278 </typesupport>
2279 <typesupport mode="signed 16 to fp32" in_t="int16_t" out_t="fp32_t">
2280 <profile name="MI"/>
2281 <profile name="MT"/>
2282 </typesupport>
2283 <typesupport mode="signed 32 to bool" in_t="int32_t" out_t="bool_t"/>
2284 <typesupport mode="signed 32 to signed 8" in_t="int32_t" out_t="int8_t"/>
2285 <typesupport mode="signed 32 to signed 16" in_t="int32_t" out_t="int16_t"/>
2286 <typesupport mode="signed 32 to fp16" in_t="int32_t" out_t="fp16_t">
2287 <profile name="MI"/>
2288 <profile name="MT"/>
2289 </typesupport>
2290 <typesupport mode="signed 32 to bf16" in_t="int32_t" out_t="bf16_t">
2291 <profile name="MI"/>
2292 <profile name="MT"/>
2293 </typesupport>
2294 <typesupport mode="signed 32 to fp32" in_t="int32_t" out_t="fp32_t">
2295 <profile name="MI"/>
2296 <profile name="MT"/>
2297 </typesupport>
2298 <typesupport mode="bf16 to signed 8" in_t="bf16_t" out_t="int8_t">
2299 <profile name="MI"/>
2300 <profile name="MT"/>
2301 </typesupport>
2302 <typesupport mode="bf16 to signed 16" in_t="bf16_t" out_t="int16_t">
2303 <profile name="MI"/>
2304 <profile name="MT"/>
2305 </typesupport>
2306 <typesupport mode="bf16 to signed 32" in_t="bf16_t" out_t="int32_t">
2307 <profile name="MI"/>
2308 <profile name="MT"/>
2309 </typesupport>
Eric Kunze3c5f0e12022-10-06 16:23:33 -07002310 <typesupport mode="bf16 to fp32" in_t="bf16_t" out_t="fp32_t">
2311 <profile name="MI"/>
2312 <profile name="MT"/>
2313 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07002314 <typesupport mode="fp16 to signed 8" in_t="fp16_t" out_t="int8_t">
2315 <profile name="MI"/>
2316 <profile name="MT"/>
2317 </typesupport>
2318 <typesupport mode="fp16 to signed 16" in_t="fp16_t" out_t="int16_t">
2319 <profile name="MI"/>
2320 <profile name="MT"/>
2321 </typesupport>
2322 <typesupport mode="fp16 to signed 32" in_t="fp16_t" out_t="int32_t">
2323 <profile name="MI"/>
2324 <profile name="MT"/>
2325 </typesupport>
Eric Kunze3c5f0e12022-10-06 16:23:33 -07002326 <typesupport mode="fp16 to fp32" in_t="fp16_t" out_t="fp32_t">
2327 <profile name="MI"/>
2328 <profile name="MT"/>
2329 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07002330 <typesupport mode="fp32 to signed 8" in_t="fp32_t" out_t="int8_t">
2331 <profile name="MI"/>
2332 <profile name="MT"/>
2333 </typesupport>
2334 <typesupport mode="fp32 to signed 16" in_t="fp32_t" out_t="int16_t">
2335 <profile name="MI"/>
2336 <profile name="MT"/>
2337 </typesupport>
2338 <typesupport mode="fp32 to signed 32" in_t="fp32_t" out_t="int32_t">
2339 <profile name="MI"/>
2340 <profile name="MT"/>
2341 </typesupport>
Eric Kunze3c5f0e12022-10-06 16:23:33 -07002342 <typesupport mode="fp32 to bf16" in_t="fp32_t" out_t="bf16_t">
2343 <profile name="MI"/>
2344 <profile name="MT"/>
2345 </typesupport>
2346 <typesupport mode="fp32 to fp16" in_t="fp32_t" out_t="fp16_t">
2347 <profile name="MI"/>
2348 <profile name="MT"/>
2349 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07002350 </operator>
2351 <operator>
2352 <name>RESCALE</name>
2353 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002354 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
Dominic Symes8783adb2022-07-27 12:53:11 +01002355 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002356 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002357 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002358 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002359 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002360 <description>Output tensor with the same shape as input</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002361 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002362 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002363 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002364 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002365 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002366 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002367 <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002368 <description>Output tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002369 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002370 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002371 <argument category="input(MT)|attribute(BI,MI)" name="multiplier" type="tensor_t" shape="[NC]" tensor-element-type="mul_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002372 <description>Scaling multiplier array</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002373 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002374 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002375 <argument category="input(MT)|attribute(BI,MI)" name="shift" type="tensor_t" shape="[NC]" tensor-element-type="int8_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002376 <description>Scaling shift array</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002377 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002378 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002379 <argument category="attribute" name="scale32" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002380 <description>if (scale32) mul_t=int32_t else mul_t=int16_t</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002381 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002382 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002383 <argument category="attribute" name="double_round" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002384 <description>Select double round mode</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002385 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002386 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002387 <argument category="attribute" name="per_channel" type="tensor_t" shape="-" tensor-element-type="bool_t">
Dominic Symes8783adb2022-07-27 12:53:11 +01002388 <description>if (per_channel) NC=shape[rank(shape)-1] else NC=1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002389 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002390 </argument>
2391 </arguments>
2392 <types>
2393 <type name='in_t'/>
2394 <type name='out_t'/>
2395 </types>
2396 <typesupport mode="signed 8 to signed 8" in_t="int8_t" out_t="int8_t"/>
2397 <typesupport mode="signed 8 to signed 16" in_t="int8_t" out_t="int16_t"/>
2398 <typesupport mode="signed 8 to signed 32" in_t="int8_t" out_t="int32_t"/>
2399 <typesupport mode="signed 8 to unsigned 8" in_t="int8_t" out_t="uint8_t"/>
2400 <typesupport mode="signed 16 to signed 8" in_t="int16_t" out_t="int8_t"/>
2401 <typesupport mode="signed 16 to signed 16" in_t="int16_t" out_t="int16_t"/>
2402 <typesupport mode="signed 16 to signed 32" in_t="int16_t" out_t="int32_t"/>
2403 <typesupport mode="signed 16 to unsigned 8" in_t="int16_t" out_t="uint8_t"/>
2404 <typesupport mode="signed 16 to unsigned 16" in_t="int16_t" out_t="uint16_t"/>
2405 <typesupport mode="signed 32 to signed 8" in_t="int32_t" out_t="int8_t"/>
2406 <typesupport mode="signed 32 to signed 16" in_t="int32_t" out_t="int16_t"/>
2407 <typesupport mode="signed 32 to signed 32" in_t="int32_t" out_t="int32_t"/>
2408 <typesupport mode="signed 48 to signed 8" in_t="int48_t" out_t="int8_t"/>
2409 <typesupport mode="signed 48 to signed 16" in_t="int48_t" out_t="int16_t"/>
2410 <typesupport mode="signed 48 to signed 32" in_t="int48_t" out_t="int32_t"/>
2411 <typesupport mode="unsigned 8 to signed 8" in_t="uint8_t" out_t="int8_t"/>
2412 <typesupport mode="unsigned 8 to signed 16" in_t="uint8_t" out_t="int16_t"/>
2413 <typesupport mode="unsigned 16 to signed 16" in_t="uint16_t" out_t="int16_t"/>
2414 </operator>
2415 </operatorgroup>
2416 <operatorgroup name="data-node">
2417 <operator>
2418 <name>CONST</name>
2419 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002420 <argument category="attribute" name="values" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002421 <description>Constant values</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002422 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002423 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002424 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002425 <description>Output tensor of the same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002426 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002427 </argument>
2428 </arguments>
2429 <types>
2430 <type name='out_t' />
2431 </types>
2432 <typesupport mode="Boolean" out_t="bool_t" />
2433 <typesupport mode="signed 8" out_t="int8_t" />
2434 <typesupport mode="signed 16" out_t="int16_t" />
2435 <typesupport mode="signed 32" out_t="int32_t" />
Eric Kunze2fc810e2023-01-06 16:56:37 -08002436 <typesupport mode="signed 48" out_t="int48_t" />
Eric Kunze58098a72022-08-05 15:40:12 -07002437 <typesupport mode="fp16" out_t="fp16_t" >
2438 <profile name="MI"/>
2439 <profile name="MT"/>
2440 </typesupport>
2441 <typesupport mode="bf16" out_t="bf16_t" >
2442 <profile name="MI"/>
2443 <profile name="MT"/>
2444 </typesupport>
2445 <typesupport mode="fp32" out_t="fp32_t" >
2446 <profile name="MI"/>
2447 <profile name="MT"/>
2448 </typesupport>
2449 </operator>
2450 <operator>
2451 <name>IDENTITY</name>
2452 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002453 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002454 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002455 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002456 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002457 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002458 <description>Output tensor of the same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002459 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002460 </argument>
2461 </arguments>
2462 <types>
2463 <type name='in_out_t' />
2464 </types>
2465 <typesupport mode="Boolean" in_out_t="bool_t" />
2466 <typesupport mode="signed 8" in_out_t="int8_t" />
2467 <typesupport mode="signed 16" in_out_t="int16_t" />
2468 <typesupport mode="signed 32" in_out_t="int32_t" />
2469 <typesupport mode="fp16" in_out_t="fp16_t" >
2470 <profile name="MI"/>
2471 <profile name="MT"/>
2472 </typesupport>
2473 <typesupport mode="bf16" in_out_t="bf16_t" >
2474 <profile name="MI"/>
2475 <profile name="MT"/>
2476 </typesupport>
2477 <typesupport mode="fp32" in_out_t="fp32_t" >
2478 <profile name="MI"/>
2479 <profile name="MT"/>
2480 </typesupport>
2481 </operator>
2482 </operatorgroup>
2483 <operatorgroup name="control-flow">
2484 <operator>
2485 <name>COND_IF</name>
2486 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002487 <argument category="input" name="condition" type="tensor_t" shape="shape" tensor-element-type="bool_t">
Dominic Symes4370b932022-11-30 14:25:20 +00002488 <description>Input condition as a size 1 tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002489 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002490 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002491 <argument category="input" name="input_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Kevin Petitc0e467a2023-05-10 16:21:23 +01002492 <description>List of input tensors</description>
2493 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002494 <argument category="attribute" name="then_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002495 <description>TOSA graph to execute if condition is true</description>
2496 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002497 <argument category="attribute" name="else_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002498 <description>TOSA graph to execute if condition is false</description>
2499 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002500 <argument category="output" name="output_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002501 <description>List of output tensors</description>
2502 </argument>
2503 </arguments>
2504 </operator>
2505 <operator>
2506 <name>WHILE_LOOP</name>
2507 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002508 <argument category="input" name="input_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002509 <description>List of input tensors</description>
2510 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002511 <argument category="attribute" name="cond_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002512 <description>TOSA graph to evaluate the condition</description>
2513 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002514 <argument category="attribute" name="body_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002515 <description>TOSA graph to execute the loop body</description>
2516 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002517 <argument category="output" name="output_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002518 <description>List of output tensors</description>
2519 </argument>
2520 </arguments>
2521 </operator>
2522 </operatorgroup>
2523 </operators>
Eric Kunze544227e2023-02-13 16:19:34 -08002524
Kevin Petit53e76592023-04-27 17:28:16 +01002525 <enum name="resize_mode_t" description="Valid resize types">
Eric Kunze544227e2023-02-13 16:19:34 -08002526 <enumval value="0" name="NEAREST_NEIGHBOR" description="Nearest neighbor resize"/>
2527 <enumval value="1" name="BILINEAR" description="Bilinear resize"/>
2528 </enum>
2529
2530 <enum name="acc_size_t" description="Allowed accumulator sizes">
2531 <enumval value="0" name="INT32" description="32-bit integer"/>
2532 <enumval value="1" name="FP16" description="16-bit floating-point"/>
2533 <enumval value="2" name="FP32" description="32-bit floating-point"/>
2534 </enum>
2535
Eric Kunze58098a72022-08-05 15:40:12 -07002536</tosa>