diff options
author | Samuel Yap <samuel.yap@arm.com> | 2022-08-19 11:14:38 +0100 |
---|---|---|
committer | Nikhil Raj <nikhil.raj@arm.com> | 2022-08-30 17:03:44 +0100 |
commit | a04f4a15575ddd778d3a330dbce629412e1ffc0c (patch) | |
tree | 5f9ec80ee2a2f941c475115a274a2ba18e3965ce /src/armnnSerializer/Serializer.cpp | |
parent | dc8ed9d75e54e914a970e137900930fa64a0782b (diff) | |
download | armnn-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.cpp | 36 |
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 = |