diff options
author | Cathal Corbett <cathal.corbett@arm.com> | 2022-05-16 15:20:56 +0100 |
---|---|---|
committer | Cathal Corbett <cathal.corbett@arm.com> | 2022-05-18 18:16:42 +0100 |
commit | 541880fcf4572887e57658a508623fb5f95ac554 (patch) | |
tree | f78db6d55bc9feaf884d83212c9ec9195f482225 /src/armnn/Network.cpp | |
parent | 07307f3c40c4efd8615755ed92ce300a3e150732 (diff) | |
download | armnn-541880fcf4572887e57658a508623fb5f95ac554.tar.gz |
IVGCVSW-6147 ConstTensorsAsInput: Optimizer - FusePermuteIntoConstLayer
* No trailing permute layer after a constant layer
* Unit test for optimization
Signed-off-by: Cathal Corbett <cathal.corbett@arm.com>
Change-Id: I0d098f5af41d2c55df7cef1ccfb848093320ddc1
Diffstat (limited to 'src/armnn/Network.cpp')
-rw-r--r-- | src/armnn/Network.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index 9da28ceeea..fecc766836 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -1158,6 +1158,7 @@ OptimizationResult ApplyBackendOptimizations(OptimizedNetworkImpl* optNetObjPtr, if(selectedBackend == armnn::Compute::GpuAcc || selectedBackend == armnn::Compute::CpuAcc) { Optimizer::Pass(optGraph, MakeOptimizations(optimizations::PermuteDepthwiseConv2dWeights())); + Optimizer::Pass(optGraph, MakeOptimizations(optimizations::FusePermuteIntoConstLayer())); } // Select sub-graphs based on backend @@ -1719,6 +1720,10 @@ IOptimizedNetworkPtr Optimize(const Graph& inGraph, optGraph.InferTensorInfos(); } + // Need to FusePermuteIntoConstantLayer before FoldPadIntoDepthwiseConvolution2d or + // FuseBatchNormIntoDepthwiseConvolution2D optimizations are called. + Optimizer::Pass(optGraph, MakeOptimizations(FusePermuteIntoConstLayer())); + // Perform optimisation passes Optimizer::Pass(optGraph, MakeOptimizations(SquashEqualPermuteSiblings(), SquashEqualTransposeSiblings(), @@ -1739,8 +1744,7 @@ IOptimizedNetworkPtr Optimize(const Graph& inGraph, FuseBatchNormIntoConvolution2DFloat16(), FuseBatchNormIntoDepthwiseConvolution2DFloat32(), FuseBatchNormIntoDepthwiseConvolution2DFloat16(), - ConvertConstDequantisationLayersToConstLayers(), - RedirectMembersToConstantInputs())); + ConvertConstDequantisationLayersToConstLayers())); // If Fp32 to Fp16 optimization is set convert Fp32 network to Fp16 if (options.m_ReduceFp32ToFp16) |