blob: c13b2a484552b686be6433af8d0f988e44b854c4 [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 Kunze9646e5a2024-04-24 21:18:36 -07004 <version major="1" minor="1" patch="0" draft="true"/>
Eric Kunze58098a72022-08-05 15:40:12 -07005 <profiles>
Eric Kunze6dd34102024-02-25 22:24:52 -08006 <profile profile="Base Inference" name="BI" status="Complete" description="Integer operations, primarily 8 and 32-bit values"/>
7 <profile profile="Main Inference" name="MI" status="Complete" description="FP16 and FP32 operations"/>
Eric Kunze58098a72022-08-05 15:40:12 -07008 </profiles>
Eric Kunze6dd34102024-02-25 22:24:52 -08009 <profile_extensions>
Eric Kunze132acad2024-04-10 16:54:16 -070010 <profile_extension name="EXT-INT16" description="16-bit integer operations" status="Complete">
11 <profile_supported>BI</profile_supported>
12 </profile_extension>
13 <profile_extension name="EXT-INT4" description="4-bit integer weights" status="Complete">
14 <profile_supported>BI</profile_supported>
15 </profile_extension>
16 <profile_extension name="EXT-BF16" description="BFloat16 operations" status="Complete">
17 <profile_supported>MI</profile_supported>
18 </profile_extension>
Eric Kunzeaaa31b32024-04-12 15:25:24 -070019 <profile_extension name="EXT-FP8E4M3" description="8-bit floating-point operations E4M3" status="Unstable">
Eric Kunze132acad2024-04-10 16:54:16 -070020 <profile_supported>MI</profile_supported>
21 </profile_extension>
Eric Kunzeaaa31b32024-04-12 15:25:24 -070022 <profile_extension name="EXT-FP8E5M2" description="8-bit floating-point operations E5M2" status="Unstable">
Eric Kunze132acad2024-04-10 16:54:16 -070023 <profile_supported>MI</profile_supported>
24 </profile_extension>
25 <profile_extension name="EXT-FFT" description="Fast Fourier Transform operations" status="Complete">
26 <profile_supported>MI</profile_supported>
27 </profile_extension>
Eric Kunzeaaa31b32024-04-12 15:25:24 -070028 <profile_extension name="EXT-VARIABLE" description="Stateful variable operations" status="Unstable">
Eric Kunze132acad2024-04-10 16:54:16 -070029 <profile_supported>BI</profile_supported>
30 <profile_supported>MI</profile_supported>
31 </profile_extension>
Eric Kunze6dd34102024-02-25 22:24:52 -080032 </profile_extensions>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000033 <levels>
Eric Kunzed44dd792024-04-16 17:07:43 -070034 <level name="none" max_rank="32" max_kernel="2147483647" max_stride="2147483647" max_scale="2048" max_log2_size="63" max_nesting="256" max_tensor_list_size="256">No level</level>
35 <level name="8K" max_rank="6" max_kernel="8192" max_stride="8192" max_scale="256" max_log2_size="31" max_nesting="6" max_tensor_list_size="64">Level 8K</level>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000036 </levels>
Eric Kunze58098a72022-08-05 15:40:12 -070037 <operators>
38 <operatorgroup name="tensor">
39 <operator>
40 <name>ARGMAX</name>
41 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +010042 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Jerry Gef28bd0a2023-03-21 18:25:00 +000043 <description>Input tensor</description>
44 <levellimit value="rank(shape1)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -080045 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -070046 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -070047 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze42085e32023-01-09 11:16:51 -080048 <description>Axis in range from 0 to rank(shape1) - 1</description>
Kevin Petit5333c252023-05-16 09:08:48 +010049 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -070050 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +010051 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze42085e32023-01-09 11:16:51 -080052 <description>Output tensor, with rank = rank(shape1) - 1</description>
53 <rank min="0" max="MAX_RANK - 1"/>
Eric Kunze58098a72022-08-05 15:40:12 -070054 </argument>
55 </arguments>
56 <types>
57 <type name='in_t' />
58 <type name='out_t' />
59 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -070060 <typesupport mode="signed 8" in_t="i8_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -080061 <op_profile name="BI"/>
62 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -070063 <typesupport mode="signed 16" in_t="i16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -080064 <op_profile name="EXT-INT16"/>
65 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -070066 <typesupport mode="fp8e4m3" in_t="fp8e4m3_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -080067 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -070068 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -070069 <typesupport mode="fp8e5m2" in_t="fp8e5m2_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -080070 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -070071 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -070072 <typesupport mode="fp16" in_t="fp16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -080073 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -070074 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -070075 <typesupport mode="bf16" in_t="bf16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -080076 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -070077 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -070078 <typesupport mode="fp32" in_t="fp32_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -080079 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -070080 </typesupport>
81 </operator>
82 <operator>
83 <name>AVG_POOL2D</name>
84 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +010085 <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 -080086 <description>Input tensor</description>
87 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -070088 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -070089 <argument category="attribute" name="kernel" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -070090 <description>[kernel_y, kernel_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000091 <levellimit value="kernel_y" limit="MAX_KERNEL"/>
92 <levellimit value="kernel_x" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -080093 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -070094 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -070095 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -070096 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +000097 <levellimit value="stride_y" limit="MAX_STRIDE"/>
98 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -080099 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700100 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700101 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700102 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000103 <levellimit value="pad_top" limit="MAX_KERNEL"/>
104 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
105 <levellimit value="pad_left" limit="MAX_KERNEL"/>
106 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800107 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700108 </argument>
Eric Kunze0afe61f2024-02-14 16:33:31 -0800109 <argument category="attribute" name="acc_type" type="tensor_t" shape="-" tensor-element-type="acc_type_t">
Eric Kunze02a08492024-04-11 14:41:03 -0700110 <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 +0100111 <rank min="0" max="0"/>
Eric Kunze87bf3092023-01-04 16:18:43 -0800112 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100113 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700114 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100115 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700116 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100117 <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700118 <description>Output tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100119 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700120 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100121 <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 -0700122 <description>Output tensor 4D</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800123 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700124 </argument>
125 </arguments>
126 <types>
127 <type name='in_out_t' />
128 <type name='acc_t' />
129 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700130 <typesupport mode="signed 8 with int32 accumulate" in_out_t="i8_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800131 <op_profile name="BI"/>
132 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700133 <typesupport mode="signed 16 with int32 accumulate" in_out_t="i16_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800134 <op_profile name="EXT-INT16"/>
135 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700136 <typesupport mode="fp8e4m3 with fp16 accumulate" in_out_t="fp8e4m3_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800137 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700138 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700139 <typesupport mode="fp8e5m2 with fp16 accumulate" in_out_t="fp8e5m2_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800140 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700141 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700142 <typesupport mode="fp16 with fp16 accumulate" in_out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800143 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700144 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700145 <typesupport mode="fp16 with fp32 accumulate" in_out_t="fp16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800146 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700147 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700148 <typesupport mode="bf16 with fp32 accumulate" in_out_t="bf16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800149 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700150 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700151 <typesupport mode="fp32 with fp32 accumulate" in_out_t="fp32_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800152 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700153 </typesupport>
154 </operator>
155 <operator>
156 <name>CONV2D</name>
157 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100158 <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 -0700159 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800160 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700161 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100162 <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 -0700163 <description>Weight kernel size KH x KW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000164 <levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
165 <levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800166 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700167 </argument>
Dominic Symes12ab5da2023-08-04 17:47:29 +0100168 <argument category="input" name="bias" type="tensor_t" shape="[BC]" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700169 <description>Per output channel bias data. +
170 Bias data will be broadcast if BC == 1.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800171 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700172 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700173 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700174 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000175 <levellimit value="pad_top" limit="MAX_KERNEL"/>
176 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
177 <levellimit value="pad_left" limit="MAX_KERNEL"/>
178 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800179 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700180 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700181 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700182 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000183 <levellimit value="stride_y" limit="MAX_STRIDE"/>
184 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800185 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700186 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700187 <argument category="attribute" name="dilation" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700188 <description>[dilation_y, dilation_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800189 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700190 </argument>
Eric Kunze0afe61f2024-02-14 16:33:31 -0800191 <argument category="attribute" name="acc_type" type="tensor_t" shape="-" tensor-element-type="acc_type_t">
192 <description>Enumerated type, must be one of INT32, INT48, FP16, FP32, as defined in the Supported Data Types table for this operation</description>
193 <rank min="0" max="0"/>
194 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100195 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700196 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100197 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700198 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100199 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700200 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100201 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700202 </argument>
Dominic Symesb5b06782023-07-27 11:50:57 +0100203 <argument category="attribute" name="local_bound" type="tensor_t" shape="-" tensor-element-type="bool_t" optional="true">
204 <description>
205 This optional attribute affects the floating-point compliance error bound.
206 The default of false allows for direct and transform based, fast convolution algorithms.
207 Only set to true if direct dot-product calculation precision is required.
208 </description>
209 <rank min="0" max="0"/>
210 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100211 <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 -0700212 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800213 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700214 </argument>
215 </arguments>
216 <types>
217 <type name='in_t' />
218 <type name='weight_t' />
219 <type name='out_t' />
Eric Kunze0afe61f2024-02-14 16:33:31 -0800220 <type name='acc_t' />
Eric Kunze58098a72022-08-05 15:40:12 -0700221 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700222 <typesupport mode="signed 8x8 with int32 accumulate" in_t="i8_t" weight_t="i8_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800223 <op_profile name="BI"/>
224 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700225 <typesupport mode="signed 8x4 with int32 accumulate" in_t="i8_t" weight_t="i4_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800226 <op_profile name="EXT-INT4"/>
227 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700228 <typesupport mode="signed 16x8 with int48 accumulate" in_t="i16_t" weight_t="i8_t" out_t="i48_t" acc_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800229 <op_profile name="EXT-INT16"/>
230 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700231 <typesupport mode="fp8e4m3 with fp16 accumulate" in_t="fp8e4m3_t" weight_t="fp8e4m3_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800232 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700233 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700234 <typesupport mode="fp8e5m2 with fp16 accumulate" in_t="fp8e5m2_t" weight_t="fp8e5m2_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800235 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700236 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700237 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800238 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700239 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700240 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800241 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700242 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700243 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="bf16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800244 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700245 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700246 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800247 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700248 </typesupport>
249 </operator>
250 <operator>
251 <name>CONV3D</name>
252 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100253 <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 -0700254 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800255 <rank min="5" max="5"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700256 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100257 <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 -0700258 <description>Weight kernel size KDxKHxKW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000259 <levellimit value="dilation_d * KD" limit="MAX_KERNEL"/>
260 <levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
261 <levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800262 <rank min="5" max="5"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700263 </argument>
Dominic Symes12ab5da2023-08-04 17:47:29 +0100264 <argument category="input" name="bias" type="tensor_t" shape="[BC]" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700265 <description>Per output channel bias data. +
266 Bias data will be broadcast if BC == 1.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800267 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700268 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700269 <argument category="attribute" name="pad" type="tensor_t" shape="[6]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700270 <description>[pad_d0, pad_d1, pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000271 <levellimit value="pad_d0" limit="MAX_KERNEL"/>
272 <levellimit value="pad_d1" limit="MAX_KERNEL"/>
273 <levellimit value="pad_top" limit="MAX_KERNEL"/>
274 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
275 <levellimit value="pad_left" limit="MAX_KERNEL"/>
276 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800277 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700278 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700279 <argument category="attribute" name="stride" type="tensor_t" shape="[3]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700280 <description>[stride_d, stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000281 <levellimit value="stride_y" limit="MAX_STRIDE"/>
282 <levellimit value="stride_x" limit="MAX_STRIDE"/>
283 <levellimit value="stride_d" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800284 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700285 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700286 <argument category="attribute" name="dilation" type="tensor_t" shape="[3]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700287 <description>[dilation_d, dilation_y, dilation_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800288 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700289 </argument>
Eric Kunze0afe61f2024-02-14 16:33:31 -0800290 <argument category="attribute" name="acc_type" type="tensor_t" shape="-" tensor-element-type="acc_type_t">
291 <description>Enumerated type, must be one of INT32, INT48, FP16, FP32, as defined in the Supported Data Types table for this operation</description>
292 <rank min="0" max="0"/>
293 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100294 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700295 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100296 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700297 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100298 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700299 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100300 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700301 </argument>
Dominic Symesb5b06782023-07-27 11:50:57 +0100302 <argument category="attribute" name="local_bound" type="tensor_t" shape="-" tensor-element-type="bool_t" optional="true">
303 <description>
304 This optional attribute affects the floating-point compliance error bound.
305 The default of false allows for direct and transform based, fast convolution algorithms.
306 Only set to true if direct dot-product calculation precision is required.
307 </description>
308 <rank min="0" max="0"/>
309 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100310 <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 -0700311 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800312 <rank min="5" max="5"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700313 </argument>
314 </arguments>
315 <types>
316 <type name='in_t' />
317 <type name='weight_t' />
318 <type name='out_t' />
319 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700320 <typesupport mode="signed 8x8 with int32 accumulate" in_t="i8_t" weight_t="i8_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800321 <op_profile name="BI"/>
322 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700323 <typesupport mode="signed 8x4 with int32 accumulate" in_t="i8_t" weight_t="i4_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800324 <op_profile name="EXT-INT4"/>
325 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700326 <typesupport mode="signed 16x8 with int48 accumulate" in_t="i16_t" weight_t="i8_t" out_t="i48_t" acc_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800327 <op_profile name="EXT-INT16"/>
328 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700329 <typesupport mode="fp8e4m3 with fp16 accumulate" in_t="fp8e4m3_t" weight_t="fp8e4m3_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800330 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700331 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700332 <typesupport mode="fp8e5m2 with fp16 accumulate" in_t="fp8e5m2_t" weight_t="fp8e5m2_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800333 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700334 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700335 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800336 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700337 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700338 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800339 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700340 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700341 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="bf16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800342 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700343 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700344 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800345 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700346 </typesupport>
347 </operator>
348 <operator>
349 <name>DEPTHWISE_CONV2D</name>
350 <arguments>
Kevin Petit75920b12024-01-23 19:12:14 +0000351 <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 -0700352 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800353 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700354 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100355 <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 -0700356 <description>Weight kernel size KH x KW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000357 <levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
358 <levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800359 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700360 </argument>
Dominic Symes12ab5da2023-08-04 17:47:29 +0100361 <argument category="input" name="bias" type="tensor_t" shape="[BC]" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700362 <description>Per output channel bias data. +
363 Bias data will be broadcast if BC == 1.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800364 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700365 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700366 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700367 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000368 <levellimit value="pad_top" limit="MAX_KERNEL"/>
369 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
370 <levellimit value="pad_left" limit="MAX_KERNEL"/>
371 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800372 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700373 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700374 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700375 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000376 <levellimit value="stride_y" limit="MAX_STRIDE"/>
377 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800378 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700379 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700380 <argument category="attribute" name="dilation" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700381 <description>[dilation_y, dilation_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800382 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700383 </argument>
Eric Kunze0afe61f2024-02-14 16:33:31 -0800384 <argument category="attribute" name="acc_type" type="tensor_t" shape="-" tensor-element-type="acc_type_t">
385 <description>Enumerated type, must be one of INT32, INT48, FP16, FP32, as defined in the Supported Data Types table for this operation</description>
386 <rank min="0" max="0"/>
387 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100388 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700389 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100390 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700391 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100392 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700393 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100394 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700395 </argument>
Dominic Symesb5b06782023-07-27 11:50:57 +0100396 <argument category="attribute" name="local_bound" type="tensor_t" shape="-" tensor-element-type="bool_t" optional="true">
397 <description>
398 This optional attribute affects the floating-point compliance error bound.
399 The default of false allows for direct and transform based, fast convolution algorithms.
400 Only set to true if direct dot-product calculation precision is required.
401 </description>
402 <rank min="0" max="0"/>
403 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100404 <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 -0700405 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800406 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700407 </argument>
408 </arguments>
409 <types>
410 <type name='in_t' />
411 <type name='weight_t' />
412 <type name='out_t' />
413 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700414 <typesupport mode="signed 8x8 with int32 accumulate" in_t="i8_t" weight_t="i8_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800415 <op_profile name="BI"/>
416 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700417 <typesupport mode="signed 8x4 with int32 accumulate" in_t="i8_t" weight_t="i4_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800418 <op_profile name="EXT-INT4"/>
419 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700420 <typesupport mode="signed 16x8 with int48 accumulate" in_t="i16_t" weight_t="i8_t" out_t="i48_t" acc_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800421 <op_profile name="EXT-INT16"/>
422 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700423 <typesupport mode="fp8e4m3 with fp16 accumulate" in_t="fp8e4m3_t" weight_t="fp8e4m3_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800424 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700425 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700426 <typesupport mode="fp8e5m2 with fp16 accumulate" in_t="fp8e5m2_t" weight_t="fp8e5m2_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800427 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700428 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700429 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800430 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700431 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700432 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800433 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700434 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700435 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="bf16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800436 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700437 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700438 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800439 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700440 </typesupport>
441 </operator>
442 <operator>
443 <name>FFT2D</name>
444 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100445 <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 -0700446 <description>Real part of the complex input. H,W must be powers of two.</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000447 <levellimit value="H" limit="MAX_KERNEL"/>
448 <levellimit value="W" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800449 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700450 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100451 <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 -0700452 <description>Imaginary part of the complex input. H,W must be powers of two.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800453 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700454 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100455 <argument category="attribute" name="inverse" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700456 <description>false for forward FFT, true for inverse FFT</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100457 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700458 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100459 <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 -0700460 <description>Real part of the complex output.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800461 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700462 </argument>
Dominic Symesb5b06782023-07-27 11:50:57 +0100463 <argument category="attribute" name="local_bound" type="tensor_t" shape="-" tensor-element-type="bool_t" optional="true">
464 <description>
465 This optional attribute affects the floating-point compliance error bound.
466 The default of false allows for direct and transform based, fast convolution algorithms.
467 Only set to true if direct dot-product calculation precision is required.
468 </description>
469 <rank min="0" max="0"/>
470 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100471 <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 -0700472 <description>Imaginary part of the complex output.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800473 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700474 </argument>
475 </arguments>
476 <types>
477 <type name='in_out_t' />
478 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700479 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800480 <op_profile name="EXT-FFT"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700481 </typesupport>
482 </operator>
483 <operator>
484 <name>FULLY_CONNECTED</name>
485 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100486 <argument category="input" name="input" type="tensor_t" shape="[N,IC]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700487 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800488 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700489 </argument>
Dominic Symes14aa6202023-06-14 18:11:19 +0100490 <argument category="input" name="weight" type="tensor_t" shape="[OC,IC]" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700491 <description>Weights</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800492 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700493 </argument>
Dominic Symes12ab5da2023-08-04 17:47:29 +0100494 <argument category="input" name="bias" type="tensor_t" shape="[BC]" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700495 <description>Per output channel bias data. +
496 Bias data will be broadcast if BC == 1.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800497 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700498 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100499 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700500 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100501 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700502 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100503 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700504 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100505 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700506 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100507 <argument category="output" name="output" type="tensor_t" shape="[N,OC]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700508 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800509 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700510 </argument>
511 </arguments>
512 <types>
513 <type name='in_t' />
514 <type name='weight_t' />
515 <type name='out_t' />
516 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700517 <typesupport mode="signed 8x8 with int32 accumulate" in_t="i8_t" weight_t="i8_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800518 <op_profile name="BI"/>
519 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700520 <typesupport mode="signed 8x4 with int32 accumulate" in_t="i8_t" weight_t="i4_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800521 <op_profile name="EXT-INT4"/>
522 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700523 <typesupport mode="signed 16x8 with int48 accumulate" in_t="i16_t" weight_t="i8_t" out_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800524 <op_profile name="EXT-INT16"/>
525 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700526 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800527 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700528 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700529 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800530 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700531 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700532 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800533 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700534 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700535 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800536 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700537 </typesupport>
538 </operator>
539 <operator>
540 <name>MATMUL</name>
541 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100542 <argument category="input" name="A" type="tensor_t" shape="[N,H,C]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700543 <description>Input tensor A, N matrices of size HxC</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800544 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700545 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100546 <argument category="input" name="B" type="tensor_t" shape="[N,C,W]" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700547 <description>Input tensor B, N matrices of size CxW</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800548 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700549 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100550 <argument category="attribute" name="A_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700551 <description>Input tensor A zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100552 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700553 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100554 <argument category="attribute" name="B_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700555 <description>Input tensor B zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100556 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700557 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100558 <argument category="output" name="output" type="tensor_t" shape="[N,H,W]" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700559 <description>Output tensor, N matrices of size HxW</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800560 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700561 </argument>
562 </arguments>
563 <types>
564 <type name='in_t' />
565 <type name='out_t' />
566 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700567 <typesupport mode="signed 8x8 with int32 accumulate" in_t="i8_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800568 <op_profile name="BI"/>
569 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700570 <typesupport mode="signed 16x16 with int48 accumulate" in_t="i16_t" out_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800571 <op_profile name="EXT-INT16"/>
572 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700573 <typesupport mode="fp8e4m3 with fp16 accumulate" in_t="fp8e4m3_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800574 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700575 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700576 <typesupport mode="fp8e5m2" in_t="fp8e5m2_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800577 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700578 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700579 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800580 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700581 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700582 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800583 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700584 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700585 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800586 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700587 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700588 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800589 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700590 </typesupport>
591 </operator>
592 <operator>
593 <name>MAX_POOL2D</name>
594 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100595 <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 -0700596 <description>Input tensor 4D</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800597 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700598 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700599 <argument category="attribute" name="kernel" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700600 <description>[kernel_y, kernel_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000601 <levellimit value="kernel_y" limit="MAX_KERNEL"/>
602 <levellimit value="kernel_x" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800603 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700604 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700605 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700606 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000607 <levellimit value="stride_y" limit="MAX_STRIDE"/>
608 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800609 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700610 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700611 <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700612 <description>[pad_top, pad_bottom, pad_left, pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000613 <levellimit value="pad_top" limit="MAX_KERNEL"/>
614 <levellimit value="pad_bottom" limit="MAX_KERNEL"/>
615 <levellimit value="pad_left" limit="MAX_KERNEL"/>
616 <levellimit value="pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800617 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700618 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100619 <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 -0700620 <description>Output tensor 4D</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800621 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700622 </argument>
623 </arguments>
624 <types>
625 <type name='in_out_t' />
626 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700627 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800628 <op_profile name="BI"/>
629 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700630 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800631 <op_profile name="EXT-INT16"/>
632 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700633 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800634 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700635 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700636 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800637 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700638 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700639 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800640 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700641 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700642 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800643 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700644 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700645 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800646 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700647 </typesupport>
648 </operator>
649 <operator>
650 <name>RFFT2D</name>
651 <arguments>
Kevin Petit75920b12024-01-23 19:12:14 +0000652 <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 -0700653 <description>Real input. H,W must be powers of two.</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000654 <levellimit value="H" limit="MAX_KERNEL"/>
655 <levellimit value="W" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800656 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700657 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100658 <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 -0700659 <description>Real part of the complex output</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800660 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700661 </argument>
Dominic Symes8bf6e712023-09-07 11:10:59 +0100662 <argument category="attribute" name="local_bound" type="tensor_t" shape="-" tensor-element-type="bool_t" optional="true">
663 <description>
664 This optional attribute affects the floating-point compliance error bound.
665 The default of false allows for direct and transform based, fast convolution algorithms.
666 Only set to true if direct dot-product calculation precision is required.
667 </description>
668 <rank min="0" max="0"/>
669 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100670 <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 -0700671 <description>Imaginary part of the complex output.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800672 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700673 </argument>
674 </arguments>
675 <types>
676 <type name='in_out_t' />
677 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700678 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800679 <op_profile name="EXT-FFT"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700680 </typesupport>
681 </operator>
682 <operator>
683 <name>TRANSPOSE_CONV2D</name>
684 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100685 <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 -0700686 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800687 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700688 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100689 <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 -0700690 <description>Weight kernel size KH x KW</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000691 <levellimit value="KH" limit="MAX_KERNEL"/>
692 <levellimit value="KW" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800693 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700694 </argument>
Dominic Symes12ab5da2023-08-04 17:47:29 +0100695 <argument category="input" name="bias" type="tensor_t" shape="[BC]" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700696 <description>Per output channel bias data. +
697 Bias data will be broadcast if BC == 1.</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800698 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700699 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700700 <argument category="attribute" name="out_pad" type="tensor_t" shape="[4]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700701 <description>[out_pad_top, out_pad_bottom, out_pad_left, out_pad_right]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000702 <levellimit value="out_pad_top" limit="MAX_KERNEL"/>
703 <levellimit value="out_pad_bottom" limit="MAX_KERNEL"/>
704 <levellimit value="out_pad_left" limit="MAX_KERNEL"/>
705 <levellimit value="out_pad_right" limit="MAX_KERNEL"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800706 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700707 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -0700708 <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700709 <description>[stride_y, stride_x]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000710 <levellimit value="stride_y" limit="MAX_STRIDE"/>
711 <levellimit value="stride_x" limit="MAX_STRIDE"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800712 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700713 </argument>
Eric Kunze0afe61f2024-02-14 16:33:31 -0800714 <argument category="attribute" name="acc_type" type="tensor_t" shape="-" tensor-element-type="acc_type_t">
715 <description>Enumerated type, must be one of INT32, INT48, FP16, FP32, as defined in the Supported Data Types table for this operation</description>
716 <rank min="0" max="0"/>
717 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100718 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700719 <description>Input tensor zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100720 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700721 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100722 <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700723 <description>Weight zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100724 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700725 </argument>
Dominic Symesb5b06782023-07-27 11:50:57 +0100726 <argument category="attribute" name="local_bound" type="tensor_t" shape="-" tensor-element-type="bool_t" optional="true">
727 <description>
728 This optional attribute affects the floating-point compliance error bound.
729 The default of false allows for direct and transform based, fast convolution algorithms.
730 Only set to true if direct dot-product calculation precision is required.
731 </description>
732 <rank min="0" max="0"/>
733 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100734 <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 -0700735 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800736 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700737 </argument>
Eric Kunze0afe61f2024-02-14 16:33:31 -0800738 </arguments>
Eric Kunze58098a72022-08-05 15:40:12 -0700739 <types>
740 <type name='in_t' />
741 <type name='weight_t' />
742 <type name='out_t' />
743 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700744 <typesupport mode="signed 8x8 with int32 accumulate" in_t="i8_t" weight_t="i8_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800745 <op_profile name="BI"/>
746 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700747 <typesupport mode="signed 8x4 with int32 accumulate" in_t="i8_t" weight_t="i4_t" out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800748 <op_profile name="EXT-INT4"/>
749 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700750 <typesupport mode="signed 16x8 with int48 accumulate" in_t="i16_t" weight_t="i8_t" out_t="i48_t" acc_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800751 <op_profile name="EXT-INT16"/>
752 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700753 <typesupport mode="fp8e4m3 with fp16 accumulate" in_t="fp8e4m3_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800754 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700755 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700756 <typesupport mode="fp8e5m2" in_t="fp8e5m2_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800757 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -0700758 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700759 <typesupport mode="fp16 with fp16 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800760 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700761 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700762 <typesupport mode="fp16 with fp32 accumulate" in_t="fp16_t" weight_t="fp16_t" out_t="fp16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800763 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700764 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700765 <typesupport mode="bf16 with fp32 accumulate" in_t="bf16_t" weight_t="bf16_t" out_t="bf16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800766 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700767 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700768 <typesupport mode="fp32 with fp32 accumulate" in_t="fp32_t" weight_t="fp32_t" out_t="fp32_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800769 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700770 </typesupport>
771 </operator>
772 </operatorgroup>
773 <operatorgroup name="activation">
774 <operator>
775 <name>CLAMP</name>
776 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100777 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700778 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000779 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800780 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700781 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100782 <argument category="attribute" name="min_val" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700783 <description>Minimum clip value</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100784 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700785 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100786 <argument category="attribute" name="max_val" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700787 <description>Maximum clip value</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100788 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700789 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100790 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700791 <description>Output tensor of same type and shape as input</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800792 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700793 </argument>
794 </arguments>
795 <types>
796 <type name='in_out_t'/>
797 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700798 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800799 <op_profile name="BI"/>
800 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700801 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800802 <op_profile name="EXT-INT16"/>
803 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700804 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800805 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700806 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700807 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800808 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700809 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700810 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800811 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700812 </typesupport>
813 </operator>
814 <operator>
Eric Kunze52c89f42023-05-10 16:41:13 -0700815 <name>ERF</name>
816 <arguments>
Jerry Gef0bc5502023-06-21 22:04:20 +0000817 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze52c89f42023-05-10 16:41:13 -0700818 <description>Input tensor</description>
819 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Jerry Gef0bc5502023-06-21 22:04:20 +0000820 <rank min="0" max="MAX_RANK"/>
Eric Kunze52c89f42023-05-10 16:41:13 -0700821 </argument>
Jerry Gef0bc5502023-06-21 22:04:20 +0000822 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze52c89f42023-05-10 16:41:13 -0700823 <description>Output tensor of same type and shape as input</description>
Jerry Gef0bc5502023-06-21 22:04:20 +0000824 <rank min="0" max="MAX_RANK"/>
Eric Kunze52c89f42023-05-10 16:41:13 -0700825 </argument>
826 </arguments>
827 <types>
828 <type name='in_out_t'/>
829 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700830 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800831 <op_profile name="MI"/>
Eric Kunze52c89f42023-05-10 16:41:13 -0700832 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700833 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800834 <op_profile name="EXT-BF16"/>
Eric Kunze52c89f42023-05-10 16:41:13 -0700835 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700836 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800837 <op_profile name="MI"/>
Eric Kunze52c89f42023-05-10 16:41:13 -0700838 </typesupport>
839 </operator>
840 <operator>
Eric Kunze58098a72022-08-05 15:40:12 -0700841 <name>SIGMOID</name>
842 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100843 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700844 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000845 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800846 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700847 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100848 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700849 <description>Output tensor of same type and shape as input</description>
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>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700856 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800857 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700858 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700859 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800860 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700861 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700862 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800863 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700864 </typesupport>
865 </operator>
866 <operator>
867 <name>TANH</name>
868 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100869 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700870 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000871 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800872 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700873 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100874 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700875 <description>Output tensor of same type and shape as input</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800876 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700877 </argument>
878 </arguments>
879 <types>
880 <type name='in_out_t'/>
881 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700882 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800883 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700884 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700885 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800886 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700887 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700888 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800889 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700890 </typesupport>
891 </operator>
892 </operatorgroup>
893 <operatorgroup name="elementwise-binary">
894 <operator>
895 <name>ADD</name>
896 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100897 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700898 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800899 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700900 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100901 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700902 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800903 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700904 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100905 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700906 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000907 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800908 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700909 </argument>
910 </arguments>
911 <types>
912 <type name='in_out_t'/>
913 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700914 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800915 <op_profile name="BI"/>
916 <op_profile name="MI"/>
917 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700918 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800919 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700920 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700921 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800922 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700923 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700924 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800925 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700926 </typesupport>
927 </operator>
928 <operator>
929 <name>ARITHMETIC_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="attribute" name="round" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700940 <description>If true then the shift is rounded</description>
Kevin Petit5333c252023-05-16 09:08:48 +0100941 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700942 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100943 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700944 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000945 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800946 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700947 </argument>
948 </arguments>
949 <types>
950 <type name='in_out_t'/>
951 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700952 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800953 <op_profile name="BI"/>
954 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700955 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800956 <op_profile name="BI"/>
957 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700958 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800959 <op_profile name="BI"/>
960 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -0700961 </operator>
962 <operator>
963 <name>BITWISE_AND</name>
964 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100965 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700966 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800967 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700968 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100969 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700970 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800971 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700972 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100973 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -0700974 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +0000975 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -0800976 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700977 </argument>
978 </arguments>
979 <types>
980 <type name='in_out_t'/>
981 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700982 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800983 <op_profile name="BI"/>
984 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700985 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800986 <op_profile name="BI"/>
987 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -0700988 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -0800989 <op_profile name="BI"/>
990 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -0700991 </operator>
992 <operator>
993 <name>BITWISE_OR</name>
994 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +0100995 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -0700996 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -0800997 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -0700998 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +0100999 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001000 <description>Input tensor with the same rank as input1</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="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001004 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001005 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001006 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001007 </argument>
1008 </arguments>
1009 <types>
1010 <type name='in_out_t'/>
1011 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001012 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001013 <op_profile name="BI"/>
1014 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001015 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001016 <op_profile name="BI"/>
1017 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001018 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001019 <op_profile name="BI"/>
1020 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001021 </operator>
1022 <operator>
1023 <name>BITWISE_XOR</name>
1024 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001025 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001026 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001027 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001028 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001029 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001030 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001031 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001032 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001033 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001034 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001035 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001036 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001037 </argument>
1038 </arguments>
1039 <types>
1040 <type name='in_out_t'/>
1041 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001042 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001043 <op_profile name="BI"/>
1044 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001045 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001046 <op_profile name="BI"/>
1047 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001048 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001049 <op_profile name="BI"/>
1050 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001051 </operator>
1052 <operator>
1053 <name>INTDIV</name>
1054 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001055 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001056 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001057 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001058 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001059 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001060 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001061 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001062 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001063 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001064 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001065 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001066 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001067 </argument>
1068 </arguments>
1069 <types>
1070 <type name='in_out_t'/>
1071 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001072 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001073 <op_profile name="BI"/>
1074 <op_profile name="MI"/>
1075 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001076 </operator>
1077 <operator>
1078 <name>LOGICAL_AND</name>
1079 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001080 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001081 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001082 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001083 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001084 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001085 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001086 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001087 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001088 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001089 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001090 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001091 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001092 </argument>
1093 </arguments>
1094 <types>
1095 <type name='in_out_t'/>
1096 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001097 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001098 <op_profile name="BI"/>
1099 <op_profile name="MI"/>
1100 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001101 </operator>
1102 <operator>
1103 <name>LOGICAL_LEFT_SHIFT</name>
1104 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001105 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001106 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001107 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001108 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001109 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001110 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001111 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001112 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001113 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001114 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001115 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001116 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001117 </argument>
1118 </arguments>
1119 <types>
1120 <type name='in_out_t'/>
1121 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001122 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001123 <op_profile name="BI"/>
1124 <op_profile name="MI"/>
1125 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001126 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001127 <op_profile name="BI"/>
1128 <op_profile name="MI"/>
1129 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001130 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001131 <op_profile name="BI"/>
1132 <op_profile name="MI"/>
1133 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001134 </operator>
1135 <operator>
1136 <name>LOGICAL_RIGHT_SHIFT</name>
1137 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001138 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001139 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001140 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001141 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001142 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001143 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001144 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001145 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001146 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001147 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001148 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001149 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001150 </argument>
1151 </arguments>
1152 <types>
1153 <type name='in_out_t'/>
1154 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001155 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001156 <op_profile name="BI"/>
1157 <op_profile name="MI"/>
1158 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001159 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001160 <op_profile name="BI"/>
1161 <op_profile name="MI"/>
1162 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001163 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001164 <op_profile name="BI"/>
1165 <op_profile name="MI"/>
1166 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001167 </operator>
1168 <operator>
1169 <name>LOGICAL_OR</name>
1170 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001171 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001172 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001173 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001174 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001175 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001176 <description>Input tensor with the same rank as input1</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="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001180 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001181 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001182 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001183 </argument>
1184 </arguments>
1185 <types>
1186 <type name='in_out_t'/>
1187 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001188 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001189 <op_profile name="BI"/>
1190 <op_profile name="MI"/>
1191 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001192 </operator>
1193 <operator>
1194 <name>LOGICAL_XOR</name>
1195 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001196 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001197 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001198 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001199 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001200 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001201 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001202 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001203 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001204 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001205 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001206 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001207 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001208 </argument>
1209 </arguments>
1210 <types>
1211 <type name='in_out_t'/>
1212 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001213 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001214 <op_profile name="BI"/>
1215 <op_profile name="MI"/>
1216 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001217 </operator>
1218 <operator>
1219 <name>MAXIMUM</name>
1220 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001221 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001222 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001223 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001224 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001225 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001226 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001227 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001228 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001229 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001230 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001231 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001232 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001233 </argument>
1234 </arguments>
1235 <types>
1236 <type name='in_out_t'/>
1237 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001238 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001239 <op_profile name="BI"/>
1240 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001241 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001242 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001243 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001244 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001245 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001246 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001247 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001248 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001249 </typesupport>
1250 </operator>
1251 <operator>
1252 <name>MINIMUM</name>
1253 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001254 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001255 <description>Input tensor</description>
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="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001259 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001260 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001261 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001262 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001263 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001264 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001265 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001266 </argument>
1267 </arguments>
1268 <types>
1269 <type name='in_out_t'/>
1270 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001271 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001272 <op_profile name="BI"/>
1273 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001274 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001275 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001276 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001277 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001278 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001279 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001280 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001281 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001282 </typesupport>
1283 </operator>
1284 <operator>
1285 <name>MUL</name>
1286 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001287 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001288 <description>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>
Kevin Petit5333c252023-05-16 09:08:48 +01001291 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001292 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001293 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001294 </argument>
Eric Kunze6dd34102024-02-25 22:24:52 -08001295 <argument category="input" name="shift" type="tensor_t" shape="-" tensor-element-type="i8_t">
Eric Kunzefb0284e2023-07-18 15:20:53 -07001296 <description>Result right shift (i32_t data type only)</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001297 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001298 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001299 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001300 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001301 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001302 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001303 </argument>
1304 </arguments>
1305 <types>
1306 <type name='in_t'/>
1307 <type name='out_t'/>
1308 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001309 <typesupport mode="signed 8" in_t="i8_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001310 <op_profile name="BI"/>
1311 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001312 <typesupport mode="signed 16" in_t="i16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001313 <op_profile name="BI"/>
1314 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001315 <typesupport mode="signed 32" in_t="i32_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001316 <op_profile name="BI"/>
1317 <op_profile name="MI"/>
1318 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001319 <typesupport mode="fp16" in_t="fp16_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001320 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001321 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001322 <typesupport mode="bf16" in_t="bf16_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001323 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001324 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001325 <typesupport mode="fp32" in_t="fp32_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001326 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001327 </typesupport>
1328 </operator>
1329 <operator>
1330 <name>POW</name>
1331 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001332 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Dominic Symes8783adb2022-07-27 12:53:11 +01001333 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001334 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001335 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001336 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001337 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001338 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001339 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001340 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001341 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001342 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001343 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001344 </argument>
1345 </arguments>
1346 <types>
1347 <type name='in_out_t'/>
1348 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001349 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001350 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001351 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001352 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001353 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001354 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001355 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001356 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001357 </typesupport>
1358 </operator>
1359 <operator>
1360 <name>SUB</name>
1361 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001362 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001363 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001364 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001365 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001366 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001367 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001368 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001369 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001370 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001371 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001372 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001373 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001374 </argument>
1375 </arguments>
1376 <types>
1377 <type name='in_out_t'/>
1378 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001379 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001380 <op_profile name="BI"/>
1381 <op_profile name="MI"/>
1382 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001383 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001384 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001385 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001386 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001387 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001388 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001389 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001390 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001391 </typesupport>
1392 </operator>
1393 <operator>
1394 <name>TABLE</name>
1395 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001396 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001397 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001398 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001399 </argument>
Eric Kunze6dd34102024-02-25 22:24:52 -08001400 <argument category="input" name="table" type="tensor_t" shape="[TABLE_SIZE]" tensor-element-type="table_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001401 <description>Lookup table tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001402 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001403 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001404 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001405 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001406 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001407 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001408 </argument>
1409 </arguments>
1410 <types>
1411 <type name='in_t'/>
1412 <type name='table_t'/>
1413 <type name='out_t'/>
1414 <type name='TABLE_SIZE'/>
1415 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001416 <typesupport mode="signed 8" in_t="i8_t" table_t="i8_t" TABLE_SIZE="256" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001417 <op_profile name="BI"/>
1418 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001419 <typesupport mode="signed 16" in_t="i16_t" table_t="i16_t" TABLE_SIZE="513" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001420 <op_profile name="EXT-INT16"/>
1421 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001422 </operator>
1423 </operatorgroup>
1424 <operatorgroup name="elementwise-unary">
1425 <operator>
1426 <name>ABS</name>
1427 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001428 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001429 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001430 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001431 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001432 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001433 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001434 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001435 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001436 </argument>
1437 </arguments>
1438 <types>
1439 <type name='in_out_t'/>
1440 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001441 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001442 <op_profile name="BI"/>
1443 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001444 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001445 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001446 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001447 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001448 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001449 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001450 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001451 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001452 </typesupport>
1453 </operator>
1454 <operator>
1455 <name>BITWISE_NOT</name>
1456 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001457 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001458 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001459 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001460 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001461 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001462 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001463 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001464 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001465 </argument>
1466 </arguments>
1467 <types>
1468 <type name='in_out_t'/>
1469 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001470 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001471 <op_profile name="BI"/>
1472 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001473 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001474 <op_profile name="BI"/>
1475 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001476 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001477 <op_profile name="BI"/>
1478 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001479 </operator>
1480 <operator>
1481 <name>CEIL</name>
1482 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001483 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001484 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001485 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001486 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001487 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001488 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001489 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001490 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001491 </argument>
1492 </arguments>
1493 <types>
1494 <type name='in_out_t'/>
1495 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001496 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001497 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001498 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001499 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001500 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001501 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001502 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001503 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001504 </typesupport>
1505 </operator>
1506 <operator>
1507 <name>CLZ</name>
1508 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001509 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001510 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001511 <levellimit value="rank(shape)" limit="MAX_RANK"/>
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="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001515 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001516 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001517 </argument>
1518 </arguments>
1519 <types>
1520 <type name='in_out_t'/>
1521 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001522 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001523 <op_profile name="BI"/>
1524 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001525 </operator>
Eric Kunze1f058832024-02-13 16:51:17 -08001526 <operator>
1527 <name>COS</name>
1528 <arguments>
1529 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
1530 <description>Input tensor</description>
1531 <levellimit value="rank(shape)" limit="MAX_RANK"/>
1532 <rank min="0" max="MAX_RANK"/>
1533 </argument>
1534 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
1535 <description>Output tensor of same type and shape as input</description>
1536 <rank min="0" max="MAX_RANK"/>
1537 </argument>
1538 </arguments>
1539 <types>
1540 <type name='in_out_t'/>
1541 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001542 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001543 <op_profile name="MI"/>
Eric Kunze1f058832024-02-13 16:51:17 -08001544 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001545 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001546 <op_profile name="EXT-BF16"/>
Eric Kunze1f058832024-02-13 16:51:17 -08001547 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001548 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001549 <op_profile name="MI"/>
Eric Kunze1f058832024-02-13 16:51:17 -08001550 </typesupport>
1551 </operator>
Eric Kunze58098a72022-08-05 15:40:12 -07001552 <operator>
1553 <name>EXP</name>
1554 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001555 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001556 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001557 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001558 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001559 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001560 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001561 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001562 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001563 </argument>
1564 </arguments>
1565 <types>
1566 <type name='in_out_t'/>
1567 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001568 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001569 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001570 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001571 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001572 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001573 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001574 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001575 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001576 </typesupport>
1577 </operator>
1578 <operator>
1579 <name>FLOOR</name>
1580 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001581 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001582 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001583 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001584 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001585 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001586 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001587 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001588 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001589 </argument>
1590 </arguments>
1591 <types>
1592 <type name='in_out_t'/>
1593 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001594 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001595 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001596 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001597 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001598 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001599 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001600 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001601 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001602 </typesupport>
1603 </operator>
1604 <operator>
1605 <name>LOG</name>
1606 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001607 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001608 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001609 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001610 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001611 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001612 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001613 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001614 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001615 </argument>
1616 </arguments>
1617 <types>
1618 <type name='in_out_t'/>
1619 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001620 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001621 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001622 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001623 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001624 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001625 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001626 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001627 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001628 </typesupport>
1629 </operator>
1630 <operator>
1631 <name>LOGICAL_NOT</name>
1632 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001633 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001634 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001635 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001636 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001637 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001638 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001639 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001640 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001641 </argument>
1642 </arguments>
1643 <types>
1644 <type name='in_out_t'/>
1645 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001646 <typesupport mode="Boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001647 <op_profile name="BI"/>
1648 <op_profile name="MI"/>
1649 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001650 </operator>
1651 <operator>
1652 <name>NEGATE</name>
1653 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001654 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001655 <description>Input tensor</description>
Jeremy Johnson9bb5f5d2023-04-06 11:37:05 +01001656 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001657 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001658 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001659 <argument category="attribute" name="input1_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001660 <description>Input 1 zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001661 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001662 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001663 <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001664 <description>Output zero point. Must be zero for non-int8 types.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001665 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001666 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001667 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001668 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001669 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001670 </argument>
1671 </arguments>
1672 <types>
1673 <type name='in_out_t'/>
1674 <type name='acc_t'/>
1675 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001676 <typesupport mode="signed 8" in_out_t="i8_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001677 <op_profile name="BI"/>
1678 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001679 <typesupport mode="signed 16" in_out_t="i16_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001680 <op_profile name="BI"/>
1681 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001682 <typesupport mode="signed 32" in_out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001683 <op_profile name="BI"/>
1684 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001685 <typesupport mode="fp16" in_out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001686 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001687 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001688 <typesupport mode="bf16" in_out_t="bf16_t" acc_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001689 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001690 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001691 <typesupport mode="fp32" in_out_t="fp32_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001692 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001693 </typesupport>
1694 </operator>
1695 <operator>
1696 <name>RECIPROCAL</name>
1697 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001698 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001699 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001700 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001701 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001702 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001703 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001704 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001705 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001706 </argument>
1707 </arguments>
1708 <types>
1709 <type name='in_out_t'/>
1710 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001711 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001712 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001713 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001714 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001715 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001716 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001717 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001718 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001719 </typesupport>
1720 </operator>
1721 <operator>
1722 <name>RSQRT</name>
1723 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001724 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001725 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001726 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001727 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001728 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001729 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001730 <description>Output tensor of same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001731 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001732 </argument>
1733 </arguments>
1734 <types>
1735 <type name='in_out_t'/>
1736 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001737 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001738 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001739 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001740 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001741 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001742 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001743 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001744 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001745 </typesupport>
1746 </operator>
1747 </operatorgroup>
1748 <operatorgroup name="elementwise-ternary">
1749 <operator>
1750 <name>SELECT</name>
1751 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001752 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001753 <description>Input selector tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001754 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001755 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001756 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001757 <description>Input value tensor if input1 is True</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001758 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001759 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001760 <argument category="input" name="input3" type="tensor_t" shape="shape3" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001761 <description>Input value tensor if input1 is False</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001762 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001763 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001764 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001765 <description>Output tensor of same type as input2 and input3</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001766 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001767 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001768 </argument>
1769 </arguments>
1770 <types>
Eric Kunze58098a72022-08-05 15:40:12 -07001771 <type name='in_out_t'/>
1772 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001773 <typesupport mode="Boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001774 <op_profile name="BI"/>
1775 <op_profile name="MI"/>
1776 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001777 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001778 <op_profile name="BI"/>
1779 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001780 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001781 <op_profile name="BI"/>
1782 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001783 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001784 <op_profile name="BI"/>
1785 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001786 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001787 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001788 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001789 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001790 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001791 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001792 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001793 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001794 </typesupport>
1795 </operator>
Eric Kunze1f058832024-02-13 16:51:17 -08001796 <operator>
1797 <name>SIN</name>
1798 <arguments>
1799 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
1800 <description>Input tensor</description>
1801 <levellimit value="rank(shape)" limit="MAX_RANK"/>
1802 <rank min="0" max="MAX_RANK"/>
1803 </argument>
1804 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
1805 <description>Output tensor of same type and shape as input</description>
1806 <rank min="0" max="MAX_RANK"/>
1807 </argument>
1808 </arguments>
1809 <types>
1810 <type name='in_out_t'/>
1811 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001812 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001813 <op_profile name="MI"/>
Eric Kunze1f058832024-02-13 16:51:17 -08001814 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001815 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001816 <op_profile name="EXT-BF16"/>
Eric Kunze1f058832024-02-13 16:51:17 -08001817 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001818 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001819 <op_profile name="MI"/>
Eric Kunze1f058832024-02-13 16:51:17 -08001820 </typesupport>
1821 </operator>
Eric Kunze58098a72022-08-05 15:40:12 -07001822 </operatorgroup>
1823 <operatorgroup name="comparison">
1824 <operator>
1825 <name>EQUAL</name>
1826 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001827 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001828 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001829 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001830 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001831 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001832 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001833 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001834 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001835 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001836 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001837 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001838 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001839 </argument>
1840 </arguments>
1841 <types>
1842 <type name='in_t'/>
1843 <type name='out_t'/>
1844 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001845 <typesupport mode="signed 32" in_t="i32_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001846 <op_profile name="BI"/>
1847 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001848 <typesupport mode="fp16" in_t="fp16_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001849 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001850 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001851 <typesupport mode="bf16" in_t="bf16_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001852 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001853 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001854 <typesupport mode="fp32" in_t="fp32_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001855 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001856 </typesupport>
1857 </operator>
1858 <operator>
1859 <name>GREATER</name>
1860 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001861 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001862 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001863 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001864 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001865 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001866 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001867 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001868 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001869 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001870 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001871 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001872 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001873 </argument>
1874 </arguments>
1875 <types>
1876 <type name='in_t'/>
1877 <type name='out_t'/>
1878 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001879 <typesupport mode="signed 32" in_t="i32_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001880 <op_profile name="BI"/>
1881 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001882 <typesupport mode="fp16" in_t="fp16_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001883 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001884 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001885 <typesupport mode="bf16" in_t="bf16_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001886 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001887 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001888 <typesupport mode="fp32" in_t="fp32_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001889 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001890 </typesupport>
1891 </operator>
1892 <operator>
1893 <name>GREATER_EQUAL</name>
1894 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001895 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001896 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001897 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001898 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001899 <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001900 <description>Input tensor with the same rank as input1</description>
Eric Kunze42085e32023-01-09 11:16:51 -08001901 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001902 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001903 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze8033f122023-10-27 11:47:05 -07001904 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00001905 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08001906 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001907 </argument>
1908 </arguments>
1909 <types>
1910 <type name='in_t'/>
1911 <type name='out_t'/>
1912 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001913 <typesupport mode="signed 32" in_t="i32_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001914 <op_profile name="BI"/>
1915 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001916 <typesupport mode="fp16" in_t="fp16_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001917 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001918 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001919 <typesupport mode="bf16" in_t="bf16_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001920 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001921 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001922 <typesupport mode="fp32" in_t="fp32_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001923 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001924 </typesupport>
1925 </operator>
1926 </operatorgroup>
1927 <operatorgroup name="reduction">
1928 <operator>
1929 <name>REDUCE_ALL</name>
1930 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001931 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001932 <description>Input tensor</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07001933 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001934 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07001935 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001936 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001937 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001938 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001939 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001940 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07001941 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001942 </argument>
1943 </arguments>
1944 <types>
1945 <type name='in_out_t'/>
1946 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001947 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001948 <op_profile name="BI"/>
1949 <op_profile name="MI"/>
1950 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001951 </operator>
1952 <operator>
1953 <name>REDUCE_ANY</name>
1954 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001955 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001956 <description>Input tensor</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07001957 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001958 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07001959 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001960 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001961 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001962 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001963 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001964 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07001965 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001966 </argument>
1967 </arguments>
1968 <types>
1969 <type name='in_out_t'/>
1970 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001971 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001972 <op_profile name="BI"/>
1973 <op_profile name="MI"/>
1974 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07001975 </operator>
1976 <operator>
1977 <name>REDUCE_MAX</name>
1978 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01001979 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08001980 <description>Input tensor</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07001981 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001982 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07001983 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001984 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01001985 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001986 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01001987 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07001988 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07001989 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07001990 </argument>
1991 </arguments>
1992 <types>
1993 <type name='in_out_t'/>
1994 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001995 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001996 <op_profile name="BI"/>
1997 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07001998 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08001999 <op_profile name="BI"/>
2000 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002001 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002002 <op_profile name="BI"/>
2003 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002004 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002005 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002006 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002007 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002008 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002009 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002010 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002011 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002012 </typesupport>
2013 </operator>
2014 <operator>
2015 <name>REDUCE_MIN</name>
2016 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002017 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002018 <description>Input tensor</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07002019 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002020 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07002021 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002022 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002023 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002024 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002025 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002026 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07002027 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002028 </argument>
2029 </arguments>
2030 <types>
2031 <type name='in_out_t'/>
2032 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002033 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002034 <op_profile name="BI"/>
2035 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002036 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002037 <op_profile name="BI"/>
2038 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002039 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002040 <op_profile name="BI"/>
2041 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002042 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002043 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002044 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002045 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002046 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002047 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002048 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002049 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002050 </typesupport>
2051 </operator>
2052 <operator>
2053 <name>REDUCE_PRODUCT</name>
2054 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002055 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002056 <description>Input tensor</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07002057 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002058 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07002059 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002060 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002061 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002062 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002063 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002064 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07002065 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002066 </argument>
2067 </arguments>
2068 <types>
2069 <type name='in_out_t'/>
2070 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002071 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002072 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002073 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002074 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002075 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002076 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002077 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002078 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002079 </typesupport>
2080 </operator>
2081 <operator>
2082 <name>REDUCE_SUM</name>
2083 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002084 <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Dominic Symes9151dd52023-11-03 14:29:51 +00002085 <description>Input tensor</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07002086 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002087 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07002088 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002089 <description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002090 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002091 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002092 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002093 <description>Output tensor. Same rank as the input tensor.</description>
Eric Kunze67f6b262023-06-30 15:04:25 -07002094 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002095 </argument>
2096 </arguments>
2097 <types>
2098 <type name='in_out_t'/>
Dominic Symes9151dd52023-11-03 14:29:51 +00002099 <type name='acc_t'/>
Eric Kunze58098a72022-08-05 15:40:12 -07002100 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002101 <typesupport mode="signed 32" in_out_t="i32_t" acc_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002102 <op_profile name="BI"/>
2103 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002104 <typesupport mode="fp16" in_out_t="fp16_t" acc_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002105 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002106 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002107 <typesupport mode="bf16" in_out_t="bf16_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002108 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002109 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002110 <typesupport mode="fp32" in_out_t="fp32_t" acc_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002111 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002112 </typesupport>
2113 </operator>
2114 </operatorgroup>
2115 <operatorgroup name="data-layout">
2116 <operator>
2117 <name>CONCAT</name>
2118 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002119 <argument category="input" name="input1" type="tensor_list_t" shape="shapes1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002120 <description>List of input tensors. All inputs must have the same rank and data type</description>
Eric Kunzed44dd792024-04-16 17:07:43 -07002121 <levellimit value="tensor_list_shape(input1)" limit="MAX_TENSOR_LIST_SIZE"/>
Dominic Symes830b43b2023-05-09 10:14:49 +01002122 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002123 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07002124 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002125 <description>Axis along which concatenation is to occur, in range from 0 to rank(shape)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002126 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002127 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002128 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002129 <description>Output tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002130 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002131 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002132 </argument>
2133 </arguments>
2134 <types>
2135 <type name='in_out_t'/>
2136 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002137 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002138 <op_profile name="BI"/>
2139 <op_profile name="MI"/>
2140 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002141 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002142 <op_profile name="BI"/>
2143 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002144 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002145 <op_profile name="BI"/>
2146 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002147 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002148 <op_profile name="BI"/>
2149 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002150 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002151 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002152 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002153 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002154 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002155 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002156 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002157 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002158 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002159 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002160 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002161 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002162 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002163 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002164 </typesupport>
2165 </operator>
2166 <operator>
2167 <name>PAD</name>
2168 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002169 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002170 <description>Input tensor</description>
2171 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002172 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002173 <argument category="input" name="padding" type="shape_t" shape="-" tensor-element-type="-">
2174 <description>Number of pad elements at the start and end of each dimension.
2175 The values in padding are interpreted as start, end of each dimension.
2176 As an example for rank 2, the values would be interpreted as [start_dim0, end_dim0, start_dim1, end_dim1].</description>
Eric Kunze58098a72022-08-05 15:40:12 -07002177 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002178 <argument category="attribute" name="pad_const" type="tensor_t" shape="-" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002179 <description>Constant value to be used as padding</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002180 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002181 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002182 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002183 <description>Output tensor of same type as the input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002184 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002185 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002186 </argument>
2187 </arguments>
2188 <types>
2189 <type name='in_out_t'/>
2190 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002191 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002192 <op_profile name="BI"/>
2193 <op_profile name="MI"/>
2194 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002195 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002196 <op_profile name="BI"/>
2197 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002198 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002199 <op_profile name="BI"/>
2200 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002201 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002202 <op_profile name="BI"/>
2203 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002204 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002205 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002206 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002207 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002208 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002209 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002210 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002211 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002212 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002213 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002214 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002215 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002216 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002217 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002218 </typesupport>
2219 </operator>
2220 <operator>
2221 <name>RESHAPE</name>
2222 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002223 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002224 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002225 <levellimit value="rank(shape1)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002226 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002227 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002228 <argument category="input" name="shape" type="shape_t" shape="-" tensor-element-type="-">
2229 <description>shape_t giving the new shape.</description>
Eric Kunze58098a72022-08-05 15:40:12 -07002230 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002231 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002232 <description>Output tensor of same type, size as the input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002233 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002234 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002235 </argument>
2236 </arguments>
2237 <types>
2238 <type name='in_out_t'/>
2239 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002240 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002241 <op_profile name="BI"/>
2242 <op_profile name="MI"/>
2243 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002244 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002245 <op_profile name="BI"/>
2246 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002247 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002248 <op_profile name="BI"/>
2249 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002250 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002251 <op_profile name="BI"/>
2252 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002253 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002254 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002255 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002256 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002257 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002258 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002259 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002260 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002261 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002262 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002263 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002264 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002265 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002266 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002267 </typesupport>
2268 </operator>
2269 <operator>
2270 <name>REVERSE</name>
2271 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002272 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002273 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002274 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002275 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002276 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07002277 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002278 <description>Axis to reverse, in range from 0 to rank(shape)-1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002279 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002280 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002281 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002282 <description>Output tensor. Same shape as input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002283 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002284 </argument>
2285 </arguments>
2286 <types>
2287 <type name='in_out_t'/>
2288 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002289 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002290 <op_profile name="BI"/>
2291 <op_profile name="MI"/>
2292 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002293 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002294 <op_profile name="BI"/>
2295 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002296 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002297 <op_profile name="BI"/>
2298 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002299 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002300 <op_profile name="BI"/>
2301 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002302 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002303 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002304 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002305 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002306 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002307 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002308 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002309 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002310 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002311 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002312 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002313 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002314 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002315 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002316 </typesupport>
2317 </operator>
2318 <operator>
2319 <name>SLICE</name>
2320 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002321 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002322 <description>Input tensor</description>
2323 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002324 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002325 <argument category="input" name="start" type="shape_t" shape="[rank(shape1)]" tensor-element-type="size_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002326 <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 -08002327 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002328 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002329 <argument category="input" name="size" type="shape_t" shape="[rank(shape1)]" tensor-element-type="size_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002330 <description>List of integer size values, of length equal to the rank of input1. Size of the input to be
2331used.</description>
Luke Hutton580fdd12023-02-06 16:37:15 +00002332 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002333 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002334 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002335 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002336 <description>Output tensor of same type as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002337 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002338 </argument>
2339 </arguments>
2340 <types>
2341 <type name='in_out_t'/>
2342 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002343 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002344 <op_profile name="BI"/>
2345 <op_profile name="MI"/>
2346 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002347 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002348 <op_profile name="BI"/>
2349 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002350 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002351 <op_profile name="BI"/>
2352 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002353 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002354 <op_profile name="BI"/>
2355 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002356 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002357 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002358 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002359 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002360 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002361 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002362 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002363 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002364 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002365 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002366 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002367 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002368 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002369 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002370 </typesupport>
2371 </operator>
2372 <operator>
2373 <name>TILE</name>
2374 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002375 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002376 <description>Input tensor</description>
2377 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002378 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002379 <argument category="input" name="multiples" type="shape_t" shape="[rank(shape1)]" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002380 <description>Number of times to replicate input1 in each dimension</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002381 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002382 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002383 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002384 <description>Output tensor of same type, rank as the input tensor</description>
Luke Hutton580fdd12023-02-06 16:37:15 +00002385 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002386 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002387 </argument>
2388 </arguments>
2389 <types>
2390 <type name='in_out_t'/>
2391 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002392 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002393 <op_profile name="BI"/>
2394 <op_profile name="MI"/>
2395 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002396 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002397 <op_profile name="BI"/>
2398 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002399 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002400 <op_profile name="BI"/>
2401 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002402 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002403 <op_profile name="BI"/>
2404 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002405 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002406 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002407 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002408 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002409 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002410 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002411 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002412 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002413 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002414 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002415 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002416 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002417 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002418 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002419 </typesupport>
2420 </operator>
2421 <operator>
2422 <name>TRANSPOSE</name>
2423 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002424 <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
Eric Kunze42085e32023-01-09 11:16:51 -08002425 <description>Input tensor</description>
2426 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002427 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07002428 <argument category="attribute" name="perms" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="i32_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002429 <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 -08002430 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002431 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002432 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002433 <description>Output tensor of same type, rank as the input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002434 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002435 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002436 </argument>
2437 </arguments>
2438 <types>
2439 <type name='in_out_t'/>
2440 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002441 <typesupport mode="boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002442 <op_profile name="BI"/>
2443 <op_profile name="MI"/>
2444 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002445 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002446 <op_profile name="BI"/>
2447 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002448 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002449 <op_profile name="BI"/>
2450 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002451 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002452 <op_profile name="BI"/>
2453 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002454 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002455 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002456 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002457 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002458 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002459 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002460 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002461 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002462 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002463 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002464 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002465 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002466 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002467 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002468 </typesupport>
2469 </operator>
2470 </operatorgroup>
2471 <operatorgroup name="scatter-gather">
2472 <operator>
2473 <name>GATHER</name>
2474 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002475 <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 -07002476 <description>3D value tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002477 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002478 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002479 <argument category="input" name="indices" type="tensor_t" shape="[N,W]" tensor-element-type="size_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002480 <description>2D index tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002481 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002482 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002483 <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 -07002484 <description>3D output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002485 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002486 </argument>
2487 </arguments>
2488 <types>
Kevin Petit18548922023-03-17 17:12:30 +00002489 <type name='in_out_t'/>
Eric Kunze58098a72022-08-05 15:40:12 -07002490 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002491 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002492 <op_profile name="BI"/>
2493 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002494 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002495 <op_profile name="BI"/>
2496 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002497 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002498 <op_profile name="BI"/>
2499 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002500 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002501 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002502 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002503 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002504 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002505 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002506 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002507 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002508 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002509 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002510 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002511 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002512 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002513 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002514 </typesupport>
2515 </operator>
2516 <operator>
2517 <name>SCATTER</name>
2518 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002519 <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 -07002520 <description>3D values in tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002521 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002522 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002523 <argument category="input" name="indices" type="tensor_t" shape="[N,W]" tensor-element-type="size_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002524 <description>2D index tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002525 <rank min="2" max="2"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002526 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002527 <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 -07002528 <description>3D input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002529 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002530 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002531 <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 -07002532 <description>3D output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002533 <rank min="3" max="3"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002534 </argument>
2535 </arguments>
2536 <types>
Kevin Petit18548922023-03-17 17:12:30 +00002537 <type name='in_out_t'/>
Eric Kunze58098a72022-08-05 15:40:12 -07002538 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002539 <typesupport mode="signed 8" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002540 <op_profile name="BI"/>
2541 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002542 <typesupport mode="signed 16" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002543 <op_profile name="BI"/>
2544 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002545 <typesupport mode="signed 32" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002546 <op_profile name="BI"/>
2547 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002548 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002549 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002550 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002551 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002552 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002553 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002554 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002555 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002556 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002557 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002558 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002559 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002560 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002561 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002562 </typesupport>
2563 </operator>
2564 </operatorgroup>
2565 <operatorgroup name="image">
2566 <operator>
2567 <name>RESIZE</name>
2568 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002569 <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 -07002570 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002571 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002572 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002573 <argument category="input" name="scale" type="shape_t" shape="[4]" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002574 <description>[scale_y_n, scale_y_d, scale_x_n, scale_x_d]</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002575 <levellimit value="scale_y_n/scale_y_d" limit="MAX_SCALE"/>
2576 <levellimit value="scale_x_n/scale_x_d" limit="MAX_SCALE"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002577 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002578 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002579 <argument category="input" name="offset" type="shape_t" shape="[2]" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002580 <description>[offset_y, offset_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002581 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002582 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08002583 <argument category="input" name="border" type="shape_t" shape="[2]" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07002584 <description>[border_y, border_x]</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002585 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002586 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002587 <argument category="attribute" name="mode" type="tensor_t" shape="-" tensor-element-type="resize_mode_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002588 <description>BILINEAR or NEAREST</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002589 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002590 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002591 <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 -07002592 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002593 <rank min="4" max="4"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002594 </argument>
2595 </arguments>
2596 <types>
2597 <type name='resize_t'/>
2598 <type name='in_t'/>
2599 <type name='out_t'/>
2600 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002601 <typesupport mode="signed 8, bilinear" resize_t="i16_t" in_t="i8_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002602 <op_profile name="BI"/>
2603 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002604 <typesupport mode="signed 8, nearest" resize_t="i16_t" in_t="i8_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002605 <op_profile name="BI"/>
2606 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002607 <typesupport mode="signed 16, bilinear" resize_t="i16_t" in_t="i16_t" out_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002608 <op_profile name="EXT-INT16"/>
2609 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002610 <typesupport mode="signed 16, nearest" resize_t="i16_t" in_t="i16_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002611 <op_profile name="EXT-INT16"/>
2612 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002613 <typesupport mode="fp16" resize_t="fp16_t" in_t="fp16_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002614 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002615 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002616 <typesupport mode="bf16" resize_t="bf16_t" in_t="bf16_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002617 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002618 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002619 <typesupport mode="fp32" resize_t="fp32_t" in_t="fp32_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002620 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002621 </typesupport>
2622 </operator>
2623 </operatorgroup>
2624 <operatorgroup name="type-conversion">
2625 <operator>
2626 <name>CAST</name>
2627 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002628 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002629 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002630 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002631 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002632 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002633 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002634 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002635 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002636 </argument>
2637 </arguments>
2638 <types>
2639 <type name='in_t'/>
2640 <type name='out_t'/>
2641 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002642 <typesupport mode="bool to signed 8" in_t="bool_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002643 <op_profile name="BI"/>
2644 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002645 <typesupport mode="bool to signed 16" in_t="bool_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002646 <op_profile name="BI"/>
2647 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002648 <typesupport mode="bool to signed 32" in_t="bool_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002649 <op_profile name="BI"/>
2650 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002651 <typesupport mode="signed 8 to bool" in_t="i8_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002652 <op_profile name="BI"/>
2653 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002654 <typesupport mode="signed 8 to signed 16" in_t="i8_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002655 <op_profile name="BI"/>
2656 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002657 <typesupport mode="signed 8 to signed 32" in_t="i8_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002658 <op_profile name="BI"/>
2659 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002660 <typesupport mode="signed 8 to fp16" in_t="i8_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002661 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002662 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002663 <typesupport mode="signed 8 to bf16" in_t="i8_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002664 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002665 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002666 <typesupport mode="signed 8 to fp32" in_t="i8_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002667 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002668 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002669 <typesupport mode="signed 16 to bool" in_t="i16_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002670 <op_profile name="BI"/>
2671 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002672 <typesupport mode="signed 16 to signed 8" in_t="i16_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002673 <op_profile name="BI"/>
2674 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002675 <typesupport mode="signed 16 to signed 32" in_t="i16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002676 <op_profile name="BI"/>
2677 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002678 <typesupport mode="signed 16 to fp16" in_t="i16_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002679 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002680 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002681 <typesupport mode="signed 16 to bf16" in_t="i16_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002682 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002683 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002684 <typesupport mode="signed 16 to fp32" in_t="i16_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002685 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002686 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002687 <typesupport mode="signed 32 to bool" in_t="i32_t" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002688 <op_profile name="BI"/>
2689 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002690 <typesupport mode="signed 32 to signed 8" in_t="i32_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002691 <op_profile name="BI"/>
2692 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002693 <typesupport mode="signed 32 to signed 16" in_t="i32_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002694 <op_profile name="BI"/>
2695 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002696 <typesupport mode="signed 32 to fp16" in_t="i32_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002697 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002698 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002699 <typesupport mode="signed 32 to bf16" in_t="i32_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002700 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002701 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002702 <typesupport mode="signed 32 to fp32" in_t="i32_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002703 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002704 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002705 <typesupport mode="bf16 to signed 8" in_t="bf16_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002706 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002707 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002708 <typesupport mode="bf16 to signed 16" in_t="bf16_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002709 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002710 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002711 <typesupport mode="bf16 to signed 32" in_t="bf16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002712 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002713 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002714 <typesupport mode="bf16 to fp8e4m3" in_t="bf16_t" out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002715 <op_profile name="EXT-BF16" and_name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002716 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002717 <typesupport mode="bf16 to fp8e5m2" in_t="bf16_t" out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002718 <op_profile name="EXT-BF16" and_name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002719 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002720 <typesupport mode="bf16 to fp32" in_t="bf16_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002721 <op_profile name="EXT-BF16"/>
Eric Kunze3c5f0e12022-10-06 16:23:33 -07002722 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002723 <typesupport mode="fp8e4m3 to fp16" in_t="fp8e4m3_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002724 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002725 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002726 <typesupport mode="fp8e4m3 to bf16" in_t="fp8e4m3_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002727 <op_profile name="EXT-FP8E4M3" and_name="EXT-BF16"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002728 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002729 <typesupport mode="fp8e4m3 to fp32" in_t="fp8e4m3_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002730 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002731 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002732 <typesupport mode="fp8e5m2 to fp16" in_t="fp8e5m2_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002733 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002734 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002735 <typesupport mode="fp8e5m2 to bf16" in_t="fp8e5m2_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002736 <op_profile name="EXT-FP8E5M2" and_name="EXT-BF16"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002737 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002738 <typesupport mode="fp8e5m2 to fp32" in_t="fp8e5m2_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002739 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002740 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002741 <typesupport mode="fp16 to signed 8" in_t="fp16_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002742 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002743 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002744 <typesupport mode="fp16 to signed 16" in_t="fp16_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002745 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002746 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002747 <typesupport mode="fp16 to signed 32" in_t="fp16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002748 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002749 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002750 <typesupport mode="fp16 to fp8e4m3" in_t="fp16_t" out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002751 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002752 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002753 <typesupport mode="fp16 to fp8e5m2" in_t="fp16_t" out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002754 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002755 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002756 <typesupport mode="fp16 to fp32" in_t="fp16_t" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002757 <op_profile name="MI"/>
Eric Kunze3c5f0e12022-10-06 16:23:33 -07002758 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002759 <typesupport mode="fp32 to signed 8" in_t="fp32_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002760 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002761 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002762 <typesupport mode="fp32 to signed 16" in_t="fp32_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002763 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002764 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002765 <typesupport mode="fp32 to signed 32" in_t="fp32_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002766 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002767 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002768 <typesupport mode="fp32 to fp8e4m3" in_t="fp32_t" out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002769 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002770 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002771 <typesupport mode="fp32 to fp8e5m2" in_t="fp32_t" out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002772 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002773 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002774 <typesupport mode="fp32 to bf16" in_t="fp32_t" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002775 <op_profile name="EXT-BF16"/>
Eric Kunze3c5f0e12022-10-06 16:23:33 -07002776 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002777 <typesupport mode="fp32 to fp16" in_t="fp32_t" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002778 <op_profile name="MI"/>
Eric Kunze3c5f0e12022-10-06 16:23:33 -07002779 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07002780 </operator>
2781 <operator>
2782 <name>RESCALE</name>
2783 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002784 <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
Dominic Symes8783adb2022-07-27 12:53:11 +01002785 <description>Input tensor</description>
Dominic Symese4d6a1b2022-11-04 18:00:03 +00002786 <levellimit value="rank(shape)" limit="MAX_RANK"/>
Eric Kunze42085e32023-01-09 11:16:51 -08002787 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002788 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002789 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002790 <description>Output tensor with the same shape as input</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002791 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002792 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002793 <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
Eric Kunze8e14dcd2023-06-20 16:11:40 -07002794 <description>Input tensor zero point. int8/uint8 can have zero point within their valid range. uint16 zero point must be either 0 or 32768. All other types must have zero point equal to 0.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002795 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002796 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002797 <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="out_t">
Eric Kunze8e14dcd2023-06-20 16:11:40 -07002798 <description>Output tensor zero point.int8/uint8 can have zero point within their valid range. uint16 zero point must be either 0 or 32768. All other types must have zero point equal to 0.</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002799 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002800 </argument>
Eric Kunze6dd34102024-02-25 22:24:52 -08002801 <argument category="input" name="multiplier" type="tensor_t" shape="[NC]" tensor-element-type="mul_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002802 <description>Scaling multiplier array</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002803 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002804 </argument>
Eric Kunze6dd34102024-02-25 22:24:52 -08002805 <argument category="input" name="shift" type="tensor_t" shape="[NC]" tensor-element-type="i8_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002806 <description>Scaling shift array</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002807 <rank min="1" max="1"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002808 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002809 <argument category="attribute" name="scale32" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunzefb0284e2023-07-18 15:20:53 -07002810 <description>if (scale32) mul_t=i32_t else mul_t=i16_t</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002811 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002812 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002813 <argument category="attribute" name="double_round" type="tensor_t" shape="-" tensor-element-type="bool_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002814 <description>Select double round mode</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002815 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002816 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002817 <argument category="attribute" name="per_channel" type="tensor_t" shape="-" tensor-element-type="bool_t">
Dominic Symes8783adb2022-07-27 12:53:11 +01002818 <description>if (per_channel) NC=shape[rank(shape)-1] else NC=1</description>
Kevin Petit5333c252023-05-16 09:08:48 +01002819 <rank min="0" max="0"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002820 </argument>
Eric Kunzefb0284e2023-07-18 15:20:53 -07002821 <argument category="attribute" name="input_unsigned" type="tensor_t" shape="-" tensor-element-type="bool_t">
2822 <description>If True, treat the input values as unsigned.</description>
2823 <rank min="0" max="0"/>
2824 </argument>
2825 <argument category="attribute" name="output_unsigned" type="tensor_t" shape="-" tensor-element-type="bool_t">
2826 <description>If True, treat the output values as unsigned.</description>
2827 <rank min="0" max="0"/>
2828 </argument>
Eric Kunze58098a72022-08-05 15:40:12 -07002829 </arguments>
2830 <types>
2831 <type name='in_t'/>
2832 <type name='out_t'/>
2833 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002834 <typesupport mode="8-bit to 8-bit" in_t="i8_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002835 <op_profile name="BI"/>
2836 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002837 <typesupport mode="8-bit to 16-bit" in_t="i8_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002838 <op_profile name="BI"/>
2839 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002840 <typesupport mode="8-bit to 32-bit" in_t="i8_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002841 <op_profile name="BI"/>
2842 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002843 <typesupport mode="16-bit to 8-bit" in_t="i16_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002844 <op_profile name="BI"/>
2845 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002846 <typesupport mode="16-bit to 16-bit" in_t="i16_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002847 <op_profile name="BI"/>
2848 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002849 <typesupport mode="16-bit to 32-bit" in_t="i16_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002850 <op_profile name="BI"/>
2851 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002852 <typesupport mode="32-bit to 8-bit" in_t="i32_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002853 <op_profile name="BI"/>
2854 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002855 <typesupport mode="32-bit to 16-bit" in_t="i32_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002856 <op_profile name="BI"/>
2857 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002858 <typesupport mode="32-bit to 32-bit" in_t="i32_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002859 <op_profile name="BI"/>
2860 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002861 <typesupport mode="48-bit to 8-bit" in_t="i48_t" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002862 <op_profile name="EXT-INT16"/>
2863 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002864 <typesupport mode="48-bit to 16-bit" in_t="i48_t" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002865 <op_profile name="EXT-INT16"/>
2866 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002867 <typesupport mode="48-bit to 32-bit" in_t="i48_t" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002868 <op_profile name="EXT-INT16"/>
2869 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07002870 </operator>
2871 </operatorgroup>
2872 <operatorgroup name="data-node">
2873 <operator>
2874 <name>CONST</name>
2875 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002876 <argument category="attribute" name="values" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002877 <description>Constant values</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002878 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002879 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002880 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
Eric Kunzef43fdce2023-10-30 14:14:15 -07002881 <description>Output tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002882 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002883 </argument>
2884 </arguments>
2885 <types>
2886 <type name='out_t' />
2887 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002888 <typesupport mode="Boolean" out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002889 <op_profile name="BI"/>
2890 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002891 <typesupport mode="4-bit" out_t="i4_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002892 <op_profile name="EXT-INT4"/>
2893 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002894 <typesupport mode="8-bit" out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002895 <op_profile name="BI"/>
2896 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002897 <typesupport mode="16-bit" out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002898 <op_profile name="BI"/>
2899 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002900 <typesupport mode="32-bit" out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002901 <op_profile name="BI"/>
2902 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002903 <typesupport mode="48-bit" out_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002904 <op_profile name="EXT-INT16"/>
2905 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002906 <typesupport mode="fp8e4m3" out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002907 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002908 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002909 <typesupport mode="fp8e5m2" out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002910 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002911 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002912 <typesupport mode="fp16" out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002913 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002914 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002915 <typesupport mode="bf16" out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002916 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002917 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002918 <typesupport mode="fp32" out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002919 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002920 </typesupport>
2921 </operator>
2922 <operator>
2923 <name>IDENTITY</name>
2924 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01002925 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002926 <description>Input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002927 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002928 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01002929 <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
Eric Kunze58098a72022-08-05 15:40:12 -07002930 <description>Output tensor of the same type, size as the input tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08002931 <rank min="0" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002932 </argument>
2933 </arguments>
2934 <types>
2935 <type name='in_out_t' />
2936 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002937 <typesupport mode="Boolean" in_out_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002938 <op_profile name="BI"/>
2939 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002940 <typesupport mode="4-bit" in_out_t="i4_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002941 <op_profile name="EXT-INT4"/>
2942 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002943 <typesupport mode="8-bit" in_out_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002944 <op_profile name="BI"/>
2945 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002946 <typesupport mode="16-bit" in_out_t="i16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002947 <op_profile name="BI"/>
2948 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002949 <typesupport mode="32-bit" in_out_t="i32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002950 <op_profile name="BI"/>
2951 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002952 <typesupport mode="48-bit" in_out_t="i48_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002953 <op_profile name="EXT-INT16"/>
2954 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002955 <typesupport mode="fp8e4m3" in_out_t="fp8e4m3_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002956 <op_profile name="EXT-FP8E4M3"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002957 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002958 <typesupport mode="fp8e5m2" in_out_t="fp8e5m2_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002959 <op_profile name="EXT-FP8E5M2"/>
Eric Kunze74e2ceb2023-10-20 15:58:55 -07002960 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002961 <typesupport mode="fp16" in_out_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002962 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002963 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002964 <typesupport mode="bf16" in_out_t="bf16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002965 <op_profile name="EXT-BF16"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002966 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002967 <typesupport mode="fp32" in_out_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08002968 <op_profile name="MI"/>
Eric Kunze58098a72022-08-05 15:40:12 -07002969 </typesupport>
2970 </operator>
2971 </operatorgroup>
Eric Kunze633a3d92023-07-11 14:10:44 -07002972 <operatorgroup name="custom">
2973 <operator>
2974 <name>CUSTOM</name>
2975 <arguments>
2976 <argument category="input" name="input_list" type="tensor_list_t" shape="-" tensor-element-type="-">
2977 <description>List of input tensors</description>
Eric Kunzed44dd792024-04-16 17:07:43 -07002978 <levellimit value="tensor_list_shape(input_list)" limit="MAX_TENSOR_LIST_SIZE"/>
Eric Kunze633a3d92023-07-11 14:10:44 -07002979 </argument>
Jerry Ge946ba352023-10-31 15:52:26 +00002980 <argument category="attribute" name="operator_name" type="String" shape="-" tensor-element-type="-">
Eric Kunze633a3d92023-07-11 14:10:44 -07002981 <description>String which tells the backend which custom operator is being called</description>
2982 </argument>
Jerry Ge946ba352023-10-31 15:52:26 +00002983 <argument category="attribute" name="domain_name" type="String" shape="-" tensor-element-type="-">
Eric Kunze633a3d92023-07-11 14:10:44 -07002984 <description>String idenifier which can help avoid name collisions on the operator field.
2985 Different implementations of a given operator would be in different domains.
2986 Implementations can choose which domains they want to support.</description>
2987 </argument>
2988 <argument category="attribute" name="implementation_attrs" type="String" shape="-" tensor-element-type="-">
2989 <description>String value containing implementation specific attributes which apply to the operation</description>
2990 </argument>
2991 <argument category="output" name="output_list" type="tensor_list_t" shape="-" tensor-element-type="-">
2992 <description>List of output tensors</description>
Eric Kunzed44dd792024-04-16 17:07:43 -07002993 <levellimit value="tensor_list_shape(output_list)" limit="MAX_TENSOR_LIST_SIZE"/>
Eric Kunze633a3d92023-07-11 14:10:44 -07002994 </argument>
2995 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08002996 <types>
2997 <type name='tensor_list_t' />
2998 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07002999 <typesupport mode="All" tensor_list_t="-" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003000 <op_profile name="BI"/>
3001 <op_profile name="MI"/>
3002 </typesupport>
Eric Kunze633a3d92023-07-11 14:10:44 -07003003 </operator>
3004 </operatorgroup>
Eric Kunze58098a72022-08-05 15:40:12 -07003005 <operatorgroup name="control-flow">
3006 <operator>
3007 <name>COND_IF</name>
3008 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01003009 <argument category="input" name="condition" type="tensor_t" shape="shape" tensor-element-type="bool_t">
Dominic Symes4370b932022-11-30 14:25:20 +00003010 <description>Input condition as a size 1 tensor</description>
Eric Kunze42085e32023-01-09 11:16:51 -08003011 <rank min="1" max="MAX_RANK"/>
Eric Kunze58098a72022-08-05 15:40:12 -07003012 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01003013 <argument category="input" name="input_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Kevin Petitc0e467a2023-05-10 16:21:23 +01003014 <description>List of input tensors</description>
Eric Kunzed44dd792024-04-16 17:07:43 -07003015 <levellimit value="tensor_list_shape(input_list)" limit="MAX_TENSOR_LIST_SIZE"/>
Kevin Petitc0e467a2023-05-10 16:21:23 +01003016 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01003017 <argument category="attribute" name="then_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07003018 <description>TOSA graph to execute if condition is true</description>
3019 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01003020 <argument category="attribute" name="else_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07003021 <description>TOSA graph to execute if condition is false</description>
3022 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01003023 <argument category="output" name="output_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07003024 <description>List of output tensors</description>
Eric Kunzed44dd792024-04-16 17:07:43 -07003025 <levellimit value="tensor_list_shape(output_list)" limit="MAX_TENSOR_LIST_SIZE"/>
Eric Kunze58098a72022-08-05 15:40:12 -07003026 </argument>
3027 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003028 <types>
3029 <type name='cond_t' />
3030 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003031 <typesupport mode="Boolean" cond_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003032 <op_profile name="BI"/>
3033 <op_profile name="MI"/>
3034 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07003035 </operator>
3036 <operator>
3037 <name>WHILE_LOOP</name>
3038 <arguments>
Kevin Petit5333c252023-05-16 09:08:48 +01003039 <argument category="input" name="input_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07003040 <description>List of input tensors</description>
Eric Kunzed44dd792024-04-16 17:07:43 -07003041 <levellimit value="tensor_list_shape(input_list)" limit="MAX_TENSOR_LIST_SIZE"/>
Eric Kunze58098a72022-08-05 15:40:12 -07003042 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01003043 <argument category="attribute" name="cond_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07003044 <description>TOSA graph to evaluate the condition</description>
3045 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01003046 <argument category="attribute" name="body_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07003047 <description>TOSA graph to execute the loop body</description>
3048 </argument>
Kevin Petit5333c252023-05-16 09:08:48 +01003049 <argument category="output" name="output_list" type="tensor_list_t" shape="-" tensor-element-type="-">
Eric Kunze58098a72022-08-05 15:40:12 -07003050 <description>List of output tensors</description>
Eric Kunzed44dd792024-04-16 17:07:43 -07003051 <levellimit value="tensor_list_shape(output_list)" limit="MAX_TENSOR_LIST_SIZE"/>
Eric Kunze58098a72022-08-05 15:40:12 -07003052 </argument>
3053 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003054 <types>
3055 <type name='cond_t' />
3056 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003057 <typesupport mode="Boolean" cond_t="bool_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003058 <op_profile name="BI"/>
3059 <op_profile name="MI"/>
3060 </typesupport>
Eric Kunze58098a72022-08-05 15:40:12 -07003061 </operator>
3062 </operatorgroup>
Jerry Ge0fc278b2023-08-11 16:43:30 +00003063 <operatorgroup name="variable">
3064 <operator>
3065 <name>VARIABLE</name>
3066 <arguments>
Eric Kunzefb0284e2023-07-18 15:20:53 -07003067 <argument category="attribute" name="uid" type="tensor_t" shape="-" tensor-element-type="i32_t">
Jerry Ge0fc278b2023-08-11 16:43:30 +00003068 <description>Globally unique identifier for the declared variable tensor.</description>
3069 <rank min="0" max="0"/>
3070 </argument>
Eric Kunze526f6c72024-01-12 17:18:42 -08003071 <argument category="attribute" name="var_shape" type="tensor_t" shape="var_shape" tensor-element-type="size_t">
Jerry Ge0fc278b2023-08-11 16:43:30 +00003072 <description>The variable tensor shape</description>
3073 <rank min="1" max="1"/>
3074 </argument>
3075 <argument category="attribute" name="type" type="tensor_t" shape="-" tensor-element-type="var_t">
3076 <description>Type of the tensor variable elements.</description>
3077 <rank min="0" max="0"/>
3078 </argument>
3079 <argument category="attribute" name="initial_value" type="tensor_t" shape="shape" tensor-element-type="in_t" optional="true">
3080 <description>Initial value of the variable tensor. This argument is optional with default value NULL.</description>
3081 <levellimit value="rank(shape)" limit="MAX_RANK"/>
3082 <rank min="0" max="MAX_RANK"/>
3083 </argument>
3084 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003085 <types>
3086 <type name='var_t' />
3087 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003088 <typesupport mode="signed 8" var_t="i8_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003089 <op_profile name="BI" and_name="EXT-VARIABLE"/>
3090 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003091 <typesupport mode="fp16" var_t="fp16_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003092 <op_profile name="MI" and_name="EXT-VARIABLE"/>
3093 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003094 <typesupport mode="fp32" var_t="fp32_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003095 <op_profile name="MI" and_name="EXT-VARIABLE"/>
3096 </typesupport>
Jerry Ge0fc278b2023-08-11 16:43:30 +00003097 </operator>
3098 <operator>
3099 <name>VARIABLE_WRITE</name>
3100 <arguments>
Eric Kunzefb0284e2023-07-18 15:20:53 -07003101 <argument category="attribute" name="uid" type="tensor_t" shape="-" tensor-element-type="i32_t">
Jerry Ge0fc278b2023-08-11 16:43:30 +00003102 <description>Globally unique identifier of the variable tensor that is writing to</description>
3103 <rank min="0" max="0"/>
3104 </argument>
3105 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_t">
3106 <description>Input tensor</description>
3107 <levellimit value="rank(shape)" limit="MAX_RANK"/>
3108 <rank min="0" max="MAX_RANK"/>
3109 </argument>
3110 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003111 <types>
3112 <type name='var_t' />
3113 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003114 <typesupport mode="signed 8" var_t="i8_t" version_added="1.0">
Eric Kunzece015e72024-03-19 16:02:07 -07003115 <op_profile name="BI" and_name="EXT-VARIABLE"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003116 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003117 <typesupport mode="fp16" var_t="fp16_t" version_added="1.0">
Eric Kunzece015e72024-03-19 16:02:07 -07003118 <op_profile name="MI" and_name="EXT-VARIABLE"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003119 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003120 <typesupport mode="fp32" var_t="fp32_t" version_added="1.0">
Eric Kunzece015e72024-03-19 16:02:07 -07003121 <op_profile name="MI" and_name="EXT-VARIABLE"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003122 </typesupport>
Jerry Ge0fc278b2023-08-11 16:43:30 +00003123 </operator>
3124 <operator>
3125 <name>VARIABLE_READ</name>
3126 <arguments>
Eric Kunzefb0284e2023-07-18 15:20:53 -07003127 <argument category="attribute" name="uid" type="tensor_t" shape="-" tensor-element-type="i32_t">
Jerry Ge0fc278b2023-08-11 16:43:30 +00003128 <description>Globally unique identifier of the variable tensor that is reading from </description>
3129 <rank min="0" max="0"/>
3130 </argument>
3131 <argument category="output" name="output1" type="tensor_t" shape="shape" tensor-element-type="out_t">
3132 <description>Output tensor</description>
3133 <levellimit value="rank(shape)" limit="MAX_RANK"/>
3134 <rank min="0" max="MAX_RANK"/>
3135 </argument>
3136 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003137 <types>
3138 <type name='var_t' />
3139 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003140 <typesupport mode="signed 8" var_t="i8_t" version_added="1.0">
Eric Kunzece015e72024-03-19 16:02:07 -07003141 <op_profile name="BI" and_name="EXT-VARIABLE"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003142 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003143 <typesupport mode="fp16" var_t="fp16_t" version_added="1.0">
Eric Kunzece015e72024-03-19 16:02:07 -07003144 <op_profile name="MI" and_name="EXT-VARIABLE"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003145 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003146 <typesupport mode="fp32" var_t="fp32_t" version_added="1.0">
Eric Kunzece015e72024-03-19 16:02:07 -07003147 <op_profile name="MI" and_name="EXT-VARIABLE"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003148 </typesupport>
Jerry Ge0fc278b2023-08-11 16:43:30 +00003149 </operator>
3150 </operatorgroup>
Eric Kunze526f6c72024-01-12 17:18:42 -08003151 <operatorgroup name="shape">
3152 <operator>
3153 <name>ADD_SHAPE</name>
3154 <arguments>
3155 <argument category="input" name="input1" type="shape_t" shape="-" tensor-element-type="-">
3156 <description>Input 1</description>
3157 </argument>
3158 <argument category="input" name="input2" type="shape_t" shape="-" tensor-element-type="-">
3159 <description>Input 2</description>
3160 </argument>
3161 <argument category="output" name="output" type="shape_t" shape="-" tensor-element-type="-">
3162 <description>Output shape</description>
3163 </argument>
3164 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003165 <types>
3166 <type name='shape_t' />
3167 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003168 <typesupport mode="shape" shape_t="size_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003169 <op_profile name="BI"/>
3170 <op_profile name="MI"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003171 </typesupport>
Eric Kunze526f6c72024-01-12 17:18:42 -08003172 </operator>
3173 <operator>
3174 <name>CONCAT_SHAPE</name>
3175 <arguments>
3176 <argument category="input" name="input1" type="shape_list_t" shape="-" tensor-element-type="-">
3177 <description>List of input shape values</description>
3178 </argument>
3179 <argument category="output" name="output" type="shape_t" shape="-" tensor-element-type="-">
3180 <description>Output shape</description>
3181 </argument>
3182 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003183 <types>
3184 <type name='shape_t' />
3185 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003186 <typesupport mode="shape" shape_t="size_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003187 <op_profile name="BI"/>
3188 <op_profile name="MI"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003189 </typesupport>
Eric Kunze526f6c72024-01-12 17:18:42 -08003190 </operator>
3191 <operator>
3192 <name>CONST_SHAPE</name>
3193 <arguments>
3194 <argument category="attribute" name="values" type="shape_t" shape="-" tensor-element-type="-">
3195 <description>Constant shape</description>
3196 </argument>
3197 <argument category="output" name="output" type="shape_t" shape="-" tensor-element-type="-">
3198 <description>Output shape</description>
3199 </argument>
3200 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003201 <types>
3202 <type name='shape_t' />
3203 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003204 <typesupport mode="shape" shape_t="size_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003205 <op_profile name="BI"/>
3206 <op_profile name="MI"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003207 </typesupport>
Eric Kunze526f6c72024-01-12 17:18:42 -08003208 </operator>
3209 <operator>
Eric Kunze83012912024-03-19 16:25:09 -07003210 <name>DIM</name>
3211 <arguments>
3212 <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_t">
3213 <description>Input tensor</description>
3214 <levellimit value="rank(shape)" limit="MAX_RANK"/>
3215 <rank min="1" max="MAX_RANK"/>
3216 </argument>
3217 <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="i32_t">
3218 <description>Axis in range from 0 to rank(shape) - 1</description>
3219 <rank min="0" max="0"/>
3220 </argument>
3221 <argument category="output" name="output" type="shape_t" shape="-" tensor-element-type="-" >
3222 <description>Output shape type of size 1 giving the size of the shape for the given axis</description>
3223 </argument>
3224 </arguments>
3225 <types>
3226 <type name='in_t'/>
3227 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003228 <typesupport mode="boolean" in_t="bool_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003229 <op_profile name="BI"/>
3230 <op_profile name="MI"/>
3231 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003232 <typesupport mode="signed 8" in_t="i8_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003233 <op_profile name="BI"/>
3234 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003235 <typesupport mode="signed 16" in_t="i16_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003236 <op_profile name="BI"/>
3237 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003238 <typesupport mode="signed 32" in_t="i32_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003239 <op_profile name="BI"/>
3240 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003241 <typesupport mode="fp8e4m3" in_t="fp8e4m3_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003242 <op_profile name="EXT-FP8E4M3"/>
3243 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003244 <typesupport mode="fp8e5m2" in_t="fp8e5m2_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003245 <op_profile name="EXT-FP8E5M2"/>
3246 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003247 <typesupport mode="fp16" in_t="fp16_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003248 <op_profile name="MI"/>
3249 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003250 <typesupport mode="bf16" in_t="bf16_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003251 <op_profile name="EXT-BF16"/>
3252 </typesupport>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003253 <typesupport mode="fp32" in_t="fp32_t" version_added="1.0">
Eric Kunze83012912024-03-19 16:25:09 -07003254 <op_profile name="MI"/>
3255 </typesupport>
3256 </operator>
3257 <operator>
Eric Kunze526f6c72024-01-12 17:18:42 -08003258 <name>DIV_SHAPE</name>
3259 <arguments>
3260 <argument category="input" name="input1" type="shape_t" shape="-" tensor-element-type="-">
3261 <description>Input 1</description>
3262 </argument>
3263 <argument category="input" name="input2" type="shape_t" shape="-" tensor-element-type="-">
3264 <description>Input 2</description>
3265 </argument>
3266 <argument category="output" name="output" type="shape_t" shape="-" tensor-element-type="-">
3267 <description>Output shape</description>
3268 </argument>
3269 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003270 <types>
3271 <type name='shape_t' />
3272 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003273 <typesupport mode="shape" shape_t="size_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003274 <op_profile name="BI"/>
3275 <op_profile name="MI"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003276 </typesupport>
Eric Kunze526f6c72024-01-12 17:18:42 -08003277 </operator>
3278 <operator>
3279 <name>MUL_SHAPE</name>
3280 <arguments>
3281 <argument category="input" name="input1" type="shape_t" shape="-" tensor-element-type="-">
3282 <description>Input 1</description>
3283 </argument>
3284 <argument category="input" name="input2" type="shape_t" shape="-" tensor-element-type="-">
3285 <description>Input 2</description>
3286 </argument>
3287 <argument category="output" name="output" type="shape_t" shape="-" tensor-element-type="-">
3288 <description>Output shape</description>
3289 </argument>
3290 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003291 <types>
3292 <type name='shape_t' />
3293 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003294 <typesupport mode="shape" shape_t="size_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003295 <op_profile name="BI"/>
3296 <op_profile name="MI"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003297 </typesupport>
Eric Kunze526f6c72024-01-12 17:18:42 -08003298 </operator>
3299 <operator>
3300 <name>SUB_SHAPE</name>
3301 <arguments>
3302 <argument category="input" name="input1" type="shape_t" shape="-" tensor-element-type="-">
3303 <description>Input 1</description>
3304 </argument>
3305 <argument category="input" name="input2" type="shape_t" shape="-" tensor-element-type="-">
3306 <description>Input 2</description>
3307 </argument>
3308 <argument category="output" name="output" type="shape_t" shape="-" tensor-element-type="-">
3309 <description>Output shape</description>
3310 </argument>
3311 </arguments>
Eric Kunze6dd34102024-02-25 22:24:52 -08003312 <types>
3313 <type name='shape_t' />
3314 </types>
Eric Kunzee6c07c82024-04-16 18:08:08 -07003315 <typesupport mode="shape" shape_t="size_t" version_added="1.0">
Eric Kunze6dd34102024-02-25 22:24:52 -08003316 <op_profile name="BI"/>
3317 <op_profile name="MI"/>
Eric Kunze6dd34102024-02-25 22:24:52 -08003318 </typesupport>
Eric Kunze526f6c72024-01-12 17:18:42 -08003319 </operator>
3320 </operatorgroup>
Eric Kunze58098a72022-08-05 15:40:12 -07003321 </operators>
Eric Kunze544227e2023-02-13 16:19:34 -08003322
Kevin Petit53e76592023-04-27 17:28:16 +01003323 <enum name="resize_mode_t" description="Valid resize types">
Eric Kunze544227e2023-02-13 16:19:34 -08003324 <enumval value="0" name="NEAREST_NEIGHBOR" description="Nearest neighbor resize"/>
3325 <enumval value="1" name="BILINEAR" description="Bilinear resize"/>
3326 </enum>
3327
Eric Kunze0afe61f2024-02-14 16:33:31 -08003328 <enum name="acc_type_t" description="Allowed accumulator types">
Eric Kunze544227e2023-02-13 16:19:34 -08003329 <enumval value="0" name="INT32" description="32-bit integer"/>
3330 <enumval value="1" name="FP16" description="16-bit floating-point"/>
3331 <enumval value="2" name="FP32" description="32-bit floating-point"/>
Eric Kunze0afe61f2024-02-14 16:33:31 -08003332 <enumval value="3" name="INT48" description="48-bit integer"/>
Eric Kunze544227e2023-02-13 16:19:34 -08003333 </enum>
3334
Jerry Ge0fc278b2023-08-11 16:43:30 +00003335 <enum name="var_t" description="Variable tensor data type">
3336 <enumval value="0" name="BOOLEAN" description="Boolean"/>
3337 <enumval value="1" name="INT8" description="8-bit integer"/>
3338 <enumval value="2" name="INT16" description="16-bit integer"/>
3339 <enumval value="3" name="INT32" description="32-bit integer"/>
3340 <enumval value="4" name="FP16" description="16-bit floating-point"/>
3341 <enumval value="5" name="BF16" description="16-bit brain floating-point"/>
3342 <enumval value="6" name="FP32" description="32-bit floating-point"/>
3343 </enum>
3344
Eric Kunze58098a72022-08-05 15:40:12 -07003345</tosa>