aboutsummaryrefslogtreecommitdiff
path: root/tosa.xml
diff options
context:
space:
mode:
Diffstat (limited to 'tosa.xml')
-rw-r--r--tosa.xml814
1 files changed, 281 insertions, 533 deletions
diff --git a/tosa.xml b/tosa.xml
index 16b8219..1c17bb5 100644
--- a/tosa.xml
+++ b/tosa.xml
@@ -1,33 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tosa SYSTEM "tosa.dtd">
<tosa>
- <version major="0" minor="70" patch="0" draft="false"/>
+ <version major="0" minor="60" patch="0" draft="false"/>
<profiles>
<profile name="BI">Base Inference</profile>
<profile name="MI">Main Inference</profile>
<profile name="MT">Main Training</profile>
</profiles>
<levels>
- <level name="none" max_rank="32" max_kernel="2147483647" max_stride="2147483647" max_scale="2048" max_log2_size="63">No level</level>
- <level name="8K" max_rank="6" max_kernel="8192" max_stride="8192" max_scale="64" max_log2_size="31">Level 8K</level>
+ <level name="none" max_rank="32" max_kernel="2147483647" max_stride="2147483647" max_scale="2048">No level</level>
+ <level name="8K" max_rank="6" max_kernel="8192" max_stride="8192" max_scale="64" >Level 8K</level>
</levels>
<operators>
<operatorgroup name="tensor">
<operator>
<name>ARGMAX</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_t">
- <description>Input tensor</description>
- <levellimit value="rank(shape1)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
+ <argument category="input" name="input" type="in_t*" shape="shape1">
+ <description>Input tensor with rank from 1 to 4</description>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
- <description>Axis in range from 0 to rank(shape1) - 1</description>
- <rank min="0" max="0"/>
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
+ <description>Axis in range from 0 to rank(shape1)-1</description>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
- <description>Output tensor, with rank = rank(shape1) - 1</description>
- <rank min="0" max="MAX_RANK - 1"/>
+ <argument category="output" name="output" type="out_t*" shape="shape">
+ <description>Output tensor, with rank = rank(shape1)-1</description>
</argument>
</arguments>
<types>
@@ -52,45 +48,37 @@
<operator>
<name>AVG_POOL2D</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,C]" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="4" max="4"/>
+ <argument category="input" name="input" type="in_out_t*" shape="[N,IH,IW,C]">
+ <description>Input tensor 4D</description>
</argument>
- <argument category="attribute" name="kernel" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="kernel" type="int32_t*" shape="[2]">
<description>[kernel_y, kernel_x]</description>
<levellimit value="kernel_y" limit="MAX_KERNEL"/>
<levellimit value="kernel_x" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="stride" type="int32_t*" shape="[2]">
<description>[stride_y, stride_x]</description>
<levellimit value="stride_y" limit="MAX_STRIDE"/>
<levellimit value="stride_x" limit="MAX_STRIDE"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
+ <argument category="attribute" name="pad" type="int32_t*" shape="[4]">
<description>[pad_top, pad_bottom, pad_left, pad_right]</description>
<levellimit value="pad_top" limit="MAX_KERNEL"/>
<levellimit value="pad_bottom" limit="MAX_KERNEL"/>
<levellimit value="pad_left" limit="MAX_KERNEL"/>
<levellimit value="pad_right" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="acc_size" type="tensor_t" shape="-" tensor-element-type="acc_size_t">
+ <argument category="attribute" name="acc_size" type="acc_t" shape="-">
<description>Enumerated type, must be one of INT32, FP16, FP32, as defined in the Supported Data Types table for this operation</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
+ <argument category="attribute" name="input_zp" type="in_out_t" shape="-">
<description>Input tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
+ <argument category="attribute" name="output_zp" type="in_out_t" shape="-">
<description>Output tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C]" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="[N,OH,OW,C]">
<description>Output tensor 4D</description>
- <rank min="4" max="4"/>
</argument>
</arguments>
<types>
@@ -119,49 +107,40 @@
<operator>
<name>CONV2D</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,IC]" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t*" shape="[N,IH,IW,IC]">
<description>Input tensor</description>
- <rank min="4" max="4"/>
</argument>
- <argument category="input" name="weight" type="tensor_t" shape="[OC,KH,KW,IC]" tensor-element-type="weight_t">
+ <argument category="input" name="weight" type="weight_t*" shape="[OC,KH,KW,IC]">
<description>Weight kernel size KH x KW</description>
<levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
<levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
- <rank min="4" max="4"/>
</argument>
- <argument category="input" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
+ <argument category="input" name="bias" type="out_t*" shape="[OC]">
<description>Per output channel bias data.</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
+ <argument category="attribute" name="pad" type="int32_t*" shape="[4]">
<description>[pad_top, pad_bottom, pad_left, pad_right]</description>
<levellimit value="pad_top" limit="MAX_KERNEL"/>
<levellimit value="pad_bottom" limit="MAX_KERNEL"/>
<levellimit value="pad_left" limit="MAX_KERNEL"/>
<levellimit value="pad_right" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="stride" type="int32_t*" shape="[2]">
<description>[stride_y, stride_x]</description>
<levellimit value="stride_y" limit="MAX_STRIDE"/>
<levellimit value="stride_x" limit="MAX_STRIDE"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="dilation" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="dilation" type="int32_t*" shape="[2]">
<description>[dilation_y, dilation_x]</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="input_zp" type="in_t" shape="-">
<description>Input tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
+ <argument category="attribute" name="weight_zp" type="weight_t" shape="-">
<description>Weight zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,OC]" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="[N,OH,OW,OC]">
<description>Output tensor</description>
- <rank min="4" max="4"/>
</argument>
</arguments>
<types>
@@ -192,22 +171,19 @@
<operator>
<name>CONV3D</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,ID,IH,IW,IC]" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t*" shape="[N,ID,IH,IW,IC]">
<description>Input tensor</description>
- <rank min="5" max="5"/>
</argument>
- <argument category="input" name="weight" type="tensor_t" shape="[OC,KD,KH,KW,IC]" tensor-element-type="weight_t">
+ <argument category="input" name="weight" type="weight_t*" shape="[OC,KD,KH,KW,IC]">
<description>Weight kernel size KDxKHxKW</description>
<levellimit value="dilation_d * KD" limit="MAX_KERNEL"/>
<levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
<levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
- <rank min="5" max="5"/>
</argument>
- <argument category="input" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
+ <argument category="input" name="bias" type="out_t*" shape="[OC]">
<description>Per output channel bias data.</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="pad" type="tensor_t" shape="[6]" tensor-element-type="int32_t">
+ <argument category="attribute" name="pad" type="int32_t*" shape="[6]">
<description>[pad_d0, pad_d1, pad_top, pad_bottom, pad_left, pad_right]</description>
<levellimit value="pad_d0" limit="MAX_KERNEL"/>
<levellimit value="pad_d1" limit="MAX_KERNEL"/>
@@ -215,30 +191,24 @@
<levellimit value="pad_bottom" limit="MAX_KERNEL"/>
<levellimit value="pad_left" limit="MAX_KERNEL"/>
<levellimit value="pad_right" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="stride" type="tensor_t" shape="[3]" tensor-element-type="int32_t">
+ <argument category="attribute" name="stride" type="int32_t*" shape="[3]">
<description>[stride_d, stride_y, stride_x]</description>
<levellimit value="stride_y" limit="MAX_STRIDE"/>
<levellimit value="stride_x" limit="MAX_STRIDE"/>
<levellimit value="stride_d" limit="MAX_STRIDE"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="dilation" type="tensor_t" shape="[3]" tensor-element-type="int32_t">
+ <argument category="attribute" name="dilation" type="int32_t*" shape="[3]">
<description>[dilation_d, dilation_y, dilation_x]</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="input_zp" type="in_t" shape="-">
<description>Input tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
+ <argument category="attribute" name="weight_zp" type="weight_t" shape="-">
<description>Weight zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OD,OH,OW,OC]" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="[N,OD,OH,OW,OC]">
<description>Output tensor</description>
- <rank min="5" max="5"/>
</argument>
</arguments>
<types>
@@ -269,49 +239,40 @@
<operator>
<name>DEPTHWISE_CONV2D</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,H,W,C]" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t*" shape="[N,H,W,C]">
<description>Input tensor</description>
- <rank min="4" max="4"/>
</argument>
- <argument category="input" name="weight" type="tensor_t" shape="[KH,KW,C,M]" tensor-element-type="weight_t">
+ <argument category="input" name="weight" type="weight_t*" shape="[KH,KW,C,M]">
<description>Weight kernel size KH x KW</description>
<levellimit value="dilation_y * KH" limit="MAX_KERNEL"/>
<levellimit value="dilation_x * KW" limit="MAX_KERNEL"/>
- <rank min="4" max="4"/>
</argument>
- <argument category="input" name="bias" type="tensor_t" shape="[C*M]" tensor-element-type="out_t">
+ <argument category="input" name="bias" type="out_t*" shape="[C*M]">
<description>Per output channel bias data.</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
+ <argument category="attribute" name="pad" type="int32_t*" shape="[4]">
<description>[pad_top, pad_bottom, pad_left, pad_right]</description>
<levellimit value="pad_top" limit="MAX_KERNEL"/>
<levellimit value="pad_bottom" limit="MAX_KERNEL"/>
<levellimit value="pad_left" limit="MAX_KERNEL"/>
<levellimit value="pad_right" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="stride" type="int32_t*" shape="[2]">
<description>[stride_y, stride_x]</description>
<levellimit value="stride_y" limit="MAX_STRIDE"/>
<levellimit value="stride_x" limit="MAX_STRIDE"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="dilation" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="dilation" type="int32_t*" shape="[2]">
<description>[dilation_y, dilation_x]</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="input_zp" type="in_t" shape="-">
<description>Input tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
+ <argument category="attribute" name="weight_zp" type="weight_t" shape="-">
<description>Weight zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C*M]" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="[N,OH,OW,C*M]">
<description>Output tensor</description>
- <rank min="4" max="4"/>
</argument>
</arguments>
<types>
@@ -342,27 +303,22 @@
<operator>
<name>FFT2D</name>
<arguments>
- <argument category="input" name="input_real" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
+ <argument category="input" name="input_real" type="in_out_t*" shape="[N,H,W]">
<description>Real part of the complex input. H,W must be powers of two.</description>
<levellimit value="H" limit="MAX_KERNEL"/>
<levellimit value="W" limit="MAX_KERNEL"/>
- <rank min="3" max="3"/>
</argument>
- <argument category="input" name="input_imag" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
+ <argument category="input" name="input_imag" type="in_out_t*" shape="[N,H,W]">
<description>Imaginary part of the complex input. H,W must be powers of two.</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="attribute" name="inverse" type="tensor_t" shape="-" tensor-element-type="bool_t">
+ <argument category="attribute" name="inverse" type="bool_t" shape="-">
<description>false for forward FFT, true for inverse FFT</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output_real" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
+ <argument category="output" name="output_real" type="in_out_t*" shape="[N,H,W]">
<description>Real part of the complex output.</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="output" name="output_imag" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
+ <argument category="output" name="output_imag" type="in_out_t*" shape="[N,H,W]">
<description>Imaginary part of the complex output.</description>
- <rank min="3" max="3"/>
</argument>
</arguments>
<types>
@@ -376,29 +332,23 @@
<operator>
<name>FULLY_CONNECTED</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,IC]" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t*" shape="[N,IC]">
<description>Input tensor</description>
- <rank min="2" max="2"/>
</argument>
- <argument category="attribute" name="weight" type="tensor_t" shape="[OC,IC]" tensor-element-type="weight_t">
+ <argument category="attribute" name="weight" type="weight_t*" shape="[OC,IC]">
<description>Weights</description>
- <rank min="2" max="2"/>
</argument>
- <argument category="attribute" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
+ <argument category="attribute" name="bias" type="out_t*" shape="[OC]">
<description>Per output channel bias data.</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="input_zp" type="in_t" shape="-">
<description>Input tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
+ <argument category="attribute" name="weight_zp" type="weight_t" shape="-">
<description>Weight zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OC]" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="[N,OC]">
<description>Output tensor</description>
- <rank min="2" max="2"/>
</argument>
</arguments>
<types>
@@ -429,25 +379,20 @@
<operator>
<name>MATMUL</name>
<arguments>
- <argument category="input" name="A" type="tensor_t" shape="[N,H,C]" tensor-element-type="in_t">
+ <argument category="input" name="A" type="in_t*" shape="[N,H,C]">
<description>Input tensor A, N matrices of size HxC</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="input" name="B" type="tensor_t" shape="[N,C,W]" tensor-element-type="in_t">
+ <argument category="input" name="B" type="in_t*" shape="[N,C,W]">
<description>Input tensor B, N matrices of size CxW</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="attribute" name="A_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="A_zp" type="in_t" shape="-">
<description>Input tensor A zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="B_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="B_zp" type="in_t" shape="-">
<description>Input tensor B zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,H,W]" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="[N,H,W]">
<description>Output tensor, N matrices of size HxW</description>
- <rank min="3" max="3"/>
</argument>
</arguments>
<types>
@@ -476,33 +421,28 @@
<operator>
<name>MAX_POOL2D</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,C]" tensor-element-type="in_out_t">
+ <argument category="input" name="input" type="in_out_t*" shape="[N,IH,IW,C]">
<description>Input tensor 4D</description>
- <rank min="4" max="4"/>
</argument>
- <argument category="attribute" name="kernel" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="kernel" type="int32_t*" shape="[2]">
<description>[kernel_y, kernel_x]</description>
<levellimit value="kernel_y" limit="MAX_KERNEL"/>
<levellimit value="kernel_x" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="stride" type="int32_t*" shape="[2]">
<description>[stride_y, stride_x]</description>
<levellimit value="stride_y" limit="MAX_STRIDE"/>
<levellimit value="stride_x" limit="MAX_STRIDE"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
+ <argument category="attribute" name="pad" type="int32_t*" shape="[4]">
<description>[pad_top, pad_bottom, pad_left, pad_right]</description>
<levellimit value="pad_top" limit="MAX_KERNEL"/>
<levellimit value="pad_bottom" limit="MAX_KERNEL"/>
<levellimit value="pad_left" limit="MAX_KERNEL"/>
<levellimit value="pad_right" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C]" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="[N,OH,OW,C]">
<description>Output tensor 4D</description>
- <rank min="4" max="4"/>
</argument>
</arguments>
<types>
@@ -526,19 +466,16 @@
<operator>
<name>RFFT2D</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,H,W]" tensor-element-type="in_out_t">
+ <argument category="input" name="input" type="in_out_t*" shape="[N,H,W]">
<description>Real input. H,W must be powers of two.</description>
<levellimit value="H" limit="MAX_KERNEL"/>
<levellimit value="W" limit="MAX_KERNEL"/>
- <rank min="3" max="3"/>
</argument>
- <argument category="output" name="output_real" type="tensor_t" shape="[N,H,W/2 + 1]" tensor-element-type="in_out_t">
+ <argument category="output" name="output_real" type="in_out_t*" shape="[N,H,W/2 + 1]">
<description>Real part of the complex output</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="output" name="output_imag" type="tensor_t" shape="[N,H,W/2 + 1]" tensor-element-type="in_out_t">
+ <argument category="output" name="output_imag" type="in_out_t*" shape="[N,H,W/2 + 1]">
<description>Imaginary part of the complex output.</description>
- <rank min="3" max="3"/>
</argument>
</arguments>
<types>
@@ -552,49 +489,40 @@
<operator>
<name>TRANSPOSE_CONV2D</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,IC]" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t*" shape="[N,IH,IW,IC]">
<description>Input tensor</description>
- <rank min="4" max="4"/>
</argument>
- <argument category="input" name="weight" type="tensor_t" shape="[OC,KH,KW,IC]" tensor-element-type="weight_t">
+ <argument category="input" name="weight" type="weight_t*" shape="[OC,KH,KW,IC]">
<description>Weight kernel size KH x KW</description>
<levellimit value="KH" limit="MAX_KERNEL"/>
<levellimit value="KW" limit="MAX_KERNEL"/>
- <rank min="4" max="4"/>
</argument>
- <argument category="input" name="bias" type="tensor_t" shape="[OC]" tensor-element-type="out_t">
+ <argument category="input" name="bias" type="out_t*" shape="[OC]">
<description>Per output channel bias data.</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="out_pad" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
+ <argument category="attribute" name="out_pad" type="int32_t*" shape="[4]">
<description>[out_pad_top, out_pad_bottom, out_pad_left, out_pad_right]</description>
<levellimit value="out_pad_top" limit="MAX_KERNEL"/>
<levellimit value="out_pad_bottom" limit="MAX_KERNEL"/>
<levellimit value="out_pad_left" limit="MAX_KERNEL"/>
<levellimit value="out_pad_right" limit="MAX_KERNEL"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="stride" type="tensor_t" shape="[2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="stride" type="int32_t*" shape="[2]">
<description>[stride_y, stride_x]</description>
<levellimit value="stride_y" limit="MAX_STRIDE"/>
<levellimit value="stride_x" limit="MAX_STRIDE"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="out_shape" type="tensor_t" shape="[4]" tensor-element-type="int32_t">
+ <argument category="attribute" name="out_shape" type="int32_t*" shape="[4]">
<description>[N,OH,OW,OC]</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="input_zp" type="in_t" shape="-">
<description>Input tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="weight_zp" type="tensor_t" shape="-" tensor-element-type="weight_t">
+ <argument category="attribute" name="weight_zp" type="weight_t" shape="-">
<description>Weight zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,OC]" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="[N,OH,OW,OC]">
<description>Output tensor</description>
- <rank min="4" max="4"/>
</argument>
</arguments>
<types>
@@ -627,22 +555,18 @@
<operator>
<name>CLAMP</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="attribute" name="min_val" type="tensor_t" shape="-" tensor-element-type="in_out_t">
+ <argument category="attribute" name="min_val" type="in_out_t" shape="-">
<description>Minimum clip value</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="max_val" type="tensor_t" shape="-" tensor-element-type="in_out_t">
+ <argument category="attribute" name="max_val" type="in_out_t" shape="-">
<description>Maximum clip value</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type and shape as input</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -666,14 +590,12 @@
<operator>
<name>SIGMOID</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type and shape as input</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -695,14 +617,12 @@
<operator>
<name>TANH</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type and shape as input</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -726,18 +646,15 @@
<operator>
<name>ADD</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -760,22 +677,18 @@
<operator>
<name>ARITHMETIC_RIGHT_SHIFT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="attribute" name="round" type="tensor_t" shape="-" tensor-element-type="bool_t">
+ <argument category="attribute" name="round" type="bool_t" shape="-">
<description>If true then the shift is rounded</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -788,18 +701,15 @@
<operator>
<name>BITWISE_AND</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -812,18 +722,15 @@
<operator>
<name>BITWISE_OR</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -836,18 +743,15 @@
<operator>
<name>BITWISE_XOR</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -860,18 +764,15 @@
<operator>
<name>INTDIV</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -882,18 +783,15 @@
<operator>
<name>LOGICAL_AND</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -904,18 +802,15 @@
<operator>
<name>LOGICAL_LEFT_SHIFT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -928,18 +823,15 @@
<operator>
<name>LOGICAL_RIGHT_SHIFT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -952,18 +844,15 @@
<operator>
<name>LOGICAL_OR</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -974,18 +863,15 @@
<operator>
<name>LOGICAL_XOR</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -996,18 +882,15 @@
<operator>
<name>MAXIMUM</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1030,18 +913,15 @@
<operator>
<name>MINIMUM</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1064,22 +944,18 @@
<operator>
<name>MUL</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
+ <argument category="input" name="input1" type="in_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
+ <argument category="input" name="input2" type="in_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input(MT)|attribute(BI,MI)" name="shift" type="tensor_t" shape="-" tensor-element-type="int8_t">
+ <argument category="input(MT)|attribute(BI,MI)" name="shift" type="uint6_t" shape="-">
<description>Result right shift (int32_t data type only)</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1105,18 +981,15 @@
<operator>
<name>POW</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1138,18 +1011,15 @@
<operator>
<name>SUB</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1172,18 +1042,15 @@
<operator>
<name>TABLE</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t*" shape="shape">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input(MT)|attribute(BI,MI)" name="table" type="tensor_t" shape="[TABLE_SIZE]" tensor-element-type="table_t">
+ <argument category="input(MT)|attribute(BI,MI)" name="table" type="table_t*" shape="[TABLE_SIZE]">
<description>Lookup table tensor</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="shape">
<description>Output tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1200,14 +1067,12 @@
<operator>
<name>ABS</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1230,14 +1095,12 @@
<operator>
<name>BITWISE_NOT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1250,14 +1113,12 @@
<operator>
<name>CEIL</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1279,14 +1140,12 @@
<operator>
<name>CLZ</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1297,14 +1156,12 @@
<operator>
<name>EXP</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1326,14 +1183,12 @@
<operator>
<name>FLOOR</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1355,14 +1210,12 @@
<operator>
<name>LOG</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1384,14 +1237,12 @@
<operator>
<name>LOGICAL_NOT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1402,22 +1253,17 @@
<operator>
<name>NEGATE</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
- <levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="attribute" name="input1_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
+ <argument category="attribute" name="input1_zp" type="in_out_t" shape="-">
<description>Input 1 zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="in_out_t">
+ <argument category="attribute" name="output_zp" type="in_out_t" shape="-">
<description>Output zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1443,14 +1289,12 @@
<operator>
<name>RECIPROCAL</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1472,14 +1316,12 @@
<operator>
<name>RSQRT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1503,22 +1345,18 @@
<operator>
<name>SELECT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="bool_t">
+ <argument category="input" name="input1" type="bool_t" shape="shape1">
<description>Input selector tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_out_t">
+ <argument category="input" name="input2" type="in_out_t*" shape="shape2">
<description>Input value tensor if input1 is True</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input3" type="tensor_t" shape="shape3" tensor-element-type="in_out_t">
+ <argument category="input" name="input3" type="in_out_t*" shape="shape3">
<description>Input value tensor if input1 is False</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type as input2 and input3, with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1546,18 +1384,15 @@
<operator>
<name>EQUAL</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
+ <argument category="input" name="input1" type="in_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
+ <argument category="input" name="input2" type="in_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1581,18 +1416,15 @@
<operator>
<name>GREATER</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
+ <argument category="input" name="input1" type="in_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
+ <argument category="input" name="input2" type="in_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1616,18 +1448,15 @@
<operator>
<name>GREATER_EQUAL</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_t">
+ <argument category="input" name="input1" type="in_t*" shape="shape1">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="input" name="input2" type="tensor_t" shape="shape2" tensor-element-type="in_t">
+ <argument category="input" name="input2" type="in_t*" shape="shape2">
<description>Input tensor with the same rank as input1</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="shape">
<description>Output tensor with broadcast shape if necessary</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1653,17 +1482,14 @@
<operator>
<name>REDUCE_ALL</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="4"/>
+ <argument category="input" name="input" type="in_out_t*" shape="shape1">
+ <description>Input tensor with rank from 1 to 4</description>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor. Same rank as the input tensor.</description>
- <rank min="1" max="4"/>
</argument>
</arguments>
<types>
@@ -1674,17 +1500,14 @@
<operator>
<name>REDUCE_ANY</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="4"/>
+ <argument category="input" name="input" type="in_out_t*" shape="shape1">
+ <description>Input tensor with rank from 1 to 4</description>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor. Same rank as the input tensor.</description>
- <rank min="1" max="4"/>
</argument>
</arguments>
<types>
@@ -1695,17 +1518,14 @@
<operator>
<name>REDUCE_MAX</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="4"/>
+ <argument category="input" name="input" type="in_out_t*" shape="shape1">
+ <description>Input tensor with rank from 1 to 4</description>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor. Same rank as the input tensor.</description>
- <rank min="1" max="4"/>
</argument>
</arguments>
<types>
@@ -1730,17 +1550,14 @@
<operator>
<name>REDUCE_MIN</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="4"/>
+ <argument category="input" name="input" type="in_out_t*" shape="shape1">
+ <description>Input tensor with rank from 1 to 4</description>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor. Same rank as the input tensor.</description>
- <rank min="1" max="4"/>
</argument>
</arguments>
<types>
@@ -1765,17 +1582,14 @@
<operator>
<name>REDUCE_PRODUCT</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="4"/>
+ <argument category="input" name="input" type="in_out_t*" shape="shape1">
+ <description>Input tensor with rank from 1 to 4</description>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor. Same rank as the input tensor.</description>
- <rank min="1" max="4"/>
</argument>
</arguments>
<types>
@@ -1797,17 +1611,14 @@
<operator>
<name>REDUCE_SUM</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input" type="in_out_t*" shape="shape1">
<description>Input tensor with rank from 1 to 4</description>
- <rank min="1" max="4"/>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis to reduce, in range from 0 to rank(shape1)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor. Same rank as the input tensor.</description>
- <rank min="1" max="4"/>
</argument>
</arguments>
<types>
@@ -1832,18 +1643,16 @@
<operator>
<name>CONCAT</name>
<arguments>
- <argument category="input" name="input1" type="tensor_list_t" shape="shapes1" tensor-element-type="in_out_t">
+ <!-- FIXME express list of tensors better -->
+ <argument category="input" name="input1" type="in_out_t*" shape="shapes1[]">
<description>List of input tensors. All inputs must have the same rank and data type</description>
- <rank min="1" max="MAX_RANK"/>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis along which concatenation is to occur, in range from 0 to rank(shape)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1869,22 +1678,18 @@
<operator>
<name>PAD</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="MAX_RANK"/>
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
+ <description>Input tensor with minimum rank of one.</description>
</argument>
- <argument category="attribute" name="padding" type="tensor_t" shape="[rank(shape1),2]" tensor-element-type="int32_t">
+ <argument category="attribute" name="padding" type="int32_t" shape="[rank(shape1),2]">
<description>Number of pad elements at the start and end of each dimension</description>
- <rank min="2" max="2"/>
</argument>
- <argument category="attribute" name="pad_const" type="tensor_t" shape="-" tensor-element-type="in_out_t">
+ <argument category="attribute" name="pad_const" type="in_out_t" shape="-">
<description>Constant value to be used as padding</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type as the input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1910,19 +1715,16 @@
<operator>
<name>RESHAPE</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
<description>Input tensor</description>
<levellimit value="rank(shape1)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
</argument>
- <argument category="attribute" name="new_shape" type="tensor_t" shape="[rank(shape)]" tensor-element-type="int32_t">
+ <argument category="attribute" name="new_shape" type="int32_t" shape="[rank(shape)]">
<description>List of values, with each element giving the size of the result tensor for the given dimension. At most one dimension may be given as -1 to automatically calculate the dimension size.</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, size as the input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1948,18 +1750,15 @@
<operator>
<name>REVERSE</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
- <description>Input tensor</description>
+ <argument category="input" name="input" type="in_out_t*" shape="shape">
+ <description>Input tensor with minimum rank of one.</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
</argument>
- <argument category="attribute" name="axis" type="tensor_t" shape="-" tensor-element-type="int32_t">
+ <argument category="attribute" name="axis" type="int32_t" shape="-">
<description>Axis to reverse, in range from 0 to rank(shape)-1</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor. Same shape as input tensor</description>
- <rank min="1" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -1985,23 +1784,19 @@
<operator>
<name>SLICE</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="MAX_RANK"/>
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
+ <description>Input tensor with minimum rank of one.</description>
</argument>
- <argument category="attribute" name="start" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="index_t">
+ <argument category="attribute" name="start" type="int32_t" shape="[rank(shape1)]">
<description>List of integer coordinates, of length equal to the rank of input1. Start coordinate for slicing.</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="size" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="index_t">
+ <argument category="attribute" name="size" type="int32_t" shape="[rank(shape1)]">
<description>List of integer size values, of length equal to the rank of input1. Size of the input to be
used.</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type as the input tensor</description>
- <rank min="1" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -2027,18 +1822,15 @@ used.</description>
<operator>
<name>TILE</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="MAX_RANK"/>
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
+ <description>Input tensor with minimum rank of one.</description>
</argument>
- <argument category="attribute" name="multiples" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="int32_t">
+ <argument category="attribute" name="multiplies" type="int32_t" shape="[rank(shape1)]">
<description>Number of times to replicate input1 in each dimension</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, rank as the input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -2064,18 +1856,15 @@ used.</description>
<operator>
<name>TRANSPOSE</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape1" tensor-element-type="in_out_t">
- <description>Input tensor</description>
- <rank min="1" max="MAX_RANK"/>
+ <argument category="input" name="input1" type="in_out_t*" shape="shape1">
+ <description>Input tensor with minimum rank of one.</description>
</argument>
- <argument category="attribute" name="perms" type="tensor_t" shape="[rank(shape1)]" tensor-element-type="int32_t">
+ <argument category="attribute" name="perms" type="int32_t" shape="[rank(shape1)]">
<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>
- <rank min="1" max="1"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of same type, rank as the input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="1" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -2103,34 +1892,31 @@ used.</description>
<operator>
<name>GATHER</name>
<arguments>
- <argument category="input" name="values" type="tensor_t" shape="[N,K,C]" tensor-element-type="in_out_t">
+ <argument category="input" name="values" type="value_t*" shape="[N,K,C]">
<description>3D value tensor</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="input" name="indices" type="tensor_t" shape="[N,W]" tensor-element-type="index_t">
+ <argument category="input" name="indices" type="index_t*" shape="[N,W]">
<description>2D index tensor</description>
- <rank min="2" max="2"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,W,C]" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="value_t*" shape="[N,W,C]">
<description>3D output tensor</description>
- <rank min="3" max="3"/>
</argument>
</arguments>
<types>
- <type name='in_out_t'/>
+ <type name='value_t'/>
</types>
- <typesupport mode="signed 8" in_out_t="int8_t"/>
- <typesupport mode="signed 16" in_out_t="int16_t"/>
- <typesupport mode="signed 32" in_out_t="int32_t"/>
- <typesupport mode="fp16" in_out_t="fp16_t">
+ <typesupport mode="signed 8" value_t="int8_t"/>
+ <typesupport mode="signed 16" value_t="int16_t"/>
+ <typesupport mode="signed 32" value_t="int32_t"/>
+ <typesupport mode="fp16" value_t="fp16_t">
<profile name="MI"/>
<profile name="MT"/>
</typesupport>
- <typesupport mode="bf16" in_out_t="bf16_t">
+ <typesupport mode="bf16" value_t="bf16_t">
<profile name="MI"/>
<profile name="MT"/>
</typesupport>
- <typesupport mode="fp32" in_out_t="fp32_t">
+ <typesupport mode="fp32" value_t="fp32_t">
<profile name="MI"/>
<profile name="MT"/>
</typesupport>
@@ -2138,38 +1924,34 @@ used.</description>
<operator>
<name>SCATTER</name>
<arguments>
- <argument category="input" name="values_in" type="tensor_t" shape="[N,K,C]" tensor-element-type="in_out_t">
+ <argument category="input" name="values_in" type="value_t*" shape="[N,K,C]">
<description>3D values in tensor</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="input" name="indices" type="tensor_t" shape="[N,W]" tensor-element-type="index_t">
+ <argument category="input" name="indices" type="index_t*" shape="[N,W]">
<description>2D index tensor</description>
- <rank min="2" max="2"/>
</argument>
- <argument category="input" name="input" type="tensor_t" shape="[N,W,C]" tensor-element-type="in_out_t">
+ <argument category="input" name="input" type="value_t*" shape="[N,W,C]">
<description>3D input tensor</description>
- <rank min="3" max="3"/>
</argument>
- <argument category="output" name="values_out" type="tensor_t" shape="[N,K,C]" tensor-element-type="in_out_t">
+ <argument category="output" name="values_out" type="value_t*" shape="[N,K,C]">
<description>3D output tensor</description>
- <rank min="3" max="3"/>
</argument>
</arguments>
<types>
- <type name='in_out_t'/>
+ <type name='value_t'/>
</types>
- <typesupport mode="signed 8" in_out_t="int8_t"/>
- <typesupport mode="signed 16" in_out_t="int16_t"/>
- <typesupport mode="signed 32" in_out_t="int32_t"/>
- <typesupport mode="fp16" in_out_t="fp16_t">
+ <typesupport mode="signed 8" value_t="int8_t"/>
+ <typesupport mode="signed 16" value_t="int16_t"/>
+ <typesupport mode="signed 32" value_t="int32_t"/>
+ <typesupport mode="fp16" value_t="fp16_t">
<profile name="MI"/>
<profile name="MT"/>
</typesupport>
- <typesupport mode="bf16" in_out_t="bf16_t">
+ <typesupport mode="bf16" value_t="bf16_t">
<profile name="MI"/>
<profile name="MT"/>
</typesupport>
- <typesupport mode="fp32" in_out_t="fp32_t">
+ <typesupport mode="fp32" value_t="fp32_t">
<profile name="MI"/>
<profile name="MT"/>
</typesupport>
@@ -2179,31 +1961,25 @@ used.</description>
<operator>
<name>RESIZE</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="[N,IH,IW,C]" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t*" shape="[N,IH,IW,C]">
<description>Input tensor</description>
- <rank min="4" max="4"/>
</argument>
- <argument category="attribute" name="scale" type="tensor_t" shape="[4]" tensor-element-type="int16_t">
+ <argument category="attribute" name="scale" type="int16_t*" shape="[4]">
<description>[scale_y_n, scale_y_d, scale_x_n, scale_x_d]</description>
<levellimit value="scale_y_n/scale_y_d" limit="MAX_SCALE"/>
<levellimit value="scale_x_n/scale_x_d" limit="MAX_SCALE"/>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="offset" type="tensor_t" shape="[2]" tensor-element-type="int16_t">
+ <argument category="attribute" name="offset" type="int16_t*" shape="[2]">
<description>[offset_y, offset_x]</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="border" type="tensor_t" shape="[2]" tensor-element-type="int16_t">
+ <argument category="attribute" name="border" type="int16_t*" shape="[2]">
<description>[border_y, border_x]</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="mode" type="tensor_t" shape="-" tensor-element-type="resize_mode_t">
+ <argument category="attribute" name="mode" type="mode_t" shape="-">
<description>BILINEAR or NEAREST</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="[N,OH,OW,C]" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="[N,OH,OW,C]">
<description>Output tensor</description>
- <rank min="4" max="4"/>
</argument>
</arguments>
<types>
@@ -2233,14 +2009,12 @@ used.</description>
<operator>
<name>CAST</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t" shape="shape">
<description>Output tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -2351,42 +2125,33 @@ used.</description>
<operator>
<name>RESCALE</name>
<arguments>
- <argument category="input" name="input" type="tensor_t" shape="shape" tensor-element-type="in_t">
+ <argument category="input" name="input" type="in_t" shape="shape">
<description>Input tensor</description>
<levellimit value="rank(shape)" limit="MAX_RANK"/>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t" shape="shape">
<description>Output tensor with the same shape as input</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="attribute" name="input_zp" type="tensor_t" shape="-" tensor-element-type="in_t">
+ <argument category="attribute" name="input_zp" type="in_t" shape="-">
<description>Input tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="output_zp" type="tensor_t" shape="-" tensor-element-type="out_t">
+ <argument category="attribute" name="output_zp" type="out_t" shape="-">
<description>Output tensor zero point. Must be zero for non-int8 types.</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="input(MT)|attribute(BI,MI)" name="multiplier" type="tensor_t" shape="[NC]" tensor-element-type="mul_t">
+ <argument category="input(MT)|attribute(BI,MI)" name="multiplier" type="mul_t*" shape="[NC]">
<description>Scaling multiplier array</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="input(MT)|attribute(BI,MI)" name="shift" type="tensor_t" shape="[NC]" tensor-element-type="int8_t">
+ <argument category="input(MT)|attribute(BI,MI)" name="shift" type="uint6_t*" shape="[NC]">
<description>Scaling shift array</description>
- <rank min="1" max="1"/>
</argument>
- <argument category="attribute" name="scale32" type="tensor_t" shape="-" tensor-element-type="bool_t">
+ <argument category="attribute" name="scale32" type="bool_t" shape="-">
<description>if (scale32) mul_t=int32_t else mul_t=int16_t</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="double_round" type="tensor_t" shape="-" tensor-element-type="bool_t">
+ <argument category="attribute" name="double_round" type="bool_t" shape="-">
<description>Select double round mode</description>
- <rank min="0" max="0"/>
</argument>
- <argument category="attribute" name="per_channel" type="tensor_t" shape="-" tensor-element-type="bool_t">
+ <argument category="attribute" name="per_channel" type="bool_t" shape="-">
<description>if (per_channel) NC=shape[rank(shape)-1] else NC=1</description>
- <rank min="0" max="0"/>
</argument>
</arguments>
<types>
@@ -2417,13 +2182,11 @@ used.</description>
<operator>
<name>CONST</name>
<arguments>
- <argument category="attribute" name="values" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="attribute" name="values" type="out_t*" shape="shape">
<description>Constant values</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="out_t">
+ <argument category="output" name="output" type="out_t*" shape="shape">
<description>Output tensor of the same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -2450,13 +2213,11 @@ used.</description>
<operator>
<name>IDENTITY</name>
<arguments>
- <argument category="input" name="input1" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="input" name="input1" type="in_out_t*" shape="shape">
<description>Input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
- <argument category="output" name="output" type="tensor_t" shape="shape" tensor-element-type="in_out_t">
+ <argument category="output" name="output" type="in_out_t*" shape="shape">
<description>Output tensor of the same type, size as the input tensor</description>
- <rank min="0" max="MAX_RANK"/>
</argument>
</arguments>
<types>
@@ -2484,20 +2245,19 @@ used.</description>
<operator>
<name>COND_IF</name>
<arguments>
- <argument category="input" name="condition" type="tensor_t" shape="shape" tensor-element-type="bool_t">
- <description>Input condition as a size 1 tensor</description>
- <rank min="1" max="MAX_RANK"/>
- </argument>
- <argument category="input" name="input_list" type="tensor_list_t" shape="-" tensor-element-type="-">
+ <argument category="input" name="input_list" type="tensor_list_t" shape="-">
<description>List of input tensors</description>
</argument>
- <argument category="attribute" name="then_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
+ <argument category="input" name="condition" type="bool_t*" shape="shape">
+ <description>Input condition as a size 1 tensor</description>
+ </argument>
+ <argument category="attribute" name="then_graph" type="tosa_graph_t" shape="-">
<description>TOSA graph to execute if condition is true</description>
</argument>
- <argument category="attribute" name="else_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
+ <argument category="attribute" name="else_graph" type="tosa_graph_t" shape="-">
<description>TOSA graph to execute if condition is false</description>
</argument>
- <argument category="output" name="output_list" type="tensor_list_t" shape="-" tensor-element-type="-">
+ <argument category="output" name="output_list" type="tensor_list_t" shape="-">
<description>List of output tensors</description>
</argument>
</arguments>
@@ -2505,32 +2265,20 @@ used.</description>
<operator>
<name>WHILE_LOOP</name>
<arguments>
- <argument category="input" name="input_list" type="tensor_list_t" shape="-" tensor-element-type="-">
+ <argument category="input" name="input_list" type="tensor_list_t" shape="-">
<description>List of input tensors</description>
</argument>
- <argument category="attribute" name="cond_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
+ <argument category="attribute" name="cond_graph" type="tosa_graph_t" shape="-">
<description>TOSA graph to evaluate the condition</description>
</argument>
- <argument category="attribute" name="body_graph" type="tosa_graph_t" shape="-" tensor-element-type="-">
+ <argument category="attribute" name="body_graph" type="tosa_graph_t" shape="-">
<description>TOSA graph to execute the loop body</description>
</argument>
- <argument category="output" name="output_list" type="tensor_list_t" shape="-" tensor-element-type="-">
+ <argument category="output" name="output_list" type="tensor_list_t" shape="-">
<description>List of output tensors</description>
</argument>
</arguments>
</operator>
</operatorgroup>
</operators>
-
- <enum name="resize_mode_t" description="Valid resize types">
- <enumval value="0" name="NEAREST_NEIGHBOR" description="Nearest neighbor resize"/>
- <enumval value="1" name="BILINEAR" description="Bilinear resize"/>
- </enum>
-
- <enum name="acc_size_t" description="Allowed accumulator sizes">
- <enumval value="0" name="INT32" description="32-bit integer"/>
- <enumval value="1" name="FP16" description="16-bit floating-point"/>
- <enumval value="2" name="FP32" description="32-bit floating-point"/>
- </enum>
-
</tosa>