1D Convolutional neural networks (CNN)

We benchmark a simple 1-D convolutional model with a residual connection after every layer.

class ConvBlock(nn.Module): def __init__(self, channels, kernel_size): super().__init__() self.conv = vollo_torch.nn.PaddedConv1d(channels, channels, kernel_size) def forward(self, inp): x = self.conv(inp) return nn.functional.relu(x) + inp class CNN(nn.Module): def __init__(self, num_layers, kernel_size, channels): super().__init__() assert num_layers >= 1 self.cnn = nn.Sequential( *[ConvBlock(channels, kernel_size) for i in range(num_layers)], ) def forward(self, x): x = self.cnn(x) # N x channels x T return x

IA-840F: 3 big cores

ModelLayersChannelsParametersMean latency (μs)99th Percentile latency (μs)
tiny_cnn3128393K4.45.1
small_cnn32561.6M5.05.7
med_cnn62563.1M6.37.0

The kernel size for all models is 8.

IA-420F: 6 small cores

ModelLayersChannelsParametersMean latency (μs)99th Percentile latency (μs)
tiny_cnn3128393K5.05.8
small_cnn32561.6M4.95.3
med_cnn62563.1M6.16.9

The kernel size for all models is 8.