Skip to content

Supported Operators

The following operators are supported in heliaAOT. The operator_attributes feature allows you to customize the behavior of these operators.

Operator Category Quant Float Status
ABS Elementwise int8/int16 f16/f32 ✅ Implemented
ADD Elementwise int8/int16 f16/f32 ✅ Implemented
ARG_MAX Reduction int8/int16 none ✅ Implemented
ARG_MIN Reduction int8/int16 none ✅ Implemented
ASSIGN_VARIABLE Variables int8/int16 none ✅ Implemented
AVERAGE_POOL_2D Pooling int8/int16 f16/f32 ✅ Implemented
BATCH_MATMUL Matrix Multiply int8/int16 f16/f32 ✅ Implemented
BATCH_TO_SPACE_ND Tensor Manipulation int8/int16 none ✅ Implemented
CONCATENATION Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
CONV_2D Convolution int8/int16 f16/f32 ✅ Implemented
DEPTHWISE_CONV_2D Convolution int8/int16 f16/f32 ✅ Implemented
DEPTH_TO_SPACE Tensor Manipulation int8/int16 none ✅ Implemented
DEQUANTIZE Quantization int8/int16 f16/f32 ✅ Implemented
DILATE Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
EQUAL Comparison int8/int16 none ✅ Implemented
ETHOS_U Accelerator int8 none ⚠️ Prototype
EXPAND_DIMS Tensor Manipulation int8/int16 none ✅ Implemented
FILL Tensor Creation int8/int16 f16/f32 ✅ Implemented
GATHER Tensor Manipulation int8/int16 none ✅ Implemented
GATHER_ND Tensor Manipulation int8/int16 none ✅ Implemented
FULLY_CONNECTED Dense / Fully Connected int8/int16 f16/f32 ✅ Implemented
GREATER Comparison int8/int16 none ✅ Implemented
GREATER_EQUAL Comparison int8/int16 none ✅ Implemented
HARD_SWISH Activation int8/int16 none ✅ Implemented
LEAKY_RELU Activation int8/int16 none ✅ Implemented
LESS Comparison int8/int16 none ✅ Implemented
LESS_EQUAL Comparison int8/int16 none ✅ Implemented
LOGISTIC Activation int8/int16 f16/f32 ✅ Implemented
MAX_POOL_2D Pooling int8/int16 f16/f32 ✅ Implemented
MAXIMUM Elementwise int8/int16 f16/f32 ✅ Implemented
MEAN Reduction int8/int16 f16/f32 ✅ Implemented
MINIMUM Elementwise int8/int16 f16/f32 ✅ Implemented
MUL Elementwise int8/int16 f16/f32 ✅ Implemented
NOT_EQUAL Comparison int8/int16 none ✅ Implemented
PACK Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
PAD/PADV2 Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
PRELU Activation int8 f16/f32 ✅ Implemented
QUANTIZE Quantization int8/int16 f32 ✅ Implemented
READ_VARIABLE Variables int8/int16 none ✅ Implemented
REDUCE_MAX Reduction int8/int16 none ✅ Implemented
REDUCE_MIN Reduction int8/int16 none ✅ Implemented
REVERSE_SEQUENCE Tensor Manipulation int8/int16 none ✅ Implemented
RELU Activation int8/int16 f16/f32 ✅ Implemented
RELU6 Activation int8/int16 f16/f32 ✅ Implemented
RESIZE_NEAREST_NEIGHBOR Tensor Manipulation int8/int16 none ✅ Implemented
RESHAPE Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
SCATTER_ND Tensor Manipulation int8/int16 none ✅ Implemented
SELECT_V2 Tensor Manipulation int8/int16 none ✅ Implemented
SHAPE Tensor Inspection int8/int16 none ✅ Implemented
SOFTMAX Activation int8/int16 f16/f32 ✅ Implemented
SPACE_TO_BATCH_ND Tensor Manipulation int8/int16 none ✅ Implemented
SPACE_TO_DEPTH Tensor Manipulation int8/int16 none ✅ Implemented
SPLIT/SPLIT_V Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
SQUARED_DIFFERENCE Elementwise int8/int16 none ✅ Implemented
SQUEEZE Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
SLICE Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
STRIDED_SLICE Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
SUB Elementwise int8/int16 f16/f32 ✅ Implemented
SUM Reduction int8/int16 f16/f32 ✅ Implemented
TANH Activation int8/int16 f16/f32 ✅ Implemented
TILE Tensor Manipulation int8/int16 none ✅ Implemented
TRANSPOSE_CONV Transposed Convolution int8 f16/f32 ✅ Implemented
TRANSPOSE Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
UNPACK Tensor Manipulation int8/int16 f16/f32 ✅ Implemented
WHERE Tensor Manipulation int8/int16 none ✅ Implemented
ZEROS_LIKE Tensor Creation int8/int16 f16/f32 ✅ Implemented
Missing an operator?

If there are operators missing needed for your use case, please reach out to us. We are continuously working to expand the list of supported operators and would love to hear your feedback: Ambiq AI team.

Operator Attributes

The operator attributes feature allows you to customize the behavior of specific operators during the conversion process. This is useful for optimizing performance or adapting to specific hardware constraints. For example, you can specify the code and scratch memory placement for certain operators. You can define operator attributes in the YAML configuration file. The operators section allows you to specify a list of attributes for different operators. Each attribute can include the operator type, operator ID(s), followed by key-value pairs for the attributes.

To learn more, checkout the Operator Attributes reference.