IVGCVSW-5091 Add Logical ops frontend and ref impl
* Add frontend and reference implementation for logical
ops NOT, AND, OR.
* Unary NOT uses existing ElementwiseUnary layer and
ElementwiseUnary descriptor.
* Binary AND/OR uses new layer LogicalBinary and new
LogicalBinary descriptor.
* Add serialization/deserializion support and add missing
ElementwiseUnary deserializer code.
* Add additional Boolean decoder in BaseIterator.hpp.
Signed-off-by: James Conroy <james.conroy@arm.com>
Change-Id: Id343b01174053a166de1b98b6175e04a5065f720
diff --git a/src/armnnSerializer/ArmnnSchema.fbs b/src/armnnSerializer/ArmnnSchema.fbs
index e1b6e1f..1f71ce1 100644
--- a/src/armnnSerializer/ArmnnSchema.fbs
+++ b/src/armnnSerializer/ArmnnSchema.fbs
@@ -159,7 +159,8 @@
Transpose = 55,
QLstm = 56,
Fill = 57,
- Rank = 58
+ Rank = 58,
+ LogicalBinary = 59
}
// Base layer table to be used as part of other layers
@@ -270,7 +271,8 @@
Rsqrt = 1,
Sqrt = 2,
Exp = 3,
- Neg = 4
+ Neg = 4,
+ LogicalNot = 5
}
table ElementwiseUnaryDescriptor {
@@ -362,6 +364,20 @@
eps:float = 1e-12;
}
+enum LogicalBinaryOperation : byte {
+ LogicalAnd = 0,
+ LogicalOr = 1
+}
+
+table LogicalBinaryDescriptor {
+ operation:LogicalBinaryOperation;
+}
+
+table LogicalBinaryLayer {
+ base:LayerBase;
+ descriptor:LogicalBinaryDescriptor;
+}
+
table MinimumLayer {
base:LayerBase;
}
@@ -924,7 +940,8 @@
TransposeLayer,
QLstmLayer,
FillLayer,
- RankLayer
+ RankLayer,
+ LogicalBinaryLayer
}
table AnyLayer {