Rate this Page

PyTorch operator support for the Ethos-U55 backend#

This page lists Ethos-U55-supported PyTorch APIs and the dtype and quantization modes covered by the Ethos-U55 backend test pipeline.

8x8 means 8-bit activations and 8-bit weights. 16x8 means 16-bit activations and 8-bit weights. 8x4 means 8-bit activations and 4-bit weights.

Total supported PyTorch APIs: 101.

PyTorch API

Support profile

DType

Quantization mode

torch.abs

INT

INT8

8x8

torch.acos

INT

INT8

8x8

torch.acosh

INT

INT8

8x8

torch.add / +

INT

INT8, INT16

8x8, 16x8

torch.alias_copy

INT

INT8

8x8

torch.amax

INT

INT8

8x8

torch.amin

INT

INT8

8x8

torch.arange

INT

INT8

8x8

torch.as_strided_copy

INT

INT8

8x8

torch.asin

INT

INT8

8x8

torch.asinh

INT

INT8

8x8

torch.atan

INT

INT8

8x8

torch.atanh

INT

INT8

8x8

torch.bitwise_left_shift / <<

INT

INT8

8x8

torch.bitwise_right_shift / >>

INT

INT8

8x8

torch.bmm

INT

INT8

8x8

torch.cat

INT

INT8, INT16

8x8, 16x8

torch.ceil

INT

INT8

8x8

torch.clamp

INT

INT8, INT16

8x8, 16x8

torch.clone / torch.Tensor.clone

INT

INT8

8x8

torch.conv1d

INT

INT8, INT16

8x8, 16x8

torch.conv2d

INT

INT8, INT16, INT4

8x8, 8x4, 16x8

torch.conv3d

INT

INT8, INT4

8x8, 8x4

torch.conv_transpose2d

INT

INT8

8x8

torch.cos

INT

INT8

8x8

torch.cosh

INT

INT8

8x8

torch.cumsum

INT

INT8

8x8

torch.div

INT

INT8

8x8

torch.div / /

INT

INT8

8x8

torch.erf

INT

INT8

8x8

torch.erfinv

INT

INT8

8x8

torch.exp

INT

INT8, INT16

8x8, 16x8

torch.expm1

INT

INT8

8x8

torch.eye

INT

INT8

8x8

torch.fill_

INT

INT8

8x8

torch.flip

INT

INT8

8x8

torch.floor

INT

INT8

8x8

torch.full

INT

INT8

8x8

torch.full_like

INT

INT8

8x8

torch.index_select

INT

INT8

8x8

torch.linspace

INT

INT8

8x8

torch.log

INT

INT8

8x8

torch.log10

INT

INT8

8x8

torch.log1p

INT

INT8

8x8

torch.log_softmax

INT

INT8

8x8

torch.max_pool2d

INT

INT8, INT16

8x8, 16x8

torch.maximum

INT

INT8, INT16

8x8, 16x8

torch.mean

INT

INT8

8x8

torch.minimum

INT

INT8, INT16

8x8, 16x8

torch.mm

INT

INT8

8x8

torch.moveaxis

INT

INT8

8x8

torch.mul / *

INT

INT8, INT16

8x8, 16x8

torch.neg / unary -

INT

INT8, INT16

8x8, 16x8

torch.nn.AvgPool2d / torch.nn.functional.avg_pool2d

INT

INT8, INT16

8x8, 16x8

torch.nn.Conv2d / torch.nn.functional.conv2d

INT

INT8, INT16, INT4

8x8, 8x4, 16x8

torch.nn.ELU / torch.nn.functional.elu

INT

INT8

8x8

torch.nn.functional.pad

INT

INT8

8x8

torch.nn.GELU / torch.nn.functional.gelu

INT

INT8, INT16

8x8, 16x8

torch.nn.Hardsigmoid / torch.nn.functional.hardsigmoid

INT

INT8

8x8

torch.nn.Hardswish / torch.nn.functional.hardswish

INT

INT8

8x8

torch.nn.Hardtanh / torch.nn.functional.hardtanh

INT

INT8

8x8

torch.nn.LeakyReLU / torch.nn.functional.leaky_relu

INT

INT8

8x8

torch.nn.Linear / torch.nn.functional.linear

INT

INT8, INT16

8x8, 16x8

torch.nn.SiLU / torch.nn.functional.silu

INT

INT8

8x8

torch.ones

INT

INT8

8x8

torch.permute / torch.Tensor.permute

INT

INT8, INT16

8x8, 16x8

torch.pixel_shuffle

INT

INT8

8x8

torch.pixel_unshuffle

INT

INT8

8x8

torch.pow / **

INT

INT8

8x8

torch.prelu

INT

INT8

8x8

torch.reciprocal

INT

INT8, INT16

8x8, 16x8

torch.relu / torch.nn.ReLU

INT

INT8

8x8

torch.remainder

INT

INT8

8x8

torch.repeat_interleave

INT

INT8, INT16

8x8, 16x8

torch.round

INT

INT8

8x8

torch.rsqrt

INT

INT8, INT16

8x8, 16x8

torch.scalar_tensor

INT

INT8

8x8

torch.select / torch.Tensor.select

INT

INT8

8x8

torch.sigmoid / torch.nn.Sigmoid

INT

INT8, INT16

8x8, 16x8

torch.sin

INT

INT8

8x8

torch.sinh

INT

INT8

8x8

torch.softmax

INT

INT8, INT16

8x8, 16x8

torch.split / torch.Tensor.split

INT

INT8, INT16

8x8, 16x8

torch.squeeze

INT

INT8

8x8

torch.squeeze / torch.Tensor.squeeze

INT

INT8

8x8

torch.stack

INT

INT8

8x8

torch.sub / -

INT

INT8, INT16

8x8, 16x8

torch.sum

INT

INT8, INT16

8x8, 16x8

torch.t / torch.Tensor.t

INT

INT8

8x8

torch.tan

INT

INT8

8x8

torch.tanh / torch.nn.Tanh

INT

INT8, INT16

8x8, 16x8

torch.Tensor.__getitem__ / tensor slicing

INT

INT8, INT16

8x8, 16x8

torch.Tensor.copy_

INT

INT8

8x8

torch.Tensor.expand

INT

INT8

8x8

torch.Tensor.repeat

INT

INT8, INT16

8x8, 16x8

torch.Tensor.unfold

INT

INT8

8x8

torch.Tensor.view

INT

INT8, INT16

8x8, 16x8

torch.transpose / torch.Tensor.transpose

INT

INT8

8x8

torch.unflatten

INT

INT8

8x8

torch.unsqueeze / torch.Tensor.unsqueeze

INT

INT8

8x8

torch.zeros

INT

INT8

8x8