Supported Models
The Vollo compiler supports PyTorch models that use the following operations:
Operation | Support Notes |
---|---|
Pointwise arithmetic ops | + , - , * ; / by constant |
Inequality | > , < , >= , <= |
max and min | |
Clamp ops | clamp , relu |
Matrix multiplication | Linear ; matmul / @ where one side is a constant |
Convolution | Via vollo_torch.nn.PaddedConv1d |
LSTM | Via vollo_torch.nn.LSTM |
Indexing / slicing | Partial square bracket [] support; index_select |
sum | |
where | If the where condition is an inequality comparison |
Concatenation | cat , concat on outer dimension or at start or end of model |
transpose | See 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
).