diff options
author | Sheri Zhang <sheri.zhang@arm.com> | 2021-11-02 10:45:07 +0000 |
---|---|---|
committer | Sheri Zhang <sheri.zhang@arm.com> | 2021-11-03 17:08:05 +0000 |
commit | fb2280381e7a98ad698ea0c1b2cd635a48ad4acc (patch) | |
tree | e3fab3cff60b806e725ba9c771617e41c654604e /src/graph/backends/CL | |
parent | bc788389dcc7bd682f53a85803f6a202d42ac828 (diff) | |
download | ComputeLibrary-fb2280381e7a98ad698ea0c1b2cd635a48ad4acc.tar.gz |
Add graph level convolution fusion with post operator
Resolves: COMPMID-4701
Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I8a0d3c2ed4bf84489d94b8ae6641d6041aadaee5
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6557
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Reviewed-by: SiCong Li <sicong.li@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/graph/backends/CL')
-rw-r--r-- | src/graph/backends/CL/CLFunctionsFactory.cpp | 3 | ||||
-rw-r--r-- | src/graph/backends/CL/CLNodeValidator.cpp | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/graph/backends/CL/CLFunctionsFactory.cpp b/src/graph/backends/CL/CLFunctionsFactory.cpp index 1cd3f9f9c7..838977e75c 100644 --- a/src/graph/backends/CL/CLFunctionsFactory.cpp +++ b/src/graph/backends/CL/CLFunctionsFactory.cpp @@ -81,6 +81,7 @@ struct CLFusedLayerTypes using ConvolutionLayer = CLConvolutionLayer; using DepthwiseConvolutionLayer = CLDepthwiseConvolutionLayer; using FuseBatchNormalization = CLFuseBatchNormalization; + using GEMMConvolutionLayer = CLGEMMConvolutionLayer; }; /** Wrapper for the CPP Function in the OpenCL backend **/ @@ -273,6 +274,8 @@ std::unique_ptr<IFunction> CLFunctionFactory::create(INode *node, GraphContext & return detail::create_fully_connected_layer<CLFullyConnectedLayer, CLTargetInfo>(*polymorphic_downcast<FullyConnectedLayerNode *>(node), ctx); case NodeType::FusedConvolutionBatchNormalizationLayer: return detail::create_fused_convolution_batch_normalization_layer<CLFusedLayerTypes, CLTargetInfo>(*polymorphic_downcast<FusedConvolutionBatchNormalizationNode *>(node), ctx); + case NodeType::FusedConvolutionWithPostOp: + return detail::create_fused_convolution_with_post_op<CLFusedLayerTypes, CLTargetInfo>(*polymorphic_downcast<FusedConvolutionWithPostOpNode *>(node), ctx); case NodeType::FusedDepthwiseConvolutionBatchNormalizationLayer: return detail::create_fused_depthwise_convolution_batch_normalization_layer<CLFusedLayerTypes, CLTargetInfo>(*polymorphic_downcast<FusedDepthwiseConvolutionBatchNormalizationNode *>(node), ctx); case NodeType::GenerateProposalsLayer: diff --git a/src/graph/backends/CL/CLNodeValidator.cpp b/src/graph/backends/CL/CLNodeValidator.cpp index 8e3b4c8705..c50782db48 100644 --- a/src/graph/backends/CL/CLNodeValidator.cpp +++ b/src/graph/backends/CL/CLNodeValidator.cpp @@ -76,6 +76,8 @@ Status CLNodeValidator::validate(INode *node) CLDirectConvolutionLayer, CLGEMMConvolutionLayer, CLWinogradConvolutionLayer>(*polymorphic_downcast<ConvolutionLayerNode *>(node)); + case NodeType::FusedConvolutionWithPostOp: + return detail::validate_fused_convolution_with_post_op<CLGEMMConvolutionLayer>(*polymorphic_downcast<FusedConvolutionWithPostOpNode *>(node)); case NodeType::DepthToSpaceLayer: return detail::validate_depth_to_space_layer<CLDepthToSpaceLayer>(*polymorphic_downcast<DepthToSpaceLayerNode *>(node)); case NodeType::DepthwiseConvolutionLayer: |