aboutsummaryrefslogtreecommitdiff
path: root/arm_compute
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2019-10-28 16:24:28 +0000
committerGeorgios Pinitas <georgios.pinitas@arm.com>2019-10-29 10:44:09 +0000
commit8b72199f25487040713d1668c998fdde3707413c (patch)
treea898e56a58d3fc83953ef365ee71371a9245d6f5 /arm_compute
parentfde091434901fa3d7b504842efa373270a325c51 (diff)
downloadComputeLibrary-8b72199f25487040713d1668c998fdde3707413c.tar.gz
COMPMID-1889: Fuse bias addition and output stage in CLFCLayer.
Delegates bias addition and output stage calculation in CLGEMMLowp/CLGEMM respectively. Change-Id: Ifd1f75b34eae766d3df80f07aec35fab45733e0b Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com> Reviewed-on: https://review.mlplatform.org/c/2175 Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute')
-rw-r--r--arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h b/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h
index 9512b22c08..7f872532e4 100644
--- a/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h
+++ b/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h
@@ -174,9 +174,9 @@ public:
void prepare() override;
private:
- void configure_fc_fc(const ICLTensor *input, const ICLTensor *weights, ICLTensor *output, bool retain_internal_weights);
- void configure_conv_fc(const ICLTensor *input, const ICLTensor *weights, ICLTensor *output, bool retain_internal_weights);
- void configure_mm(const ICLTensor *input, const ICLTensor *weights, ICLTensor *output, bool retain_internal_weights);
+ void configure_fc_fc(const ICLTensor *input, const ICLTensor *weights, const ICLTensor *bias, ICLTensor *output, bool retain_internal_weights);
+ void configure_conv_fc(const ICLTensor *input, const ICLTensor *weights, const ICLTensor *bias, ICLTensor *output, bool retain_internal_weights);
+ void configure_mm(const ICLTensor *input, const ICLTensor *weights, const ICLTensor *bias, ICLTensor *output, bool retain_internal_weights);
MemoryGroup _memory_group;
IWeightsManager *_weights_manager;
@@ -187,16 +187,12 @@ private:
CLFullyConnectedLayerReshapeWeights _reshape_weights_function;
CLGEMM _mm_gemm;
CLGEMMLowpMatrixMultiplyCore _mm_gemmlowp;
- CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint _gemmlowp_output_stage;
- CLGEMMMatrixAccumulateBiasesKernel _accumulate_biases_kernel; // TODO(COMPMID-1889): Use CLGEMM to add bias in CLFullyConnectedLayer
CLTensor _flatten_output;
- CLTensor _gemmlowp_output;
CLTensor _converted_weights_output;
CLTensor _reshape_weights_output;
bool _are_weights_converted;
bool _are_weights_reshaped;
bool _is_fc_after_conv;
- bool _accumulate_biases;
bool _is_quantized;
bool _is_prepared;
const ICLTensor *_original_weights;