Add doc on tflm op support in Kelvin. Change-Id: Ie1a033eeb00d331fc88ef197960ce1abad5a34cf
diff --git a/docs/tflm_ops.md b/docs/tflm_ops.md new file mode 100644 index 0000000..1154ebf --- /dev/null +++ b/docs/tflm_ops.md
@@ -0,0 +1,25 @@ +# 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) |