Skip to content

Supported Operators

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

Operator Category Quant Status
ADD Elementwise int8 ✅ Implemented
ASSIGN_VARIABLE Variables int8 ✅ Implemented
AVERAGE_POOL_2D Pooling int8 ✅ Implemented
BATCH_MATMUL Matrix Multiply int8 ✅ Implemented
CONCATENATION Tensor Manipulation int8 ✅ Implemented
CONV_2D Convolution int8 ✅ Implemented
DEPTHWISE_CONV_2D Convolution int8 ✅ Implemented
DEQUANTIZE Quantization int8 ✅ Implemented
FILL Tensor Creation int8 ✅ Implemented
FULLY_CONNECTED Dense / Fully Connected int8 ✅ Implemented
HARD_SWISH Activation int8 ✅ Implemented
LEAKY_RELU Activation int8 ✅ Implemented
LOGISTIC Activation int8 ✅ Implemented
MAX_POOL_2D Pooling int8 ✅ Implemented
MAXIMUM Elementwise int8 ✅ Implemented
MEAN Reduction int8 ✅ Implemented
MINIMUM Elementwise int8 ✅ Implemented
MUL Elementwise int8 ✅ Implemented
PACK Tensor Manipulation int8 ✅ Implemented
PAD Tensor Manipulation int8 ✅ Implemented
READ_VARIABLE Variables int8 ✅ Implemented
QUANTIZE Quantization int8 ✅ Implemented
RELU Activation int8 ✅ Implemented
RELU6 Activation int8 ✅ Implemented
RESHAPE Tensor Manipulation int8 ✅ Implemented
SHAPE Tensor Inspection int8 ✅ Implemented
SOFTMAX Activation int8 ✅ Implemented
SPLIT/SPLIT_V Tensor Manipulation int8 ✅ Implemented
SQUEEZE Tensor Manipulation int8 ✅ Implemented
STRIDED_SLICE Tensor Manipulation int8 ✅ Implemented
TANH Activation int8 ✅ Implemented
TRANSPOSE_CONV Transposed Convolution int8 ✅ Implemented
TRANSPOSE Tensor Manipulation int8 ✅ Implemented
UNPACK Tensor Manipulation int8 ✅ Implemented
ZEROS_LIKE Tensor Creation int8 ✅ 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.