Supported Models

The Vollo compiler supports PyTorch models that use the following operations:

OperationSupport Notes
Pointwise arithmetic ops+, -, *; / by constant
Inequality>, <, >=, <=
max and min
Clamp opsclamp, relu
Matrix multiplicationLinear; matmul / @ where one side is a constant
ConvolutionVia vollo_torch.nn.PaddedConv1d
LSTMVia vollo_torch.nn.LSTM
Indexing / slicingPartial square bracket [] support; index_select
sum
whereIf the where condition is an inequality comparison
Concatenationcat, concat on outer dimension or at start or end of model
transposeSee section below
squeeze, unsqueeze

Tensor Memory Format

Vollo supports operations on tensors in channels-last memory format, and does not currently support changing the memory format on the accelerator (e.g. transpose operations).

The compiler is able to support many common cases of models where the PyTorch memory format is not channels-last, or that include transposes. In particular, PyTorch's 1D convolutions have sequence length last rather than channels last but the compiler can transform them to use channels last.

TorchScript

The Vollo compiler supports standard PyTorch modules (torch.nn.Module); it does not support TorchScript modules (torch.jit.ScriptModule).