From c9ea45adefdde2890e9aa191a5b31563a3dd35ea Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Fri, 28 Feb 2020 18:11:58 +0000 Subject: IVGCVSW-4375 Add support for Transpose * Added TransposeLayer * Added CL, Neon and Ref Workloads * Added Transpose utilities * Added Serializer and Deserializer support * Added Quantizer support Signed-off-by: Mike Kelly Change-Id: I04c755ba7cb5b1edf72b3c9f3c0314878032e3c7 --- src/backends/backendsCommon/WorkloadFactory.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/backends/backendsCommon/WorkloadFactory.cpp') diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp index 23ff70a52e..6ac76ecea6 100644 --- a/src/backends/backendsCommon/WorkloadFactory.cpp +++ b/src/backends/backendsCommon/WorkloadFactory.cpp @@ -1023,6 +1023,17 @@ bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, reason); break; } + case LayerType::Transpose: + { + auto cLayer = boost::polymorphic_downcast(&layer); + const TensorInfo& input = layer.GetInputSlot(0).GetConnection()->GetTensorInfo(); + const TensorInfo& output = layer.GetOutputSlot(0).GetTensorInfo(); + result = layerSupportObject->IsTransposeSupported(OverrideDataType(input, dataType), + OverrideDataType(output, dataType), + cLayer->GetParameters(), + reason); + break; + } case LayerType::TransposeConvolution2d: { auto cLayer = boost::polymorphic_downcast(&layer); @@ -1315,7 +1326,7 @@ std::unique_ptr IWorkloadFactory::CreatePad(const PadQueueDescriptor& } std::unique_ptr IWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& /*descriptor*/, - const WorkloadInfo&/**/ /*info*/) const + const WorkloadInfo& /*info*/) const { return std::unique_ptr(); } @@ -1379,7 +1390,7 @@ std::unique_ptr IWorkloadFactory::CreateSlice(const SliceQueueDescrip { return std::unique_ptr(); } -/**/ + std::unique_ptr IWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const { @@ -1428,6 +1439,12 @@ std::unique_ptr IWorkloadFactory::CreateSwitch(const SwitchQueueDescr return std::unique_ptr(); } +std::unique_ptr IWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& /*descriptor*/, + const WorkloadInfo& /*info*/) const +{ + return std::unique_ptr(); +} + std::unique_ptr IWorkloadFactory::CreateTransposeConvolution2d( const TransposeConvolution2dQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const -- cgit v1.2.1