blob: 1154ebf8b68e91101e72e8c3d3c040131614f7fc [file] [log] [blame] [view]
# Optimized ops in Kelvin TFLM
The following table is a list of currently optimized ops in Kelvin TFLM. The
relevant source code can be found located [here](https://opensecura.googlesource.com/sw/kelvin/+/refs/heads/master/tflm/opt).
## Non-Convolutional Ops
| Op | Supported Data Type | Comments |
| :-------------- | :-----------------: | :---------------------------------------- |
| Elementwise Add | s8, s16, s32 | Rescaling with offset and shift, clamping |
| Leaky ReLU | s8, s16 | |
| Max Pooling | s8 | |
## Convolutional Ops
| Op | Weights | Activation | Bias | Comments |
| :--------------- | :-----: | :--------: | :--: | :-------------------------------------- |
| Depthwise Conv2d | s8 | s16 | s64 | filter size 3x1 |
| Depthwise Conv2d | s8 | s8 | s64 | output depth % 32 == 0 |
| Conv2d | s8 | s16 | s32 | |
| Conv2d | s8 | s16 | s64 | filter size 1x1, filter depth % 32 == 0 |
| Conv2d | s8 | s16 | s64 | filter size 1xn, grouped or ungroups |
| Conv2d | s8 | s8 | s32 | filter size 1x1, output depth % 8 == 0 |
| Conv2d | s8 | s8 | s32 | filter depth % 32 == 0 |
| Conv2d | s8 | s8 | s32 | filter shape == (48x3x1x48) |