aboutsummaryrefslogtreecommitdiff
path: root/src/armnnSerializer/Serializer.cpp
diff options
context:
space:
mode:
authorSamuel Yap <samuel.yap@arm.com>2022-08-19 11:14:38 +0100
committerNikhil Raj <nikhil.raj@arm.com>2022-08-30 17:03:44 +0100
commita04f4a15575ddd778d3a330dbce629412e1ffc0c (patch)
tree5f9ec80ee2a2f941c475115a274a2ba18e3965ce /src/armnnSerializer/Serializer.cpp
parentdc8ed9d75e54e914a970e137900930fa64a0782b (diff)
downloadarmnn-a04f4a15575ddd778d3a330dbce629412e1ffc0c.tar.gz
IVGCVSW-7104: BatchMatMul Serializer/Deserializer Support
* Updated FlatBuffers schema for BatchMatMul layer type * Added Serializer and Deserializer implementations for BatchMatMul * Added unit tests for BatchMatMul serialization and deserialization * Updated CMakeLists and docs Signed-off-by: Samuel Yap <samuel.yap@arm.com> Change-Id: Iad63afbd036a3eb648683eb7416a475561aa20cb
Diffstat (limited to 'src/armnnSerializer/Serializer.cpp')
-rw-r--r--src/armnnSerializer/Serializer.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 488dac6186..c9a3022b8d 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -218,6 +218,33 @@ void SerializerStrategy::SerializeArgMinMaxLayer(const armnn::IConnectableLayer
CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ArgMinMaxLayer);
}
+void SerializerStrategy::SerializeBatchMatMulLayer(const armnn::IConnectableLayer* layer,
+ const armnn::BatchMatMulDescriptor& descriptor,
+ const char* name)
+{
+ IgnoreUnused(name);
+
+ // Create FlatBuffer BaseLayer
+ auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_BatchMatMul);
+
+ // Create the FlatBuffer BatchMatMulDescriptor
+ auto flatBufferDescriptor = CreateBatchMatMulDescriptor(m_flatBufferBuilder,
+ descriptor.m_TransposeX,
+ descriptor.m_TransposeY,
+ descriptor.m_AdjointX,
+ descriptor.m_AdjointY,
+ GetFlatBufferDataLayout(descriptor.m_DataLayoutX),
+ GetFlatBufferDataLayout(descriptor.m_DataLayoutY));
+
+ // Create the FlatBuffer BatchMatMulLayer
+ auto flatBufferBatchMatMulLayer = CreateBatchMatMulLayer(m_flatBufferBuilder,
+ flatBufferBaseLayer,
+ flatBufferDescriptor);
+
+ // Add the AnyLayer to the FlatBufferLayers
+ CreateAnyLayer(flatBufferBatchMatMulLayer.o, serializer::Layer::Layer_BatchMatMulLayer);
+}
+
// Build FlatBuffer for BatchToSpaceNd Layer
void SerializerStrategy::SerializeBatchToSpaceNdLayer(const armnn::IConnectableLayer* layer,
const armnn::BatchToSpaceNdDescriptor& descriptor,
@@ -1971,6 +1998,15 @@ void SerializerStrategy::ExecuteStrategy(const armnn::IConnectableLayer* layer,
SerializeArgMinMaxLayer(layer, layerDescriptor, name);
break;
}
+ case armnn::LayerType::BatchMatMul:
+ {
+ const armnn::BatchMatMulDescriptor& layerDescriptor =
+ static_cast<const armnn::BatchMatMulDescriptor&>(descriptor);
+ SerializeBatchMatMulLayer(layer,
+ layerDescriptor,
+ name);
+ break;
+ }
case armnn::LayerType::BatchNormalization :
{
const armnn::BatchNormalizationDescriptor& layerDescriptor =