Operator | 3.0.31 | 3.2.0 | ||
BPU | CPU | BPU | CPU | |
torch.abs | Y | Y | Y | Y |
torch.Tensor.abs | Y | Y | Y | Y |
torch.acos | Y | Y | Y | Y |
torch.Tensor.acos | N | N | Y | Y |
torch.acosh | Y | Y | Y | Y |
torch.Tensor.acosh | N | N | Y | Y |
torch.add | Y | Y | Y | Y |
torch.Tensor.add | Y | Y | Y | Y |
torch.all | N | N | Y | Y |
torch.Tensor.all | N | N | Y | Y |
torch.any | N | N | Y | Y |
torch.Tensor.any | N | N | Y | Y |
torch.argmax | Y | Y | Y | Y |
torch.Tensor.argmax | Y | Y | Y | Y |
torch.argmin | Y | Y | Y | Y |
torch.Tensor.argmin | Y | Y | Y | Y |
torch.asin | Y | Y | Y | Y |
torch.Tensor.asin | N | N | Y | Y |
torch.asinh | Y | Y | Y | Y |
torch.Tensor.asinh | N | N | Y | Y |
torch.atan | Y | Y | Y | Y |
torch.Tensor.atan | N | N | Y | Y |
torch.atanh | Y | Y | Y | Y |
torch.Tensor.atanh | N | N | Y | Y |
torch.bitwise_and | N | N | Y | Y |
torch.bitwise_not | N | N | Y | Y |
torch.bitwise_or | N | N | Y | Y |
torch.bitwise_xor | N | N | Y | Y |
torch.ceil | Y | Y | Y | Y |
torch.Tensor.ceil | N | N | Y | Y |
torch.clamp | Y | Y | Y | Y |
torch.clip | Y | Y | Y | Y |
torch.Tensor.clamp | Y | Y | Y | Y |
torch.Tensor.clip | Y | Y | Y | Y |
torch.cat | Y | Y | Y | Y |
torch.concat | Y | Y | Y | Y |
torch.concatenate | Y | Y | Y | Y |
torch.cos | Y | Y | Y | Y |
torch.Tensor.cos | N | N | Y | Y |
torch.cosh | Y | Y | Y | Y |
torch.Tensor.cosh | N | N | Y | Y |
torch.cumsum | Y | Y | Y | Y |
torch.Tensor.cumsum | Y | Y | Y | Y |
torch.div | Y | Y | Y | Y |
torch.Tensor.div | N | N | Y | Y |
torch.eq | Y | Y | Y | Y |
torch.Tensor.eq | Y | Y | Y | Y |
torch.gather | Y | Y | Y | Y |
torch.Tensor.gather | Y | Y | Y | Y |
torch.gt | Y | Y | Y | Y |
torch.greater | Y | Y | Y | Y |
torch.Tensor.gt | Y | Y | Y | Y |
torch.Tensor.greater | Y | Y | Y | Y |
torch.ge | Y | Y | Y | Y |
torch.greater_equal | Y | Y | Y | Y |
torch.Tensor.ge | Y | Y | Y | Y |
torch.Tensor.greater_equal | Y | Y | Y | Y |
torch.lt | Y | Y | Y | Y |
torch.less | Y | Y | Y | Y |
torch.Tensor.lt | Y | Y | Y | Y |
torch.Tensor.less | Y | Y | Y | Y |
torch.le | Y | Y | Y | Y |
torch.less_equal | Y | Y | Y | Y |
torch.Tensor.le | Y | Y | Y | Y |
torch.Tensor.less_equal | Y | Y | Y | Y |
torch.erf | Y | Y | Y | Y |
torch.Tensor.erf | N | N | Y | Y |
torch.exp | Y | Y | Y | Y |
torch.Tensor.exp | N | N | Y | Y |
torch.Tensor.expand | Y | Y | Y | Y |
torch.flatten | Y | Y | Y | Y |
torch.Tensor.flatten | Y | Y | Y | Y |
torch.nn.Flatten | N | N | Y | Y |
torch.flip | Y | Y | Y | Y |
torch.Tensor.flip | Y | Y | Y | Y |
torch.floor | Y | Y | Y | Y |
torch.Tensor.floor | N | N | Y | Y |
torch.fmod | N | Y | N | Y |
torch.remainder | N | Y | N | Y |
torch.index_select | Y | Y | Y | Y |
torch.Tensor.index_select | Y | Y | Y | Y |
torch.unbind | N | N | Y | Y |
torch.Tensor.unbind | N | N | Y | Y |
torch.log | Y | Y | Y | Y |
torch.Tensor.log | N | N | Y | Y |
torch.logical_and | Y | Y | Y | Y |
torch.Tensor.logical_and | N | N | Y | Y |
torch.logical_not | Y | Y | Y | Y |
torch.Tensor.logical_not | N | N | Y | Y |
torch.logical_or | Y | Y | Y | Y |
torch.Tensor.logical_or | N | N | Y | Y |
torch.logical_xor | N | N | Y | Y |
torch.Tensor.logical_xor | N | N | Y | Y |
torch.Tensor.masked_fill | Y | Y | Y | Y |
torch.matmul | Y | Y | Y | Y |
torch.Tensor.matmul | N | N | Y | Y |
torch.max | Y | Y | Y | Y |
torch.Tensor.max | Y | Y | Y | Y |
torch.maximum | Y | Y | Y | Y |
torch.Tensor.maximum | N | N | Y | Y |
torch.mean | Y | Y | Y | Y |
torch.Tensor.mean | N | N | Y | Y |
torch.min | Y | Y | Y | Y |
torch.Tensor.min | Y | Y | Y | Y |
torch.minimum | Y | Y | Y | Y |
torch.Tensor.minimum | N | N | Y | Y |
torch.mul | Y | Y | Y | Y |
torch.Tensor.mul | Y | Y | Y | Y |
torch.neg | Y | Y | Y | Y |
torch.negative | Y | Y | Y | Y |
torch.Tensor.neg | Y | Y | Y | Y |
torch.Tensor.negative | Y | Y | Y | Y |
torch.nonzero | N | N | N | Y |
Tensor.nonzero | N | N | N | Y |
torch.ne | N | N | Y | Y |
torch.not_equal | N | N | Y | Y |
torch.Tensor.ne | N | N | Y | Y |
torch.Tensor.not_equal | N | N | Y | Y |
torch.permute | Y | Y | Y | Y |
torch.Tensor.permute | Y | Y | Y | Y |
torch.pow | Y | Y | Y | Y |
torch.Tensor.pow | N | N | Y | Y |
torch.reciprocal | Y | Y | Y | Y |
torch.Tensor.reciprocal | N | N | Y | Y |
torch.Tensor.repeat | Y | Y | Y | Y |
torch.reshape | Y | Y | Y | Y |
torch.Tensor.reshape | Y | Y | Y | Y |
torch.Tensor.view | Y | Y | Y | Y |
torch.roll | Y | Y | Y | Y |
torch.Tensor.roll | Y | Y | Y | Y |
torch.round | N | N | N | Y |
torch.Tensor.round | N | N | N | Y |
torch.rsqrt | N | N | Y | Y |
torch.Tensor.rsqrt | N | N | Y | Y |
torch.scatter | N | Y | N | Y |
torch.Tensor.scatter | N | Y | N | Y |
torch.scatter_add | N | Y | N | Y |
torch.Tensor.scatter_add | N | Y | N | Y |
torch.scatter_reduce | N | Y | N | Y |
torch.Tensor.scatter_reduce | N | Y | N | Y |
torch.sign | N | Y | N | Y |
torch.Tensor.sign | N | Y | N | Y |
torch.sin | Y | Y | Y | Y |
torch.Tensor.sin | N | N | Y | Y |
torch.sinh | Y | Y | Y | Y |
torch.Tensor.sinh | N | N | Y | Y |
torch.slice_scatter | Y | Y | Y | Y |
torch.split | Y | Y | Y | Y |
torch.Tensor.split | N | N | Y | Y |
torch.sqrt | Y | Y | Y | Y |
torch.squeeze | Y | Y | Y | Y |
torch.Tensor.squeeze | Y | Y | Y | Y |
torch.stack | Y | Y | Y | Y |
torch.sub | Y | Y | Y | Y |
torch.Tensor.sub | N | N | Y | Y |
torch.sum | Y | Y | Y | Y |
torch.Tensor.sum | N | N | Y | Y |
torch.tan | Y | Y | Y | Y |
torch.tile | Y | Y | Y | Y |
torch.Tensor.tile | Y | Y | Y | Y |
torch.Tensor.to | N | N | Y | Y |
torch.float | Y | Y | N | N |
torch.Tensor.float | N | N | Y | Y |
torch.topk | N | Y | Y | Y |
torch.Tensor.topk | N | Y | Y | Y |
horizon.functional.stable_topk | N | N | Y | Y |
torch.transpose | Y | Y | Y | Y |
torch.Tensor.transpose | Y | Y | Y | Y |
torch.tril | Y | Y | Y | Y |
torch.triu | Y | Y | Y | Y |
torch.unsqueeze | Y | Y | Y | Y |
torch.Tensor.unsqueeze | Y | Y | Y | Y |
torch.where | Y | Y | Y | Y |
torch.zeros_like | Y | Y | Y | Y |
torch.ones_like | Y | Y | Y | Y |
torch.linalg.norm | Y | Y | Y | Y |
torch.nn.functional.adaptive_avg_pool1d | Y | Y | Y | Y |
torch.nn.AdaptiveAvgPool1d | Y | Y | Y | Y |
torch.nn.functional.adaptive_avg_pool2d | Y | Y | Y | Y |
torch.nn.AdaptiveAvgPool2d | Y | Y | Y | Y |
torch.nn.functional.affine_grid | N | N | Y | Y |
torch.nn.functional.avg_pool2d | Y | Y | Y | Y |
torch.nn.AvgPool2d | Y | Y | Y | Y |
torch.nn.functional.dropout | Y | Y | Y | Y |
torch.nn.Dropout | Y | Y | Y | Y |
torch.nn.functional.dropout1d | N | N | Y | Y |
torch.nn.Dropout1d | N | N | Y | Y |
torch.nn.functional.dropout2d | Y | Y | Y | Y |
torch.nn.Dropout2d | Y | Y | Y | Y |
torch.nn.functional.dropout3d | N | N | Y | Y |
torch.nn.Dropout3d | N | N | Y | Y |
torch.nn.functional.elu | N | N | Y | Y |
torch.nn.ELU | N | N | Y | Y |
torch.nn.functional.embedding | N | N | Y | Y |
torch.nn.Embedding | N | Y | Y | Y |
torch.nn.functional.gelu | Y | Y | Y | Y |
torch.nn.GELU | Y | Y | Y | Y |
torch.nn.functional.glu | Y | Y | Y | N |
torch.nn.GLU | Y | Y | Y | N |
torch.nn.functional.grid_sample | Y | Y | Y | Y |
torch.nn.functional.hardsigmoid | Y | Y | Y | Y |
torch.nn.HardSigmoid | Y | Y | Y | Y |
torch.nn.functional.interpolate | Y | Y | Y | Y |
torch.nn.Upsample | Y | Y | Y | Y |
torch.nn.UpsamplingNearest2d | Y | Y | Y | Y |
torch.nn.UpsamplingBilinear2d | Y | Y | Y | Y |
torch.nn.functional.leaky_relu | Y | Y | Y | Y |
torch.nn.LeakyReLU | Y | Y | Y | Y |
torch.nn.functional.log_softmax | Y | Y | Y | Y |
torch.nn.LogSoftmax | Y | Y | Y | Y |
torch.nn.functional.mish | N | N | Y | Y |
torch.nn.Mish | N | N | Y | Y |
torch.nn.functional.normalize | N | N | Y | Y |
torch.nn.functional.pad | Y | Y | Y | Y |
torch.nn.ConstantPad1d | Y | Y | Y | Y |
torch.nn.ConstantPad2d | Y | Y | Y | Y |
torch.nn.ConstantPad3d | Y | Y | Y | Y |
torch.nn.ReplicationPad1d | Y | Y | Y | Y |
torch.nn.ReplicationPad2d | Y | Y | Y | Y |
torch.nn.ReplicationPad3d | Y | Y | Y | Y |
torch.nn.ZeroPad2d | Y | Y | Y | Y |
torch.nn.functional.pixel_shuffle | Y | Y | Y | Y |
torch.nn.PixelShuffle | Y | Y | Y | Y |
torch.nn.functional.pixel_unshuffle | Y | Y | Y | Y |
torch.nn.PixelUnshuffle | Y | Y | Y | Y |
torch.nn.functional.prelu | N | N | Y | Y |
torch.nn.PReLU | Y | Y | Y | Y |
torch.nn.functional.relu | Y | Y | Y | Y |
torch.nn.ReLU | Y | Y | Y | Y |
torch.nn.ReLU6(fused) | Y | Y | Y | Y |
torch.nn.functional.silu | Y | Y | Y | Y |
torch.nn.SiLU | Y | Y | Y | Y |
torch.nn.functional.softmax | Y | Y | Y | Y |
torch.nn.Softmax | Y | Y | Y | Y |
torch.softmax | N | N | Y | Y |
torch.Tensor.softmax | N | N | Y | Y |
torch.nn.functional.softplus | Y | Y | Y | Y |
torch.nn.Softplus | Y | Y | Y | Y |
torch.nn.BatchNorm1d | N | N | Y | Y |
torch.nn.BatchNorm2d | Y | Y | Y | Y |
torch.nn.BatchNorm3d | N | N | Y | Y |
torch.nn.Conv1d | N | N | Y | Y |
torch.nn.Conv2d | Y | Y | Y | Y |
torch.nn.Conv3d | N | N | Y | Y |
torch.nn.ConvTranspose1d | N | N | Y | Y |
torch.nn.ConvTranspose2d | Y | Y | Y | Y |
torch.nn.GRU | Y | Y | Y | Y |
torch.nn.LSTM | N | N | Y | Y |
torch.nn.Identity | Y | Y | Y | Y |
torch.nn.LayerNorm | Y | Y | Y | Y |
torch.nn.GroupNorm | N | N | Y | Y |
torch.nn.InstanceNorm1d | Y | Y | Y | Y |
torch.nn.InstanceNorm2d | Y | Y | Y | Y |
torch.nn.InstanceNorm3d | Y | Y | Y | Y |
horizon.nn.LayerNorm | Y | Y | Y | Y |
torch.nn.Linear | Y | Y | Y | Y |
torch.masked_scatter | N | N | N | Y |
torch.masked_select | N | N | N | Y |
torch.Tensor.masked_select | N | N | N | Y |
torch.nn.functional.max_pool1d | Y | Y | Y | Y |
torch.nn.MaxPool1d | Y | Y | Y | Y |
torch.nn.functional.adaptive_max_pool1d | Y | Y | Y | Y |
torch.nn.AdaptiveMaxPool1d | Y | Y | Y | Y |
torch.nn.functional.max_pool2d | Y | Y | Y | Y |
torch.nn.MaxPool2d | Y | Y | Y | Y |
torch.nn.functional.adaptive_max_pool2d | Y | Y | Y | Y |
torch.nn.AdaptiveMaxPool2d | Y | Y | Y | Y |
torch.nn.MultiheadAttention | Y | Y | Y | Y |
torch.nn.functional.selu | Y | Y | Y | N |
torch.nn.SELU | Y | Y | Y | N |
torch.nn.functional.sigmoid | Y | Y | Y | Y |
torch.sigmoid | N | N | Y | Y |
torch.Tensor.sigmoid | N | N | Y | Y |
torch.nn.Sigmoid | Y | Y | Y | Y |
torch.sort | N | Y | N | Y |
torch.Tensor.sort | N | Y | N | Y |
torch.tanh | Y | Y | Y | Y |
torch.Tensor.tanh | N | N | Y | Y |
torch.nn.Tanh | Y | Y | Y | Y |
torch.nn.TransformerDecoderLayer | N | N | Y | Y |
torch.nn.TransformerEncoderLayer | N | N | Y | Y |
torch.quantization.DeQuantStub | N | Y | N | Y |
torch.quantization.QuantStub | N | Y | N | Y |
horizon.nn.AnchorGenerator | Y | Y | Y | Y |
horizon.nn.BaseGridGenerator | Y | Y | Y | Y |
horizon.nn.functional.bev_pool_v2 | N | Y | N | Y |
horizon.nn.functional.filter | Y | Y | Y | N |
horizon.nn.GridSample | Y | Y | Y | Y |
horizon.nn.functional.point_pillars_preprocess | N | Y | N | Y |
horizon.nn.functional.point_pillars_scatter | N | Y | N | Y |
horizon.nn.PointPillarsScatter | N | Y | N | Y |
horizon.nn.functional.scatter_reduce_nd | N | N | N | Y |
torchvision.ops.DeformConv2d | Y | Y | Y | Y |
torch.Tensor.__getitem__ | Y | Y | Y | Y |
torch.Tensor.__setitem__ | N | Y | N | Y |
torch.Tensor.clone | Y | Y | Y | Y |
torch.Tensor.contiguous | Y | Y | Y | Y |
torch.Tensor.detach | Y | Y | Y | Y |
